Output method and unit

Abstract: An output unit can be connected to a plurality of data generation sources. Therein, print data can be input substantially simultaneously from the respective data generation sources, and printing is performed by data generation sources. This eventually improves a working environment.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to an output method and unit, or more particularly, to an output method and unit enabling connection with a plurality of output data generation sources. Related Background Art A printer having multiple host interfaces has been introduced in the past. The respective interfaces are connected to electronic equipment (for example, host computers) for generating print data, whereby the operators of the electronic equipment can execute printing at their places. However, while receiving and printing print data from, for example, a host computer A, this kind of printer does not receive or print data sent from other host computers B, C, etc. Therefore, other operators except the one of the host computer A which is currently engaged in communication cannot print their data until the printing currently in progress is completed. This is discouraging in terms of a working environment. A printer shared by multiple host computer systems (hereafter, hosts) outputs print data sent from the hosts as they are without any control. In the aforesaid prior art, a host intending to transmit print data must issue an emulation switch instruction so that a printer to which the host is connected will be emulated to enable communication with the host. Alternatively, a user of the printer must select an emulator by performing a specified operation on the printer. This results in complex control of communication between a host and a printer or complex operations of a printer. When a printer is shared by multiple hosts, it is hard to differentiate which printed forms are output by which hosts. The printed forms must be sorted by studying the output contents. From the viewpoint of efficiency in sorting, improvements have been awaited. A concern of the present invention is to provide an output unit capable of being connected to a plurality of data generation sources; wherein print data can be input substantially simultaneously from the respective data generation sources and printing is performed, whereby the working environment can be improved. European Patents EP-A-0,468,762 and EP-A-0,450,663 discloses a data printing system and method which includes a controller which controls the printing of jobs from at least one input unit and generates a display signal indicating the times at which the respective jobs will be printed. Patent Specifications Nos. US-A-5 018 079, EP-A-0 450 663, US-A-5 047 957 and US-A-4 965 771 all disclose a printer controller for controlling a printer shared with plural external data processors, as does Patent Specification No. W090/12359. In accordance with a first aspect of the present invention there is provided output apparatus as set out in claim 1. In accordance with a second aspect of the invention there is provided an output method as set out in claim 6. In order that the present invention may be more readily understood embodiments thereof will now be described by way of example and with reference to the accompanying drawings, in which: Fig. 1 is a block construction diagram of a printer; Fig. 2 is a flowchart showing main processing in the embodiment shown in Figure 1; Fig. 3 is a flowchart showing communication request check processing in the embodiment of Figure 1; Fig. 4 is a flowchart showing processing related to data entry in the embodiment of Figure 1; Fig. 5 is a flowchart showing printing in the embodiment of Figure 1; Fig. 6 shows a cross-sectional structure of a laser beam printer; Fig. 7 is a flowchart showing communication request check processing in the embodiment of the present invention; Fig. 8 is a block diagram showing the construction of a printer of a typical embodiment of the present invention; Fig. 9 shows the details of the structure of a printer 10; and Fig. 10 shows correspondences between host IDS of host computers connected to a printer and types of emulation; and Fig. 11 is a flowchart showing a procedure in which hosts serving as suppliers of print data are discriminated and printout is performed. An embodiment of the present invention will be described in detail with reference to the appended drawings some of which are given by way of example. This embodiment will be described on the assumption that a laser beam printer based on an electrophotographic process using toner as a coloring material is employed as a printer. Fig. 6 is a cross-sectional diagram showing the internal structure of a laser beam printer (hereafter, LBP). The LBP can receive character patterns and form data from data sources which are not shown, and register them. In Fig. 6, 1200 denotes an LBP body. The LBP body inputs and stores print information (for example, character codes), and form information or macroinstructions, which are supplied from host computers connected externally, creates associated character patterns or form patterns in accordance with the information, and forms images on a recording medium such as paper. 300 denotes an operation panel on which switches and LED indicators are arranged for operations. 1210 denotes a controller that controls the LBP 100 as a whole, and analyzes character information supplied from host computers. The controller 1210 converts character information into a video signal representing character patterns associated with the character information, and outputs the video signal to a laser driver 102. The laser driver 102 is a circuit for driving a semiconductor laser 103. In response to an input video signal, the laser driver 102 turns on or off a laser beam 104 emitted from the semiconductor laser 103. The laser beam 104 is swung right and left by a rotary 105 to scan an electrostatic drum 106 so as to expose the electrostatic drum 106 to light which forms on the drum 106 an electrostatic latent image consisting of character patterns. The latent image is developed by a developing unit 107 surrounding the electrostatic drum 106, then transferred to recording paper. Cut forms are employed as the recording paper. The cut forms of recording paper are accommodated in a paper cassette loaded in the LBP 100, fetched into the printer by means of a paper feed roller 109 and transport rollers 110 and 111, then supplied to the electrostatic drum 106. Fig. 1 is a block construction of an LBP printer. The printer comprises host computers 1100a and 1100b, and a printer body 1200. In this embodiment, two host computers 1100a and 1100b are connected. Host computers 1100a and 1100b send print data and control instructions for a printer 1200 to the printer body 1200, and instructs the printer 1200 to perform printing. The printer 1200, as described previously, is divided into a controller 1210 and an engine 1220. The controller 1210 receives print data and control instructions from the host computer 1100a or 1100b, creates bit map information according to the received data and instructions, then transfers the information as a video signal to the engine 1220. The engine 1220 receives the video signal from the controller 1210, and forms a visible image of the signal on paper. The controller 1210 communicates with the engine 1220, whereby the controller 1210 reports the state of the engine 1220 externally and controls the engine 1220 as a whole. The controller 1210 will be described in more detail. The controller 1210 comprises host interfaces 1211a and 1211b, a CPU 1212, a RAM 1213, a ROM 1214, a video interface 1215, an operation panel 1216, and a data bus 1217. The host interfaces 1211a and 1211b transfer data to or from the host computers 1100a and 1100b. In this embodiment, two host interfaces are installed. The CPU 1212 controls the printer as a whole, analyzes print data, and creates bit map information. The RAM 1213 is used to interpolate data sent from the host computers 1100a and 1100b, bit map information, or various registered data, and to temporarily store information when serving as a work area for information processing. The ROM 1214 contains programs for controlling the printer, which will be described later, and font information. The video interface 1215 transfers data to or from the engine 1220. The operation panel 1216 sets, modifies, or displays parameters for specifying print environments. Data transferred within the controller 1210 flows over the data bus 1217. Arrows in Fig. 1 indicates data flows. Next, operation procedures of the CPU 1212 in the controller 1210 will be described in conjunction with Figs. 2 to 5. Programs relating to the flowcharts reside in the ROM 1214. Fig. 2 shows the processing for controlling a printer as a whole. The processing of Fig. 2 calls the processing of Figs. 3, 4, and 5 sequentially. The flowchart of Fig. 3 shows the processing for checking if a new communication request is issued for a host interface for which no data was sent when the processing was executed previously. Fig. 4 shows the processing for reading data from a designated host interface and writing the data in an input buffer for the interface. Fig. 5 shows the processing for reading data from the input buffer and printing the read data. The subsequent description will be made on the assumption that a variable "which_i_f" is reserved in the RAM 1213. A specific example of processing will be described. For simple explanation, data is sent from the host computer 1100a, printing is performed on the data, and data is sent from the host computer 1100b during the printing. When the power supply of the printer is turned on, first, the components of the printer are initialized at a step S21. The initialization of the step S21 includes initialization of, for example, a variable "which_i_f" reserved in the RAM 1213. The variable "which_i_f" contains the information which host interface is currently engaged in communication and in what order communication requests are issued. At the next step S22, the processing shown in Fig. 3 is called. When the processing is called, at a step S31, the information recorded in the variable "which_i_f" is checked to see if a communication request is issued from a host computer for a host interface which did not communicate with the printer previously. If a new communication request is not issued, the processing terminates. If a new communication request is issued, the processing passes to a step S32. In this embodiment, first of all, data is sent from the host computer 1100a. Therefore, the processing passes to the step S32. At the step S32, the information via which host interface communication must be done is appended to the variable "which_i_f". Then, the processing terminates. In this embodiment, the information that the host interface 1211a is the host interface via which communication must be done is appended to the variable "which_i_f". Needless to say, when the host interface 1211b is the host interface via which communication must be done, data indicating the fact is appended. When the processing of Fig. 3 terminates, the main processing of Fig. 2 passes to a step S23. At the step S23 in Fig. 2, based on the information recorded in the variable "which_i_f", the processing of Fig. 4 is started for a host interface via which communication must be done. In short, the processing of Fig. 4 is called. At a step S41 in Fig. 4, data is read via the designated host interface, and the data is written in an input buffer (reserved in the RAM 1213) associated with the host interface. Then, the processing of Fig. 4 terminates. In this embodiment, data is read via the host interface 1211a. In this embodiment, even if data is sent sequentially via the host interface 1211a, after data is read for a certain period of time or a certain amount of data is read, communication is suspended to terminate the processing of Fig. 4. Owing to this control procedure, a consecutive data flow can be read by receiving inputs via multiple host interfaces alternately. When the processing of Fig. 4 terminates as mentioned above, processing passes to a step S24 in Fig. 2. At the step S24 in Fig. 2, the processing of Fig. 5 is called. At a step S51 in Fig. 5, the information recorded in the variable "which_i_f" is checked to see for which one of host interfaces currently engaged in communication a communication request is issued first. Then, the processing passes to a step S52. In this embodiment, the host interface 1211a is the host interface for which a communication request is issued first. At the step S52, it is checked if data resides in the input buffer for the host interface that was recognized at the step S51 as a host interface for which a communication request is issued first. If no data resides, the processing passes to a step S53. If data resides, the processing passes to a step S54. At the step S54, data is read from the input buffer for the host interface selected at the step S52. The data is analyzed to perform necessary processing. Then, the processing of Fig. 5 is terminated. What is referred to as necessary processing is that data sent from the host computer is used to develop bit map information or that bit map information is printed on paper. On the other hand, at the step S53, on the assumption that communication via the host interface, which was recognized at the step S52 as a host interface for which a communication request had been issued first, has terminated, the recorded contents of the variable "which_i_f" are updated. Then, the processing of Fig. 5 is terminated. To be more specific, during the update, the name of the host interface selected at the step S52 is deleted from the list of host interfaces currently engaged in communication, and the information of the remaining host interfaces whose orders in which communication requests were issued are incremented by one is recorded in the variable "which_i_f". When the processing of Fig. 5 terminates as described above, processing returns to the step S22 in Fig. 2. When the processing from the step S22 to S24 in Fig. 2 is repeated, data are read from the host computers repeatedly, and the data are printed continuously. In this embodiment, at this stage of the description, data have been read from the host computer 1100a via the host interface 1211a. Thereafter, it will be described what kind of processing will be executed when a communication request is issued by the host computer b 1100b during the aforesaid communication with the host computer a 1100a. Within a sequence of operations from the steps S22 to S24, the printer is communicating with the host computer 1100a and the communicated data are being processed. In this sequence, if the host computer 1100b issues a communication request, it is detected at a step S31 in Fig. 3 that a new communication request has been issued. At a step S32, the recorded contents of the variable "which_i_f" are updated. Specifically, such information that the host interface 1211b also gets engaged in communication is appended to the variable "which_i_f" recording the information that only the host interface 1211a is engaged in communication at this stage. Next, data is read from the host computer 1100a via the host interface 1211a at the step S23 in Fig. 2. Then, data is read from the host computer 1100b via the host interface 1211b. Then, the processing from the step S22 to S24 in Fig. 2 is repeated. Thereby, while data concerning the usage of the data from the host computer 1100a and of the data from the host computer 1100b is being read, printing based on the data sent from the host computer 1100a can be continued. When all the data from the host computer 1100a have been processed, the input buffer for the host interface 1211a becomes empty. Thereby, processing passes from a step S52 to a step S53 in Fig. 5. The information concerning the host interface 1211a is deleted from the recorded contents of the variable "which_i_f". Thereafter, the host computer 1100b is recognized as a host computer that had issued the first communication request. Then, printing is continued using data read from the host computer 1100b. As described above, even when one of two host interfaces is used to communicate with a host computer, a host interface, which is not used for communication, can function on receipt of data. Owing to this control method, even when one of two host interfaces is used to communicate with a host computer, data can be sent from a host computer connected to the other host interface. After printing based on data sent from a host computer that started communication earlier is completed, printing based on data sent from the other host computer can be started. In the aforesaid embodiment, two host interfaces are installed. The same processing can be performed when three host interfaces are installed. In the aforesaid example, print data sent from multiple host computers can be received. Needless to say, what is actually printed is a series of print data sent from a single host computer. Printing of data received from other host computers is not carried out until the previous printing is completed. Therefore, it is uncertain whether the printer has received the data sent from other host computers. In the embodiment of the present invention which is now to be described, it is notified externally from which host computer data is being received. To realize the notification, the previous routine shown in Fig. 3 is replaced with the one shown in Fig. 7. Steps S31 and S32 in Fig. 7 are identical to the corresponding ones in Fig. 3. Only a step S33 in Fig. 7 will be described. When processing has passed to the step S33, the data indicating which host computers are currently communicating with the printer is specified in the variable "which_i_f". Therefore, at the step S33, the information corresponding to the data specified in the variable "which_i_f" is displayed on an operation panel 1216. For example, LEDs are installed on the operation panel 1216 by the number of host computers connectable to the printer. Then, an LED associated with a host computer that is communicating with the printer is lit. As described in the first embodiment, however, for a printer in which only two host computers can be connected, only one LED is required. Alternatively, when the operation panel 1216 has a liquid crystal display (hereafter, LCD), a message or symbol indicating a host computer currently communicating with the printer may be displayed. Furthermore, not only which host computer is currently communicating with the printer but also from which host computer print data being printed originate may be notified. In this case, LEDs may be installed in association with host computers, or a message or symbol may be displayed on an LCD. In the foregoing description, no comment is made on a type of host interface. This is because the present invention can apply to any type of host interface. In the embodiment of the invention, an electrophotographic printing type engine is employed as an engine for a printer. The present invention can apply to any printer having any type of engine; such as, an engine of a thermal recording type, an ink jet recording type, or a wire dot recording type. Additionally in the embodiment of the present invention, data received from host computers are stored in buffers, which are reserved in an RAM 1213, in one-to-one correspondence with the host computers. A hard disk or other external memory may be installed so that the data can be stored in the external memory. Moreover, when printing is under way, it is determined whether a transmission request is issued for any other host interface. Every time data is received via an interface, an interrupt signal may be fed to a CPU 1212. In response to each interrupt signal, the CPU 1212 may execute an interrupt routine to update the variable "which_i_f". As described so far, according to the present invention, print data can be received from multiple data generation sources. Therefore, even when printing is executed for a specific data generation source, other data generation sources need not delay outputting their print data. With which data generation source the printer is communicating is notified externally. Therefore, the users of respective data generation sources can confirm that the user-specified printing is being carried out.

