Patent Publication Number: US-6665314-B1

Title: Wireless printer adjunct

Description:
FIELD OF THE INVENTION 
     The present invention generally relates to the field of computer-based information handling systems, and particularly to a method and system for managing data transmission. 
     BACKGROUND OF THE INVENTION 
     It is often desirable to provide a communications link between a computer-based information handling system and a remote device or another computer-based information handling system. Such a communications link may comprise a direct link transmission line or network, or a wireless link or network. For example, a first information handling system may transmit data over a transmission link to a remote information handling system via a modem or similar communications device. Often, the data is transmitted during a higher priority time period such that no interruption or delay in the transmission is desired. While the data is transmitted during a higher priority time period, the first information handling system may have lower priority data such as a printing job to be sent during data transmission to be received by a remote device such as a printer or the second computer-based information handling system. The lower priority printer data is therefore adjunct to the higher priority modem data. 
     Prior art systems typically batch the print job to be sent immediately after completion of the data transmission, or time-division multiplex the data by integrating packets of the lower priority print job data with packets of the higher priority data at periodic intervals. However, batching of data transmissions does not account for the priority of data transmission since data is transmitted on a first in, first out (FIFO) basis. Thus, transmission of higher priority data may be delayed behind the transmission of lower priority data merely if the lower priority data were received to be transmitted prior to the higher priority data. Batching of data at the receiving end of most networks requires a computer system disposed at the receiving end of the transmission link to manage the batching of incoming data. However, such additional computer systems are typically unavailable or non-existent. Further, time-division multiplexing of lower priority data with high priority data introduces delay in the transmission of higher priority data or requires a higher bandwidth transmission line. Typically, the bandwidth of the transmission line is limited and cannot accommodate simultaneous transmission of both higher priority and lower priority data. It would therefore be desirable to be able to control the transmission of higher and lower priority data without interrupting or delaying higher priority data transmissions. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to a method for managing the transmission of data having variable priority over a transmission link. In one embodiment, the method includes the steps of receiving data to be transmitted over the transmission link, determining whether the data to be transmitted is higher priority data, transmitting the data over the transmission link in the event the data is determined to be higher priority data, saving the data in a memory until a lower priority time period in the event the data is not determined to be higher priority data, determining whether the present time period is a lower priority time period, transmitting the data saved in the memory over the transmission link in the event the present time period is determined to be a lower priority time period and there is no higher priority data remaining to be transmitted, and otherwise repeating the step of receiving data to be transmitted over the transmission link. The method may be tangibly embodied on a computer readable medium whose contents cause a computer-based information handling system to execute the method. 
     The present invention is also directed to a system for managing the transmission of data having variable priority over a transmission link. In one embodiment, the system includes a computer-based information handling system, a first device for interfacing with the transmission link and transmitting data from the computer-based information handling system over the transmission link, a second device for interfacing with the transmission link and receiving data transmitted over the transmission link, and a remote device coupled to the second device for receiving data from the second device that is transmitted over the transmission link. 
     It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which: 
     FIG. 1 is a block diagram of a computer-based information handling system operable to embody present invention; 
     FIG. 2 is a block diagram of a wireless data communications and transmission system including a printer and a modem in accordance with the present invention; and 
     FIG. 3 is a flow diagram of a data transmission management method in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Reference will now be made in detail to the presently preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings. 
     Referring now to FIG. 1, a hardware system in accordance with the present invention is shown. The hardware system shown in FIG. 1 is generally representative of the hardware architecture of a computer-based information handling system of the present invention. A central processing system  102  controls the hardware system  100 . Central processing system  102  includes a central processing unit such as a microprocessor or microcontroller for executing programs, performing data manipulations and controlling the tasks of hardware system  100 . Communication with central processor  102  is implemented through a system bus  110  for transferring information among the components of hardware system  100 . Bus  110  may include a data channel for facilitating information transfer between storage and other peripheral components of the hardware system. Bus  110  further provides the set of signals required for communication with central processing system  102  including a data bus, address bus, and control bus. Bus  110  may comprise any state of the art bus architecture according to promulgated standards, for example industry standard architecture (ISA), extended industry standard architecture (EISA), Micro Channel Architecture (MCA), peripheral component interconnect (PCI) local bus, standards promulgated by the Institute of Electrical and Electronics Engineers (IEEE) including IEEE 488 general-purpose interface bus (GPIB), IEEE 696/S-100, and so on. Other components of hardware system  100  include main memory  104 , auxiliary memory  106 , and an auxiliary processing system  108  as required. Main memory  104  provides storage of instructions and data for programs executing on the central processing system  102 . Main memory  104  is typically semiconductor based memory such as dynamic random access memory (DRAM) and or static random access memory (SRAM). Auxiliary memory  106  provides storage of instructions and data that are loaded into the main memory  104  before execution. Auxiliary memory  106  may include semiconductor based memory such as read-only memory (ROM), programmable read-only memory (PROM) erasable programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), or flash memory (block oriented memory similar to EEPROM). Auxiliary memory  106  may also include a variety of non-semiconductor based memories, including but not limited to magnetic tape, drum, floppy disk, hard disk, optical, laser disk, compact disc read-only memory (CD-ROM), digital versatile disk read-only memory (DVD-ROM), digital versatile disk random-access memory (DVD-RAM), etc. Other varieties of memory devices are contemplated as well. Hardware system  100  may optionally include an auxiliary processing system  108  which may be a digital signal processor (a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms), a back-end processor (a slave processor subordinate to the main processing system), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor. 
     Hardware system  100  further includes a display system  112  for connecting to a display device  114 , and an input/output (I/O) system  116  for connecting to one or more I/O devices  118 ,  120  up to N number of I/O devices  122 . Display system  112  may comprise a video display adapter having all of the components for driving the display device, including video random access memory (VRAM), buffer, and graphics engine as desired. Display device  114  may comprise a cathode ray-tube (CRT) type display such as a monitor or television, or may comprise alternative type of display technologies such as a liquid-crystal display (LCD), a light-emitting diode (LED) display, or a gas or plasma display. Input/output system  116  may comprise one or more controllers or adapters for providing interface functions between the one or more I/O devices  118 - 122 . For example, input/output system  116  may comprise a serial port, parallel port, infrared port, network adapter, printer adapter, radio-frequency (RF) communications adapter, universal asynchronous receiver-transmitter (UART) port, etc., for interfacing between corresponding I/O devices such as a mouse, joystick, trackball, trackpad, trackstick, infrared transducers, printer, modem, RF modem, bar code reader, charge-coupled device (CCD) reader, scanner, compact disc (CD), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), video capture device, touch screen, stylus, electroacoustic transducer, microphone, speaker, etc. Input/output system  116  and I/O devices  118 - 122  may provide or receive analog or digital signals for communication between hardware system  100  of the present invention and external devices, networks, or information sources. Input/output system  116  and I/O devices  118 - 122  preferably implement industry promulgated architecture standards, including Ethernet IEEE 802 standards (e.g., IEEE 802.3 for broadband and baseband networks, IEEE 802.3z for Gigabit Ethernet, IEEE 802.4 for token passing bus networks, IEEE 802.5 for token ring networks, IEEE 802.6 for metropolitan area networks, IEEE 802.11 for wireless networks and so on), Fibre Channel, digital subscriber line (DSL), asymmetric digital subscriber line (ASDL), frame relay, asynchronous transfer mode (ATM), integrated digital services network (ISDN), personal communications services (PCS), transmission control protocol/Internet protocol (TCP/IP), serial line Internet protocol/point to point protocol (SLIP/PPP), and so on. It should be appreciated that modification or reconfiguration of hardware system  100  of FIG. 1 by one having ordinary skill in the art would not depart from the scope or the spirit of the present invention. 
     Referring now to FIG. 2, a wireless data communications and transmission system in accordance with the present invention is shown. The data transmission system  200  comprises a computer-based information handling system  210  having hardware substantially similar to computer-based information handling system  100  described with respect to FIG.  1 . Typically, data transmission system  200  is a wireless system whereby data may be transmitted from computer system  210  to a device at a remote location capable of receiving wireless data transmissions. In such a wireless data transmission system, computer system  210  interfaces with a controller  214  coupled to a wireless transmission device such as a radio  212  in the case where the wireless transmission system utilizes radio-frequency (RF) communications signals. Alternatively, radio  212  may be substituted with other types of wireless communications devices such as an infrared communications device, for example. Radio  212  includes an antenna  216  for facilitating radiation of a radio-frequency communications signal  234 . Radio  212  may comprise a transmitter or transceiver adapted to transmit or to transmit and receive a radio-frequency data signal. 
     A radio-frequency data communications signal  234  is transmitted from radio  212  and received by an operably disposed radio  220  that is substantially similar to radio  212 . Radio-frequency data communications signals received by radio  220  are decoded by a controller  222  coupled to radio  220 . Radio  220  may comprise a receiver or a transceiver adapted to receive or to transmit and receive a radio-frequency data signal. Controller  222  may connect with a modem  224  via link  236 , which in turn may connect with a second computer system via link  238 . The received data may be thereby transmitted to a second computer system  228  via modem  224 , or, if the received data is a print job, the data may be sent to a printer  226  vial link  240  for printing. A wireless communications network is thus described for transmitting both modem data to modem  224  and printer data to printer  226  via wireless transmission link  234 . 
     In operation of data transmission system  200 , time critical data  230  having a higher priority status may be transmitted via transmission link  234  to a remote device such as computer system  228 . Time critical data  230  has a higher priority status in that no delay or interruption in the transmission of the data is desired. Additionally, low priority data  232  having a lower priority status may be transmitted via transmission link  234  to a remote computer or other device, e.g., printer  226 . Low priority data has a lower priority status in that a delay or interruption in the transmission of data is not critical and is therefore tolerated. For example, while time critical data  230  such as communications with computer system  228  via modem  224  is being transmitted via transmission link  234 , an attempt to transmit low priority data  232  may occur. Such low priority data  232  may comprise a print job sent to printer  226 . Transmission link  234  typically has a fixed bandwidth that may not be able to accommodate transmission of both time critical data  230  and low priority data  232  simultaneously. Under such circumstances, low priority data  232  is not transmitted. Rather, the low priority data  232  is saved in a memory device of computer system  210 . For example, such a memory device may comprise either main memory  104  or auxiliary memory  106  of computer-based information handling system  100  as discussed with respect to FIG.  1 . Normally, time critical data  230  is transmitted during a higher priority time period. If there are any transmission errors occurring in the transmission of high priority, time critical data  230 , the data corresponding to the transmission errors is saved and retransmitted. Referring now to FIG. 3, a flow diagram illustrating a method for managing data transmission in accordance with the present invention is shown. The method  300  is implemented by communications system  200  of FIG.  2  and is discussed with reference thereto. Method  300  commences  310  by receiving data to be transmitted  312  via transmission link  234 . A determination is made whether the data to be transmitted is higher priority data at step  314 . If the data is higher priority data, then it is transmitted at step  316 . If, however, the data is not higher priority data, then if the time is determined in step  322  not to be higher priority time  322 , the data is transmitted at step  316 . For lower priority data, however, if the time is higher priority time, the data is saved for later transmission at step  324 . For data so saved, inquiry is periodically made as to whether the time is still higher priority time at step  326 . If the time is no longer higher priority time, then a determination is made at step  328  if there remains higher priority data received  315  that is ready to be transmitted at step  316 . At lower priority times as determined at step  326 , when there is no higher priority data to be transmitted as determined in step  328 , lower priority data saved at step  324  is sent for transmission at step  316 . For either lower or higher priority data sent for transmission at step  316 , error checking is performed at step  318 , to determine, for example, whether the transmission of a data packet is complete. Erroneous data is retransmitted at step  316 . Data for which no error is detected completes transmission at step  320 . 
     Thus, lower priority data is withheld from transmission during the transmission of higher priority, time critical data. Lower priority data and transmission errors of high priority data are transmitted during lower priority time periods. The default time period may be set by system  200  as a lower priority time period so that if the only data to be transmitted at any given time is lower priority data, then the lower priority data is immediately transmitted. The higher priority time period may be set as any time during which higher priority data is received to be transmitted, is being transmitted, or is expected to be received or transmitted. At the completion of transmission of all higher priority data, the status of the time period may be reset to a lower priority status. 
     Although the invention has been described with a certain degree of particularity, it should be recognized that elements thereof may be altered by persons skilled in the art without departing from the spirit and scope of the invention. One of the embodiments of the invention can be implemented as sets of instructions resident in the main memory  104  of one or more computer systems configured generally as described in FIG.  1 . Until required by the computer system, the set of instructions may be stored in another computer readable memory such as auxiliary memory  106  of FIG. 1, for example in a hard disk drive or in a removable memory such as an optical disk for utilization in a CD-ROM drive, a floppy disk for utilization in a floppy disk drive, a floptical disk for utilization in a floptical drive, or a personal computer memory card for utilization in a personal computer card slot. Further, the set of instructions can be stored in the memory of another computer and transmitted over a local area network or a wide area network, such as the Internet, when desired by the user. Additionally, the instructions may be transmitted over a network in the form of an applet that is interpreted or compiled after transmission to the computer system rather than prior to transmission. One skilled in the art would appreciate that the physical storage of the sets of instructions or applets physically changes the medium upon which it is stored electrically, magnetically, chemically, physically, optically or holographically so that the medium carries computer readable information. 
     It is believed that the wireless printer adjunct of the present invention and many of its attendant advantages will be understood by the forgoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages, the form herein before described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes.