IPP> MOD> printer-state-reasons [please put this on the IPP W G meeting agenda]

IPP> MOD> printer-state-reasons [please put this on the IPP W G meeting agenda]

IPP> MOD> printer-state-reasons [please put this on the IPP W G meeting agenda]

Hastings, Tom N hastings at cp10.es.xerox.com
Wed Sep 22 14:36:00 EDT 1999


For the consideration of this IPP/1.1 Model and Semantics issue:

Here is a quick analysis that Ira and I just did of the current
"printer-state-reasons" values and whether they are 'report', 'warning',
and/or 'error'.  There are 34 values.  They break down into the following
categories: 

2  'e' - always an error (Printer is 'stopped'; caused/detected by the
system, not caused by a client)  Is not a warning because of safety concerns
for the operator and user.

8  'w' - always a warning (will stop the system eventually, if not attended
to)

6  'r' - always a report (will not stop the system eventually)

16 'e/w' - means it can be an error or a warning, depending on whether the
Printer is 'stopped' or not.  Printer is 'stopped'; caused/detected by the
system, not caused by a client.  Some e/w values are 'warning', instead or
'error', in implementations that can keep processing, such as fan-out to
more than one device or where there are multiple input or output trays in a
single device.

2  'e/r' - is an error, if the Printer is stopped and is a report if not.  A
report is something that doesn't eventually stop the Printer, while a
warning is something that eventually does stop the Printer.

--
34


Alternatives:

Alternative 1: Allow suffixes for backward compatibility with
implementations that have followed the spec, but then also add the
description to each value definition indicating whether it is a report,
warning, and/or error as in alternative 2:

Alternative 2: Get rid of suffixes all together for IPP/1.1.  

The distinction between whether or not the Printer is stopped should be made
by looking at the value of the Printer's "printer-state", not by a suffix.
If the Printer is 'stopped', then at least one of the state reasons caused
the printer to stop.  Also the 'paused' value stops the Printer but is
neither an error nor a warning, but a report of the externally imposed state
of the Printer.  If the Printer is 'processing' or 'idle', all of the state
reasons are warnings or reports.  Also removing suffixes will greatly help
internationalization translation by collapsing 4 potential keywords to 1.
Also in some languages the suffixes are problematical to translate.  

So add the words "Report", "Warning", and/or "Error" to the description of
each value definition as indicated below by the key.  For example, change:

e/w 'media-needed': A tray has run out of media.

to:

    'media-needed':  Error or Warning - A tray has run out of media.   

and:

r   'paused': Someone has paused the Printer object using the Pause-Printer
operation (see section 3.2.7) or other means and the Printer object's
"printer-state" is 'stopped'.  In this state, a Printer MUST NOT produce
printed output, but it MUST perform other operations requested by a client.
If a Printer had been printing a job when the Printer was paused, the
Printer MUST resume printing that job when the Printer is no longer paused
and leave no evidence in the printed output of such a pause.  This value
MUST be supported, if the Pause-Printer operation is supported.   

to:

    'paused': Report - Someone has paused the Printer object using the
Pause-Printer operation (see section 3.2.7) or other means and the Printer
object's "printer-state" is 'stopped'.  In this state, a Printer MUST NOT
produce printed output, but it MUST perform other operations requested by a
client.  If a Printer had been printing a job when the Printer was paused,
the Printer MUST resume printing that job when the Printer is no longer
paused and leave no evidence in the printed output of such a pause.  This
value MUST be supported, if the Pause-Printer operation is supported.   




Here are the assignments to each printer state reason value to r, w, and/or
e:

e/w 'other': The device has detected an error other than one listed in this
document.

r   'none': There are not reasons. This state reason is semantically
equivalent to "printer-state-reasons" without any value and MUST be used,
since the 1setOf attribute syntax requires at least one value.

e/w 'media-needed': A tray has run out of media.

e/w 'media-jam': The device has a media jam.

r   'moving-to-paused':  Someone has paused the Printer object using the
Pause-Printer operation (see section 3.2.7) or other means, but the
device(s) are taking an appreciable time to stop.  Later, when all output
has stopped, the "printer-state" becomes 'stopped', and the 'paused' value
replaces the 'moving-to-paused' value in the "printer-state-reasons"
attribute.  This value MUST be supported, if the Pause-Printer operation is
supported and the implementation takes significant time to pause a device in
certain circumstances.   

r   'paused': Someone has paused the Printer object using the Pause-Printer
operation (see section 3.2.7) or other means and the Printer object's
"printer-state" is 'stopped'.  In this state, a Printer MUST NOT produce
printed output, but it MUST perform other operations requested by a client.
If a Printer had been printing a job when the Printer was paused, the
Printer MUST resume printing that job when the Printer is no longer paused
and leave no evidence in the printed output of such a pause.  This value
MUST be supported, if the Pause-Printer operation is supported.   

