Control B protocol for Postscript™ devices

Electrical computers and digital data processing systems: input/ – Input/output data processing – Peripheral adapting

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S033000

Reexamination Certificate

active

06370602

ABSTRACT:

CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to the following co-pending and commonly assigned patent applications:
U.S. patent application Ser. No. 09/253,386, filed on Feb. 19, 1999, by Mark Z. Kumbler, entilted “POSTSCRIPT IMAGE PRINTING USING A DOWNLOADED HANDLER”; and
U.S. patent application Ser. No. 09/253,821, filed on Feb. 19, 1999, by Mark Z. Kumbler, entilted “ACCURATE AND RELIABLE PAGE SIZE SELECTION IN A POSTSCRIPT OUTPUT DEVICE”;
which applications are incorporated by reference herein.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to computer-implemented printing systems, and in particular, to a method for performing a Control B protocol for PostScript™ devices.
2. Description of the Related Art
PostScript™ is a general purpose computer language developed by Adobe Systems, Inc. that has become a standard for device-independent output. PostScript™ is most commonly used for supplying page description information to output devices such as printers and can describe elements including text, graphics, and scanned images.
PostScript™ uses several different protocols to communicate over a serial or parallel link between a computer and a printer (or other devices). The protocols include: standard protocol, binary communications protocol (BCP), and tagged binary communications protocol (TBCP). These protocols are defined in the publication entitled “Adobe Serial and Parallel Communications Protocols Specification”, Adobe Systems, Inc., Nov. 20, 1992, which publication is incorporated by reference herein.
The binary communications protocol is a bi-directional method of communicating between the computer and the printer, where neither device is considered to be a slave of the other. Any of the 256 possible 8-bit values may be transmitted as data between the devices, but certain character codes are used for specifying control functions that include flow control, status requests, aborting of jobs, and end-of-file markers.
The control functions include four that are asynchronous with the data stream and one that is synchronous with the data stream. The asynchronous control functions are:
Job status request. The receiving device (e.g., printer) should respond immediately to job status request from the sending device (e.g., computer) by sending appropriate data back to the sending device. The syntax and semantics of the returned information are not specified by the protocol.
Job abort request. The receiving device should respond immediately to job abort control from the sending device by terminating processing of the current job and flushing through the input stream until an end-of-file marker or end-protocol sequence is encountered. The receiving device should proceed at that point with processing the end-of-file or end-protocol in the normal manner.
XON flow control. The device receiving an XON may resume transmitting data that was blocked by a preceding XOFF. The XON and XOFF functions are present to support the well-established XON/XOFF flow control protocol used over asynchronous serial communications channels.
XOFF flow control. The device receiving an XOFF should cease transmitting data as quickly as possible. It may still transmit asynchronous control functions, especially XOFF and XON. Flow control operates independently for each direction of data transmission.
The synchronous control function is:
End-of-file indication.
The following table describes the character codes that represent these control functions.
ASCII
ASCII Value
Hexadecimal
Control function
{circumflex over ( )}A
SOH
0x0
Quote character for
BCP and TBCP
{circumflex over ( )}C
ETX
0x03
Generate an interrupt
error
{circumflex over ( )}D
EOT
0x04
End-of-file marker
{circumflex over ( )}E
ENQ
0x05
Reserved
{circumflex over ( )}Q
DC1
0x11
XON in XON/
XOFF flow control
{circumflex over ( )}S
DC3
0x13
XOFF in XON/
XOFF flow control
{circumflex over ( )}T
DC4
0x14
Job status request
{circumflex over ( )}\
ESC
0x1B
Start of end-protocol
for TBCP
In the above table, the character “{circumflex over ( )}” is also known as “CONTROL”.
These control function character codes must be “quoted” to be transmitted as data, so that they are not passed through to the PostScript™ interpreter in the device. Quoting is accomplished by replacing the character code with a two-character sequence comprising a leading character sequence, i.e., {circumflex over ( )}A or Control A (ASCII hex 0×01), followed by the character associated with the character code XORed with 0×40.
For example, to send a byte with the value 0×14 ({circumflex over ( )}T), the two-byte sequence 0×01 0×54 ({circumflex over ( )}A T) is sent, since ASCII T is the result of XORing {circumflex over ( )}T with 0×40. Quoting guarantees that whenever any of the character code for the control functions are received by the device, the control function is performed, regardless of whether the preceding character is a {circumflex over ( )}A. All 8-bit values other than the control function character codes listed in the table above are transmitted by simply sending the value.
After a {circumflex over ( )}A is received, the next character received that is not one of the control function characters must be the result of XORing one of the control function character codes with 0×40. Receipt of any other character is considered an error in the input. Between the {circumflex over ( )}A and the XORed character, any number of the control function character codes can appear, except for character codes for control functions that are handled synchronously, i.e., {circumflex over ( )}D and {circumflex over ( )}A, which is considered an error.
Use of the binary communications protocol results in a significant performance enhancements. The alternatives for transmitting binary data between devices comprise ASCII hexadecimal for image data (a 1:2 expansion of the data), octal (“\nnn”) notation for string data (a 1:4 expansion), or ASCII base-85 encoding (a 4:5 expansion). The binary communications protocol offers a 1:1 transmission for most characters, with a 1:2 expansion for the few control function character codes.
However, the binary communications protocol is generally only used when the printer driver (or host application sending the job to the printer) can determine that it is connected directly to a printer that is enabled to support the protocol. This requires, at least, bi-directional communication between the computer and the printer to determine if this protocol has been enabled. This process is so error-prone that the usual advice to programmers is to never try using this protocol. On the other hand, the alternatives recited above consume a great deal of additional bandwidth.
Therefore, there exists a need in the art for a communications technique that provides the most efficient compression but does not require bi-directional communications between devices.
SUMMARY OF THE INVENTION
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for a computer-implemented method for transmitting data between PostScript™ devices using a Control B protocol. The Control B protocol allows data to be compressed and transmitted to the PostScript™ device without the need of having bi-directional communications between the sending and receiving devices to check for Control B capability or activation. The Control B protocol allows data to be transmitted in binary format, while control functions are represented by quoted character codes, thereby resulting in an efficient use of bandwidth between the devices.


REFERENCES:
patent: 5050121 (1991-09-01), Vaughan
patent: 5715379 (1998-02-01), Pavlovic et al.
patent: 5999649 (1999-12-01), Nicholson et al.
patent: 6011905 (2000-01-01), Huttenlocher et al.
patent: 6020970 (2000

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Control B protocol for Postscript™ devices does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Control B protocol for Postscript™ devices, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Control B protocol for Postscript™ devices will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2919978

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.