Claims: An output apparatus for processing data input selectively from a plurality of host computers, said output apparatus comprising: a plurality of host interfaces (1211a, 1211b) for inputting data supplied from the plurality of host computers; discriminating means (1212) for discriminating in operation from which one of the plurality of host computers the input data is being supplied to said host interfaces; output means (1200) for printing data received from said plurality of interfaces and characterised in that the apparatus further comprises informing means (1216) separate from said output means operative in response to the output of said discriminating means to inform an operator of said output apparatus from which host computer the data currently being printed by the output means has been supplied to said host interfaces. Apparatus according to claim 1, and including memory means adapted to store a variable ("which _i_f") indicating which interface has received data, and if more than one interface has received data from our external host, indicating the order of reception of data. An apparatus according to claim 1 or claim 2, wherein when the plurality of host interfaces input data supplied from a plurality of host computers the input data from different host computers are stored in memory in such a manner as to be distinguishable from each other so that data corresponding to the most recent stored variable can be processed for output. An apparatus according to any one of claims 1 to 3, wherein said discriminating means is adapted to discriminate a host computer from the rest of the host computers on the basis discrimination data included in the data supplied to said host interfaces. An apparatus according to any one of the preceding claims, further comprising output means adapted to generate output data based on the data supplied to said host interfaces. An output method utilising an output apparatus according to any one of claims 1 to 5 for processing data input selectively from a plurality of host computers, said output method comprising the steps of: receiving data from a plurality of host interfaces (1211a, 1211b) founded in said output device; discriminating from which one of the plurality of host computers the input data is being supplied to said host interfaces; and in response to the output of said discriminating means utilising informing means to inform an operator of said output apparatus from which host computer the data currently being printed by the output apparatus has been supplied to said host interfaces, the informing means being separate from the means used to print the data. A method according to claim 6, and the apparatus including memory means which store a variable (which _i_f) indicating which interface has received data, and if more than one interface has received data from an external host, indicating the order of reception of data. A method according to claim 6 or claim 7, wherein when the plurality of host interfaces input data supplied from a plurality of host computers the input data from different host computers are stored in memory in such a manner as to be distinguishable from each other so that data corresponding to the most recent stored variable is processed for output. A method according to any one of claims 6 to 8, wherein said discriminating means is adapted to discriminate a host computer from the rest of the host computers on the basis discrimination data included in the data supplied to said host interfaces. A method according to any one of claims 6 to 7, further comprising generating output data based on the data supplied to said host interfaces.

Inventors: HIGUCHI YUICHI, SATO NOBUHIKO, HIGUCHI, YUICHI, SATO, NOBUHIKO, Higuchi, Yuichi, c/o Canon Kabushiki Kaisha, SATO, NOBUHIKO, C/O CANON KABUSHIKI KAISHA
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1993
Main classification: G03G15
IPC codes: G06F3, G06K15