IPP Mail Archive: RE: IPP> MOD> printer-state-reasons [please put this on the IPP W

RE: IPP> MOD> printer-state-reasons [please put this on the IPP W

Hastings, Tom N (hastings@cp10.es.xerox.com)
Wed, 22 Sep 1999 11:36:00 -0700

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@cp10.es.xerox.com] Sent: Monday, September 20, 1999 15:17 To: Manros, Carl-Uno Cc: Ira Mcdonald; ipp@pwg.org; kugler@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@sdsp.mc.xerox.com] Sent: Friday, September 17, 1999 07:52 To: ipp@pwg.org; kugler@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@us.ibm.com > To: ipp@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 > > ----------------------------------------------------------------------