C H A P T E R 3

Communication Channels

Typically, characters written to the standard output file by PostScript operators, such as print, are not sent immediately. They are buffered until a flush is executed. A flush occurs automatically

at the end of a job

in interactive mode, whenever the user is prompted to make an entry

If a PostScript language program writes data that is needed immediately by the host, for example a reply to an environmental query, it is important to flush after writing the data. Otherwise, a deadlock may occur.

Status Queries and Spontaneous Messages

The LaserWriter Select 310 printer provides a status query facility that enables the host or user to determine what the printer is doing. The printer responds to a status query asynchronously with respect to normal job execution. That is, it sends a response immediately, regardless of what has gone on before, or how much input data has been buffered. This facility primarily enables spoolers (printer control programs) to track the activities of the LaserWriter Select 310 printers under their control.

If the printer receives a CTL-T character from the active input channel, it replies with a one-line status message over the active port’s output channel. The message is bracketed by the text sequences %%[ and ]%%, to enable the host software to extract the message from the ordinary data generated by the job being executed.

The status message has standardized syntax that is intended to be machine readable. It consists of one or more key, value pairs separated by semicolons. For example:

%%[job: Jane's report; status: busy; source: serial 9]%%

The possible keys, values, and meanings are as follows:

job

The name of the job is stored as jobname entry in statusdict. (See

 

Chapter 2.) This field is omitted if the current job has not defined jobname.

status

Indicates what the printer is currently doing:

 

idle indicates there is no job in progress

 

busy means the printer is executing the user’s PostScript

 

language program

 

waiting means that the I/O is waiting in the middle of a job

 

printing indicates that the printer is printing, and that paper is

 

in motion

 

PrinterError: reason means that there is a printer error such as a

 

paper jam or printer out of paper.

 

initializing indicates the printer is starting up

source

serial 9 or Centronics indicates the source of the job that the server is

 

currently executing. This field is omitted if the server is idle.

Status Queries and Spontaneous Messages

55

Page 67
Image 67
Apple 310 manual Status Queries and Spontaneous Messages