r  'shutdown': Someone has removed a Printer object from service, and the
device may be powered down or physically removed.  In this state, a Printer
object MUST NOT produce printed output, and unless the Printer object is
realized by a print server that is still active, the Printer object MUST
perform no other operations requested by a client, including returning this
value. If a Printer object had been printing a job when it was shutdown, the
Printer NEED NOT resume printing that job when the Printer is no longer
shutdown. If the Printer resumes printing such a job, it may leave evidence
in the printed output of such a shutdown, e.g. the part printed before the
shutdown may be printed a second time after the shutdown.

r  'connecting-to-device': The Printer object has scheduled a job on the
output device and is in the process of connecting to a shared network output
device (and might not be able to actually start printing the job for an
arbitrarily long time depending on the usage of the output device by other
servers on the network).

e/w 'timed-out': The server was able to connect to the output device (or is
always connected), but was unable to get a response from the output device.


w   'stopping': The Printer object is in the process of stopping the device
and will be stopped in a while. When the device is stopped, the Printer
object will change the Printer object's state to 'stopped'.  The
'stopping-warning' reason is never an error, even for a Printer with a
single output device.  When an output-device ceases accepting jobs, the
Printer will have this reason while the output device completes printing.

r   'stopped-partly': When a Printer object controls more than one output
device, this reason indicates that one or more output devices are stopped.
If the reason is a report, fewer than half of the output devices are
stopped.  If the reason is a warning, fewer than all of the output devices
are stopped.

w   'toner-low': The device is low on toner.

e/w 'toner-empty':  The device is out of toner.

e/w 'spool-area-full': The limit of persistent storage allocated for
spooling has been reached.  The Printer is temporarily unable to accept more
jobs.  The Printer will remove this value when it is able to accept more
jobs.  This value SHOULD be used by a non-spooling Printer that only accepts
one or a small number jobs at a time or a spooling Printer that has filled
the spool space.   

e/r 'cover-open': One or more covers on the device are open.

e   'interlock-open': One or more interlock devices on the printer are
unlocked.

e/r 'door-open': One or more doors on the device are open.

e/w 'input-tray-missing': One or more input trays are not in the device.

w   'media-low': At least one input tray is low on media.

e/w 'media-empty': At least one input tray is empty.

e/w 'output-tray-missing': One or more output trays are not in the device

w   'output-area-almost-full': One or more output area is almost full (e.g.
tray, stacker, collator).

e/w 'output-area-full': One or more output area is full. (e.g. tray,
stacker, collator)

w   'marker-supply-low': The device is low on at least one marker supply.
(e.g. toner, ink, ribbon)

e/w 'marker-supply-empty: The device is out of at least one marker supply.
(e.g. toner, ink, ribbon)

w   'marker-waste-almost-full': The device marker supply waste receptacle is
almost full.

e/w 'marker-waste-full': The device marker supply waste receptacle is full.

e   'fuser-over-temp': The fuser temperature is above normal.

e/w 'fuser-under-temp': The fuser temperature is below normal.

w   'opc-near-eol': The optical photo conductor is near end of life.

e/w 'opc-life-over': The optical photo conductor is no longer functioning.

w   'developer-low': The device is low on developer.

e/w 'developer-empty: The device is out of developer.

e/w 'interpreter-resource-unavailable': An interpreter resource is
unavailable (i.e. font, form)


-----Original Message-----
From: Hastings, Tom N [mailto:hastings at cp10.es.xerox.com]
Sent: Monday, September 20, 1999 15:17
To: Manros, Carl-Uno
Cc: Ira Mcdonald; ipp at pwg.org; kugler at us.ibm.com
Subject: RE: IPP> MOD> printer-state-reasons [please put this on the IPP
W G meeting agenda]
Importance: High


Carl-Uno,

This printer-state-reasons suffix (and that no suffix means "-error") is an
important issue to resolve.  Please put it on the agenda for the upcoming
IPP meeting.  We can fix this in the IPP/1.1 RFC when the RFC Editor asks
for final review, provided we have agreement on how to fix the document.

The current text says:

4.4.12 printer-state-reasons (1setOf type2 keyword)

This REQUIRED Printer attribute supplies additional detail about the
device's state.  Some of the these value definitions indicate conformance
requirements; the rest are OPTIONAL.  

Each keyword value MAY have a suffix to indicate its level of severity.  The
three levels are: report (least severe), warning, and error (most severe). 

- '-report':  This suffix indicates that the reason is a "report". An
implementation may choose to omit some or all reports. Some reports specify
finer granularity about the printer state; others serve as a precursor to a
warning. A report MUST contain nothing that could affect the printed output.

- '-warning': This suffix indicates that the reason is a "warning". An
implementation may choose to omit some or all warnings. Warnings serve as a
precursor to an error. A warning MUST contain nothing that prevents a job
from completing, though in some cases the output may be of lower quality.

- '-error': This suffix indicates that the reason is an "error".  An
implementation MUST include all errors. If this attribute contains one or
more errors, printer MUST be in the stopped state. 

If the implementation does not add any one of the three suffixes, all
parties MUST assume that the reason is an "error".

If a Printer object controls more than one output device, each value of this
attribute MAY apply to one or more of the output devices.  An error on one
output device that does not stop the Printer object as a whole MAY appear as
a warning in the Printer's "printer-state-reasons attribute".  If the
"printer-state" for such a Printer has a value of 'stopped', then there MUST
be an error reason among the values in the "printer-state-reasons"
attribute. 
The following standard keyword values are defined: 





Assuming that we cannot remove the concept of suffix from the document,
there seem to be at least two alternatives to resolving the issue as to what
the meaning is when there is no suffix:

Alternative 1:
Replace the paragraph:

   If the implementation does not add any one of the three suffixes, 
   all parties MUST assume that the reason is an "error".

with:

   If the implementation does not add any one of the three suffixes, 
   all parties MUST assume that the reason is a "report", "warning", or 
   "error" as indicated in the description of the reason. Thus the suffix 
   MUST be used when the implementation has a different interpretation for
   the reason than that given in the description of the reason.

And indicate in the description of each reason whether it is an error,
warning. or report.  For example, the 'paused' state reason definition would
indicate that it is a "report" and the "media-needed" state reason
definition would indicate that it is an "error".


Alternative 2:
 
Replace the paragraph:

   If the implementation does not add any one of the three suffixes, 
   all parties MUST assume that the reason is an "error".

with:

   If the implementation does not add any one of the three suffixes, 
   whether the reason is a "report", "warning", or "error" is 
   implementation-dependent.  Therefore, implementations SHOULD always
append
   one of the suffixes: "-report", "-warning", or "-error" in order to 
   remove the ambiguity for a state reason.


Comments?

Thanks,
Tom

-----Original Message-----
From: Ira Mcdonald [mailto:imcdonal at sdsp.mc.xerox.com]
Sent: Friday, September 17, 1999 07:52
To: ipp at pwg.org; kugler at us.ibm.com
Subject: Re: IPP> MOD> printer-state-reasons



Hi Carl and Tom,                              Friday (17 September 1999)

This suffix nonsense on 'printer-state-reasons' keywords was a mistake.
And the MUST interpretation of 'error' when a suffix is not present is
EXACTLY wrong.  There are important printer state reasons that do NOT
indicate warning or error events - sub-states like 'moving-to-paused',
'paused', 'shutdown', 'connecting-to-device'.

And as Carl observed (below) 'none-error' is obviously broken.

It's never an error for a printer to be 'paused'.  It's a neutral report
of a condition.  No program error or resource problem has occurred.  The
printer is in a sub-state at the request of an authorized human user or
operator.

MOD should be corrected to say that a missing suffix SHALL mean that
the specified state reason is of '-report' severity (or better yet,
abandon suffixes entirely, but prior art won't really let us do that).

Cheers,
- Ira McDonald
  High North Inc
  906-494-2697/2434

> ----------------------------------------------------------------------
> From: kugler at us.ibm.com
> To: ipp at pwg.org
> Date: Thu, 16 Sep 1999 14:00:13 -0600
> Subject: IPP> MOD> printer-state-reasons
> 
> MOD says:
> 
>    Each keyword value MAY have a suffix to indicate its level of severity.
>    The three levels are:  report (least severe), warning, and error (most
>    severe).
> 
>    ...
> 
>      - '-error': This suffix indicates that the reason is an "error".  An
>         implementation MUST include all errors. If this attribute contains
>         one or more errors, printer MUST be in the stopped state.
> 
>    If the implementation does not add any one of the three suffixes, all
>    parties MUST assume that the reason is an "error".
> 
> Does this mean to say that the REQUIRED "printer-state-reasons" attribute
> value must always have a -report or -warning suffix unless the printer is
> in the 'stopped' state?  For example, if the printer is idle, MUST I
> have "printer-state" = 'idle' and "printer-state-reasons" = 'none-report'?
> (Can't have "printer-state-reasons" = 'none' since that would be
> semantically equivalent to "printer-state-reasons" = 'none-error' which
> implies that the printer MUST be in the stopped state, not the idle
state.)
> 
>      - Carl
> 
> ----------------------------------------------------------------------



More information about the Ipp mailing list