Output control method and apparatus

Abstract: A method of controlling an output control apparatus, which is interposed between a data generating source and an output unit, for controlling the output unit, including a plurality of data generating steps of generating data for the output unit upon interpreting a plurality of printer languages, a discriminating step of analyzing received data and specifying in which of the plurality of data generating steps control based upon the data is carried out, a step in which, when one data generating step has been specified by the discriminating step, is for increasing the number of times the specified data generating step is started, and a step in which, when one data generating step based upon received data cannot be specified in the discriminating step, is for selecting one data generating step based upon the number of times each data generating step started in the past.

Description: BACKGROUND OF THE INVENTION This invention relates to an output control method and apparatus and, more particularly, to an output control method and apparatus for generating and outputting data for an apparatus on the basis of entered data. A printer used in a computer system is adapted to receive and print data such as character codes and control codes from the host computer to which the printer is connected. The printer interprets the data format (which may be referred to as the printer language) sent from the host computer and records an image that is based on the data format or printer language on recording paper. In other words, it is required that the printer interpret fully the data sent from the host computer. A variety of printer languages exist, as is well known. This means that the printer capable of being applied to a certain system is limited as a matter of course. Accordingly, an emulation device (hereinafter referred to as an "EM device") has recently been developed for the purpose of designating a desired printer language by means of a switch and effecting a conversion into data suited to the printer. In a case where a printer is connected directly to a single host computer, the above-mentioned EM device need only be interposed between the printer and the host computer. However, in a case where host computers of a plurality of types are connected simultaneously via a printer-mode changeover device internally incorporating a LAN (local area network) or a plurality of EM devices, the mode of the EM device must be changed whenever the type of host computer requesting printing is changed. This is a troublesome operation. Further, an arrangement has been considered in which it is determined automatically, by table retrieval or weighted evaluation, the particular host computer (the printer language) from which data has been sent to the printer, and then generating the data that is suited to the printer. However, if the data sent to the printer is data common to all host computers that are the object of conversion, the emulation mode to be executed cannot be specified. EP-A-0 469 974 discloses a printing system including a microprocessor programmed to identify the printer control language of an incoming data stream by extracting and identifying strings of distinct character codes. Where it is not possible to specify which printer control language should be used, other criteria such as the language which has the highest match, was most recently or frequently used, or was first available is used to select the language. EP-A-0 332 779 discloses a printer system including a control code judging unit which compares input data and groups of stored character control codes to determine which of a number of printed control units is selected. When it is not possible to judge which control code should be used, the control code which has been used the most is selected. SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide an output control method and apparatus in which, even if one process or means that is to execute control processing cannot be specified from received data, this can be analogized from the prevailing processing environment. According to a first aspect of the present invention, there is provided an output control apparatus for controlling an output unit, the output control apparatus being arranged to be interposed between a data generating source and the output unit, and comprising: a plurality of data generating means for interpreting a plurality of printer languages and performing control processing; discrimination means for analysing received data and specifying by which of said plurality of data generating means control based upon the data is carried out; and selecting means for selecting either the data generating means which has executed processing previously or the most frequently used data generating means, in the case where one data generating means cannot be specified by said discrimination means, characterised in that: said selecting means includes counting means for increasing the count of the number of times of selection of the data generating means, wherein said counting means increases the count of the number of times of selection of the data generating means if a data generating means can be specified by said discrimination means, while said counting means does not increase the count of the number of times of selection of the data generating means if a data generating means cannot be specified by said discrimination means. According to a second aspect of the present invention, there is provided a method of controlling an output unit responsive to a data generating source comprising the steps of: interpreting a plurality of printer languages and performing control processing; analysing received data and specifying by which of a plurality of data generating means control based upon the data is carried out; and selecting either the data generating means which has executed processing previously or the most frequently used data generating means, in the case where one data generating means cannot be specified, the method being characterised by the further steps of: increasing the count of the number of times of selection of the data generating means if a data generating means can be specified, while not increasing the count of the number of times of selection of the data generating means if a data generating means cannot be specified. Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram illustrating a system according to a first embodiment of the present invention; Fig. 2 is a block diagram illustrating a printing control apparatus according to the first embodiment; Fig. 3 is a diagram illustrating the transitions of a counters for the purpose of describing the operation of the printing control apparatus of the first embodiment; Fig. 4 is a flowchart illustrating the details of operation according to the first embodiment; Fig. 5 is a block diagram illustrating a printing control apparatus according to a second embodiment of the present invention; Fig. 6 is a flowchart illustrating the details of operation according to the second embodiment; Fig. 7 is a flowchart illustrating the details of operation according to the second embodiment; Fig. 8 is a block diagram illustrating a printing control apparatus according to a third embodiment of the present invention; Fig. 9 is a flowchart illustrating the details of operation according to the third embodiment; Fig. 10 is a flowchart illustrating the details of operation according to the third embodiment; Fig. 11 is a flowchart illustrating the details of operation according to a fourth embodiment; Fig. 12 is a flowchart illustrating the details of operation according to a fifth embodiment; Fig. 13 is a block diagram illustrating a printing control apparatus according to a sixth embodiment of the present invention; Fig. 14 is a flowchart illustrating the details of operation according to the sixth embodiment; Fig. 15 is a flowchart illustrating the details of operation according to a seventh embodiment; Fig. 16 is a block diagram illustrating a system according to an eighth embodiment of the present invention; Fig. 17 is a flowchart illustrating the details of operation according to the eighth embodiment; Fig. 18 is a diagram showing the structure of a laser-beam printer serving as a printing apparatus according to this embodiment; Fig. 19 is a diagram showing the structure of an ink-jet printer serving as a printing apparatus according to this embodiment; and Fig. 20 is a block diagram showing an apparatus according to a ninth embodiment of the present invention. DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will now be described in detail with reference to the accompanying drawings. Fig. 1 is a block diagram illustrating the configuration of a host computer system according to a first embodiment of the invention. The system according to this embodiment includes host computers 1, 2 that transmit printing data, an input changeover unit 3 having two input ports and one output port, a printing control apparatus 4 and a printing apparatus 5. In the system configuration described above, the host computer 1 or 2 sends the input changeover unit 3 printing data such as character or control codes that are in accordance with a printer language having a format dependent upon the application program, or OS, running in each host computer. The input changeover unit 3 renders effective only the input port at which input has been detected and transfers this input data to the printing control apparatus 4. The latter converts the printing data, which has been sent via the input changeover unit 3, into printing data (language data or image data of the native mode possessed by the printing apparatus) having the format suited to the printing apparatus 5 and then sends this printing data to the printing apparatus 5. The printing control apparatus 5 recording an image based upon the printing data sent to it. Upon passage of a prescribed period of time from the moment power is introduced or from the moment printing data stops being received from any host computer, the input changeover unit 3 outputs a signal READY, which indicates that reception is possible, to both host computers. The construction of the printing control apparatus 4 according to this embodiment is illustrated in Fig. 2. The apparatus 4 includes a central processing unit (CPU) 10 for supervising overall control of the printing control apparatus 4. The CPU 10 has a clock-pulse generating circuit, a delay circuit, a gate circuit and other logic circuitry, by way of example. A read-only memory (ROM) 11 stores the content of processing executed by the CPU 10 as well as a procedure for executing a series of control processing operations such as control processing for supplying control signals to various components. A stored procedure is a program corresponding to the flowchart of Fig. 4, by way of example. It goes without saying that a program for interpreting various printer languages and converting a printer language into data suited to the printing apparatus also is stored in the ROM 11. A random-access memory (RAM) 12 is utilized as a work area of the CPU 10 (namely as a reception buffer, output buffer and area for storing various operating states of the apparatus). The RAM 12 also has a storage area for storing the number of times each EM device is started. An input interface (I/F) 13 is for accepting data sent from the input changeover unit 3, and an output interface (I/F) 14 is for transferring the printing data, which has been converted within the printing control apparatus, to the printing apparatus 5. Each component described above is connected to a bus line 15 and is capable of being controlled by the CPU 10. The specific operation of this embodiment will now be described. For the sake of simplicity, it will be assumed that the printing control apparatus 4 in this embodiment has two emulation modes. In a case where printing data sent from the host computers 1, 2 has been analyzed and various control commands contained in the printing data employ printer languages peculiar to a printer, which emulation should be started with regard to the sent printing data can be judged in a simple manner. The problem is when an application running in a host computer does not perform complicated processing, in which case a command peculiar to a printer language is not generated. When data having such a format is sent to the printing control apparatus, it is impossible to specify to which emulation the changeover should be made. Accordingly, in this embodiment of the invention, the transition of start of emulations in the past is investigated and processing for converting the printing data is performed giving priority to the higher frequency of occurrence. However, since the system is operating in the currently prevailing environment, it is meaningless to investigate frequency going back too far in the past. In this embodiment, therefore, processing for receiving printing data and transferring converted data to the printing apparatus is counted as one job, and n-number of past jobs is adopted as the effective range. Further, since the frequency of selection of emulations further back is not necessarily negligible, multiplication by a predetermined coefficient is performed. Processing will now be described in accordance with Fig. 3 and the flowchart of Fig. 4. In Fig. 3, EC1, EC2 represent counters for counting the number of operations of emulation modes 1, 2, and WC denotes a counter for counting the number of times the emulations 1 and 2 are formally recognized. These counters make use of prescribed areas in the RAM 12. Further, each counter is set to "0" as an initial value, and it is assumed that the emulation mode in the initial state is selected to be the emulation mode 1 (this means that the emulation mode 1 has a higher order of priority than the emulation mode 2). Further, when printing data is sent to the I/F 13 from the input changeover unit 3, the CPU 10 is interrupted. In the interrupt processing, the CPU 10 accepts the printing data from the I/F 13. This need not be described. The same will hold in the other embodiments set forth below. Processing will now be described in accordance with the flowchart of Fig. 4. It will be assumed that the jobs of the host computer 1 or 2 have been sent in the order indicated by the item "Procedure" in Fig. 3. In the first embodiment, as well as in the other embodiments described later, identification of the end of one item of printing data is assumed to be when printing data no longer arrives even upon passage of a prescribed period of time. However, this does not impose a limitation upon the invention. That is, in a case where the host computer attaches a control code, which indicates the end of a job, to the end of printing data, this control code need only be recognized. When printing data has been sent from the input changeover unit 3, step S1 of the flowchart of Fig. 4 is executed. This involves analyzing the received printing data to determine in which emulation mode the data has been received, and judging whether printing data for the printing apparatus 5 is to be generated or not. This judgment is made by comparing the received data with the control command peculiar to each printer language already registered in the ROM 11. Next, when the program proceeds to step S2, it is judged whether an emulation mode to be selected could be specified. If a control command peculiar to any printer language is present in the received printing data, then the program proceeds to step S3. If it is determined at step S2 that only a control command common to all printer languages is present and, hence, the corresponding emulation mode cannot be specified, the program proceeds to step S10. It is assumed that the procedures of Fig. 3 hold. Therefore, if the first job (procedure 2) is such that data processed in the emulation mode 2 has been sent, or in other words, if the data can be specified as being data for the emulation mode 2, then the program proceeds from step S2 to step S3. When the program proceeds to step S3, this means that the emulation mode in which processing is to be performed has been specified. The counter WC, therefore, is incremented. As a result, the value of the counter WC becomes "1". Since this is less than "8", step S4 is skipped and the program proceeds to step S5. Which emulation mode has been specified is determined at step S5. Here, since the emulation mode 2 has been selected, the program proceeds to step S7, where the counter EC2 is incremented, and then to step S9, at which processing is started in the emulation mode 2. In the following procedures 3 ~ 5, it is indicated that the printing data for the emulation mode 1 will be sent. As a result, steps S6 and S7 are executed. It should be noted that the processing for outputting the printing data to printing apparatus is executed at step S8 and S9. At this time, in accordance with the above-described procedures, the counter WC is incremented by "3" in procedures 3 ~ 5, as a result of which the count in counter WC becomes "4" and the count in counter EC becomes "3". The emulation mode 1 is executed in each of these procedures. The next procedure 6 represents a case in which it cannot be specified in which emulation mode the printing data received via the input changeover unit 3 should be processed. Accordingly, the program proceeds from step S2 to step S10. The counts in the counters EC1 and EC2 are compared at this time at step S10 to determine which counter is larger. In accordance with this embodiment, the value in counter EC1 is "3" and the value in counter EC2 is "1" at this time, and therefore the program proceeds to step S8, at which processing is executed in the emulation mode 1. In any case, if the emulation mode cannot be specified from the received printing data, the value in each counter is not updated. The reason for this is that if the counter EC1, for example, were incremented in a case where the specification could not be made, the processing of the emulation mode 1 would have an influence upon the subsequent discrimination processing. In other words, in this embodiment, the counters EC1, EC2 in a case where the specification has been made are exploited as significant information. In the procedures 7 ∼ 9 of Fig. 3, the above-described processing is executed. As a result (at the moment the job of procedure 9 ends), the counts in counters EC1, EC2 and WC are updated to "5", "2" and "7", respectively. Procedure 10 is a case in which printing data is received and it has been specified that this is data to be printed in the emulation mode 2. The program therefore proceeds to step S3. Here the value of counter WC is incremented by "1", as a result of which the held value becomes "8". Accordingly, the decision rendered at step S3 is "YES" and the program proceeds to step S4. The processing of step S4 is so-called initialization processing. That is, if the value in counter WC has become "8", a new job starts to be counted and the value in counter WC is reset to "0". If the counters EC1, EC2 were reset to "0", the criteria for judgment in a case where the emulation mode for the printing data of the immediately following job cannot be specified would vanish. Therefore, the preceding counted value is halved to leave some influence. As a result, the counts in counters EC1 and EC2 become "2.5" and "1", respectively. Since it has been judged that the job of interest is data to be processed in emulation mode 2, the program proceeds to step S7 and the count in counter EC2 is updated to "2". Thereafter, processing is executed in emulation mode 2 at step S9. Procedure 11 indicates a case in which the emulation mode to be started cannot be specified solely by the printing data. Accordingly, at step S10, the counts in counters EC1, EC2 are "2.5" and "2", respectively, and therefore the program proceeds to step S8, at which processing of the emulation mode 1 is executed. The next procedure 12 is for a case in which printing data for the emulation mode 2 is received, and therefore the counter EC2 is updated to "3". As a result, in a case where printing data is received in which it is impossible to specify in which emulation mode processing is to be performed, as indicated at procedure 13, the program proceeds to step S10. In the current case, EC1 < EC2 (∴ EC1 = 2.5, EC2 = 3) holds and therefore the emulation mode 2 is selected and executed. It should be noted that since EC1 ≥ EC2 holds in the decision of step S10, the counter EC1 is assigned an order of priority higher than that of counter EC2. In a case where the same value is held, it is so arranged that the emulation mode 1 is selected. Thus, in a case where emulation cannot be selected, as in procedure 6 in Fig. 3, the number of times emulation 1 was selected in the past is three, the number of times emulation 2 was selected is one and the emulation counters also store 3 and 1, respectively. Therefore, emulation 1 is selected. In the case of procedure 13, the total number of times emulation 1 was selected in the past is five and the total time of times emulation 2 was selected is four. However, since 2.5 and 3 have been stored in the emulation selection counters, in this case the emulation EM2 is selected. The reason for this is as follows: This is processing when emulation 2 in procedure 10 has been selected. As a result of counting up the work counter, eight is attained, the work counter WC is cleared and the value of EC2 is incremented by +1 after the values in the emulation selection counters EC1 and EC2 are halved. More specifically, even if the value of counter EC1 is "5" larger than the value of counter EC2 at a certain time, the difference between the values counters EC1 and EC2 is halved to 2.5 when the work counter WC (the number of times printing jobs have been performed) exceeds eight. In other words, the influence of past jobs is diminished. It should be noted that although the values in the counters EC1, EC2 are multiplied by 1/2 in a case where the value in work counter WC becomes "8", multiplication may be performed by 1/3, 2/3, etc. Further, it is unnecessary for the counters EC1, EC2 to hold the results of calculation correctly; it will suffice if the value is accurate at least to the first decimal place. In accordance with this embodiment as described above, a special technique is used to count the number of times each emulation is selected. By virtue of this technique, a value representing the time-dependent number of selections of each emulation is stored in each emulation selection counter, and it is possible to assign dynamically an order of priority of a high rate of selection conformity. Further, in this embodiment, two examples are mentioned as the types of emulation. However, by providing three or more counters, a number of emulation modes can be dealt with, as would readily occur to one skilled in the art. In addition, when the counter WC attains a value of "8", it may be set to the optimum value rather than being reset. Alternatively, it is obvious that a switch may be provided so that any value can be set at will. The same is true with regard to the value (1/2 in the example described above) by which the values in counters EC1, EC2 are multiplied. <Second Embodiment> Fig. 5 is a block diagram illustrating a printing control apparatus according to a second embodiment. Elements identical with those in the printing control apparatus of the first embodiment described above are designated by like reference numerals. This embodiment differs from the first embodiment in that a display unit 16 is provided. The system configuration is that shown in Fig. 1. The operation of the second embodiment (the processing executed by the CPU 10) will be described in accordance with the flowchart of Fig. 6. The processing procedure (program) naturally is stored in the ROM 11. The same is true with regard to the embodiments described later. An input buffer IB, flag F, pointer EMP, counter CT and temporary storage memory TM described below are obtained in the RAM 12. The input buffer IB is an area that temporarily stores the received data from the input changeover unit 3, and the flag F stores information indicating whether, on the basis of entered data, the corresponding emulation mode was capable of being specified or not. The pointer EMP stores the head address of a program of the emulation mode executed by the immediately preceding job. The counter CT stores the number (e.g., the number of pages) of items of printing data of a prescribed amount. In the initial state, the emulation mode 1 is selected, and the entry address of this program is set in the pointer EMP. The operation of the second embodiment will now be described. When the input buffer IB receives printing data via the input changeover unit 3, the data in the input buffer IB is copied to the temporary storage memory TM and both the flag F and counter CT are cleared to "0" at step S21. Next, at step S22, it is determined, based upon the received printing data that has been stored in the input buffer IB, in which emulation mode processing is executed. In a case where the corresponding emulation mode has been specified, the program proceeds to step S24, where the flag F is set to "1", and then to step S25, at which the address of the corresponding emulation mode is set in the pointer EMP. Accordingly, in a case where the emulation mode could not be specified, the flag F remains at "0" and EMP is set to the initial state or the mode corresponding to the previous job. When the program proceeds to step S26, image conversion processing is executed based upon the emulation mode indicated by the pointer EMP. Next, it is determined at step S27 whether a syntax error or the like has occurred in the received control command. If such an error has occurred, the program proceeds to step S31. If no error has occurred, the results of conversion are outputted to the printing apparatus and the program proceeds to step S28. Processing in the absence of an error will now be described. When the program proceeds to step S28, it is determined whether printing processing of a job has ended or not. If the decision rendered is that processing has not ended, then the program proceeds to step S29, at which reception of the next item of printing data is performed and the data is stored in the reception buffer IB. The program then proceeds to step S30, at which the counter CT is incremented. This is followed by execution of the processing of step S26. If it is determined that the processing for one job has ended ("YES" at step S28), processing is terminated. It should be noted that the emulation processing described above is performed in the units of the data stored in the input buffer IB. If a syntax error occurs during execution of emulation processing and the program proceeds to step S31 as a result, it is determined at this time whether the flag F is "1" or not. Since Flag F = 1 means that a genuine error has occurred, processing is terminated and a buzzer or the like (not shown) is sounded. The reason for this is that emulation currently being executed is operating in the emulation mode intended for the host computer and an error has occurred in spite of this. If it is determined that the flag F is not "1", there is a possibility that the emulation mode currently being executed is erroneous. The program therefore proceeds to step S32, at which processing for discriminating the emulation mode is executed in the same manner as at step S22. Next, it is determined at step S33 whether the corresponding emulation mode could be specified. If the mode could not be specified, then processing is terminated. If the emulation mode could be specified, then the program proceeds to step S34, where the emulation mode that could specified is compared with the emulation (indicated by EMP) executed thus far. If the two are identical, then the error that has occurred is a genuine error and processing is terminated as a result. In a case where a newly discriminated emulation mode differs from the emulation mode executed thus far, the program proceeds to step S35. The counter CT is investigated at step S35, where it is determined whether the value in the counter is equal to or less than "1", i.e., "0", "1" or greater. In a case where the value in counter CT is "0" or "1", this means that the block of printing data initially received is still left in the temporary storage memory TM and will suffice if processing is executed in the newly specified emulation mode. Accordingly, in this case, the data in the temporary storage memory TM is copied to the input buffer IB and the program returns to step S24. If the value in counter CT is greater than "1", then the program proceeds to step S37, where a message prompting re-transmission of the printing data is displayed on the display unit 16. The system then waits for reception of the data at step S38. If the printing data has been re-transmitted, the program returns to step S24 and processing resumes. In accordance with the second embodiment as described above, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. If a syntax error in the control data has occurred, processing for determining the emulation mode is performed again at this time and printing control is carried out from the beginning. As a result, it is possible to obtain correct printing. In the second embodiment, the input buffer may be of any size. For example, the capacity of the input buffer may be equivalent to one page. <Third Embodiment> Fig. 8 is a block diagram of a printing control apparatus according to a third embodiment of the invention.. Elements identical with those in the printing control apparatus of the first embodiment described above are designated by like reference numerals. The third embodiment differs from the second embodiment in that it is further provided with a control panel 17. The latter has a key "STOP" for stopping printing, a selection key "1" for selecting the emulation mode 1, and a selection key "2" for selecting the emulation mode 2. The operation of the third embodiment will now be described. When the input buffer IB receives printing data via the input changeover unit 3, the data in the input buffer IB is copied to the temporary storage memory TM and both the flag F and counter CT are cleared to "0" at step S41. Next, at step S42, it is determined, based upon the received printing data that has been stored in the input buffer IB, in which emulation mode processing is executed. In a case where the corresponding emulation mode could be specified, the program proceeds to step S44. Here, in order to store the emulation mode that has been specified, the head address of this program is stored in the pointer EMP provided at the prescribed address in RAM 12. When power is introduced, the data indicating the emulation mode 1 is stored in the pointer EMP as an initial value. Therefore, if the emulation mode could not be specified, the mode will be the emulation mode 1 when power is introduced. In a case where printing processing has been performed a number of times, processing is executed in the immediately preceding emulation mode. Next, at step S45, processing based upon the received data is executed in the emulation mode indicated by the pointer EMP. The program proceeds to step S47 if the "STOP" key is not pressed during execution of processing and to step S51 if the "STOP" key is pressed during processing. When the program proceeds to step S47, it is determined whether printing processing of the series of jobs has ended or not. If the decision rendered is that processing has not ended, then the program proceeds to step S48, at which reception of the next item of printing data is performed and the data is stored in the reception buffer IB. The program then proceeds to step S49, at which the counter CT is incremented. The program then returns to step S45. It should be noted that the emulation processing described above is performed in the units of the data stored in the input buffer IB. If the "STOP" key is pressed during execution of emulation processing and the program proceeds to step S51, a selection menu for selection of printing control programs (emulation modes 1, 2) is displayed on the display unit 16, after which the system waits for pressing of key "1" or "2" on the control panel 17 at step S52. In other words, the operator is allowed to select the emulation mode. When the program proceeds to step S53, the selected emulation mode is stored in the pointer EMP and the program proceeds to step S54. The counter CT is investigated at step S54, where it is determined whether the value in the counter CT is equal to or less than "1", i.e., "0", "1" or greater. In a case where the value in counter CT is "0" or "1", this means that the block of printing data initially received is still left in the temporary storage memory TM and will suffice if processing is executed in the newly specified emulation mode. Accordingly, in this case, the data in the temporary storage memory TM is copied to the input buffer IB and the program returns to step S45. If the value in counter CT is greater than "1", then the program proceeds to step S56, where a message prompting re-transmission of the printing data is displayed on the display unit 16. The system then waits for reception of the data at step S57. If the printing data has been re-transmitted, the program returns to step S45 and processing resumes. In accordance with the third embodiment as described above, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. If the results are not as intended when the processing is executed, printing processing is suspended, the correct emulation mode is selected and printing control is carried out from the beginning. As a result, it is possible to obtain correct printing. <Fourth Embodiment> A fourth embodiment of the invention will now be described. The printing control apparatus 4 according to the fourth embodiment is the same as that of the second embodiment, and the operation thereof will be described in accordance with the flowchart of Fig. 11. It will be assumed here that an interface between the host computer 1 and the input changeover unit 3 and an interface between the input changeover unit 3 and printing control apparatus 4 are capable of sending and receiving bidirectional data. The data (or more correctly, the control code) in the reception buffer within the RAM 12 is investigated, the printer language of the printing data is determined and the corresponding emulation mode is specified at step S61. Then, if it is determined at step S62 that the specification processing has ended in failure, the processing of step S63 is skipped and the program proceeds to step S64. If the emulation is capable of being specified, then the program proceeds to step S63, where the emulation mode that has been specified is stored in EMODE secured in advance at a prescribed address location in the RAM 12. The emulation mode in which processing was performed previously (or the emulation mode of the initial state) will have been stored in EMODE in a case where specification of the emulation mode has ended in failure. When the program proceeds to step S64, the data in EMODE at this time is sent back to the input changeover unit 3 via the interface I/F 13. The input changeover unit 3 then sends the received EMODE data back to the host computer 1 or 2, whichever has been selected. As a result, the printing control apparatus 4 is capable of sending the data in EMODE back to the host computer that transmitted the received printing data. When the program proceeds to step S65, the data in EMODE at this time is discriminated and it is determined whether the data is the emulation mode 1 or the emulation mode 2. In case of emulation mode 1, the program proceeds to step S66, at which processing is executed in this mode. In case of emulation, the program proceeds to step S67, where printing control processing based upon this mode is executed. As a result of the foregoing, in accordance with the fourth embodiment, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. At such time the emulation mode to be processed is communicated, via the input changeover unit or a LAN, to the host computer that performed the transmission. Accordingly, if it is so arranged that the host computer displays the communicated information, the operator may judge, based upon the printing instructed, whether the desired results have been obtained. If the desired results have not been obtained, the operator may suspend printing processing and re-process the output of the printed data. <Fifth Embodiment> The printing control apparatus in a fifth embodiment is the same as that of the fourth embodiment described earlier. Accordingly, only the operation of the fifth embodiment will be described. Fig. 12 is a flowchart illustrating the processing executed according to the fifth embodiment. The data in the reception buffer within the RAM 12 is investigated, the printer language of the printing data is determined and the corresponding emulation mode is specified at step S71. Then, if it is determined at step S72 that the specification processing has ended in failure, the processing of step S73 is skipped and the program proceeds to step S74. If the emulation is capable of being specified, then the program proceeds to step S73, where the emulation mode that has been specified is stored in EMODE secured in advance at a prescribed address location in the RAM 12. Accordingly, the emulation mode in which processing was performed previously (or the emulation mode of the initial state) will have been stored in EMODE in a case where specification of the emulation mode has ended in failure. When the program proceeds to step S74, printing control processing is executed in the emulation mode that has been designated by EMODE prevailing at this time. If an error has occurred during the course of processing, the program proceeds to step S78. If there is no error, the program proceeds to step S76. When the program proceeds to step S76, it is determined whether printing processing has ended, i.e., whether there data not yet transmitted from the host computer. If it is judged that printing processing has not ended, the program proceeds to step S77, at which the next item of printing data is stored in the input buffer, after which the program returns to step S74. If an error occurs during execution of emulation processing, on the other hand, the program proceeds to step S78, at which the data in EMODE at this time and information specifying the type of error are sent back to the host computer that transmitted the printing data. As a result of the foregoing, in accordance with the fifth embodiment, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. If an error has occurred during processing in an emulation mode in which processing is to be executed, the emulation mode in which processing is being executed and the contents of the error are sent back to the host computer . Accordingly, on the host computer side, measures for selecting a correct printing control program or correction of a control code can be performed rapidly so that it is possible to obtain correct printing. <Sixth Embodiment> A sixth embodiment of the invention will now be described. The construction of the printing control apparatus 4 in the sixth embodiment is as illustrated in Fig. 13. Here a control panel 18 is not provided with the "STOP" key shown on the panel in Fig. 8. Operation will be described in accordance with the flowchart of Fig. 14. The data in the reception buffer within the RAM 12 is investigated, the printer language of the printing data is determined and the corresponding emulation mode is specified at step S81. It is then determined at step S82 whether specification processing has been performed normally. If specification could be achieved, then steps S83, S84, S85 are skipped and the program proceeds to step S86, at which processing based upon the specified emulation mode is executed. If specification could not be achieved, then the program proceeds to step S83, at which a message calling for selection of the emulation mode is displayed on the display unit 16 to so inform the operator. This is followed by step S84, at which the system waits for pressing of key "1" or "2" on the control panel 18 in order to select the emulation mode. As a result of the foregoing, in accordance with the sixth embodiment, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. At such time the operator selects the emulation if the emulation mode to be processed could not be specified. This makes it possible to obtain correct printing at all times. <Seventh Embodiment> A seventh embodiment of the invention will now be described. The construction of the printing control apparatus 4 in the seventh embodiment is the same as in the first embodiment. Operation will be described in accordance with Fig. 15. The data in the reception buffer within the RAM 12 is investigated, the printer language of the printing data is determined and the corresponding emulation mode is specified at step S91. It is then determined at step S82 whether specification processing has been performed normally. If specification could be achieved, then the program proceeds to step S93, at which the specified emulation mode is stored in EMODE. If specification could not be achieved, the processing of step S93 is skipped. Accordingly, the EMODE of the previous job is held or the emulation mode of the initial state is held in EMODE in this case. When the program proceeds to step S94, the content of EMODE at this time is investigated and it is determined whether the content is emulation mode 1 or emulation mode 2. The program then proceeds to step S95 or S96, at which emulation mode processing corresponding to the content of EMODE is executed. As a result of the foregoing, in accordance with the seventh embodiment, processing is executed in an emulation mode that is in accordance with a prescribed order of priority in a case where an emulation mode to be started could not be specified with regard to entered printing control data. At such time the emulation mode in which the previous processing was performed is selected if the emulation mode to be processed could not be specified. This makes it possible to obtain correct printing at all times. As a result, emulation having a high rate of selection conformity is executed. <Eighth Embodiment> An eighth embodiment of the invention will be described next. The construction of the system in the eighth embodiment is especially suited to a case in which a number of host computers are connected, as indicated in Fig. 16. M-number of host computers are connected to the printing control apparatus 4 in this embodiment. Further, information representing the total number of host computers and a breakdown of the types of printer languages that will be sent from these host computers is set in the RAM 12. The information indicates that P-number of host computers will output printing data for emulation 1, and that Q-number (Q = M-P) of host computers will output printing data for emulation 2, though this information is not shown in the drawings. As for the method of setting the information, a switch (not shown) may be used or the host computer may be so adapted as to transmit special control information for setting this information. Furthermore, the number of times each emulation mode is executed may be counted. The processing executed by the printing control apparatus 4 according to the eighth embodiment will be described in accordance with the flowchart shown in Fig. 17. The data in the reception buffer within the RAM 12 is investigated, the printer language of the printing data is determined and the corresponding emulation mode is specified at step S101. It is then determined at step S102 whether the emulation mode to be started could be specified. If the corresponding emulation mode could be specified, the processing of steps S103, 104, 105 is skipped and the program proceeds to step S106, where processing is executed in the specified emulation mode. If processing corresponding to a series of printing data has ended, the program proceeds to step S107, at which the number of times the emulation mode has started is counted up. If the emulation mode to be started could not be specified solely from the received data, the program proceeds to step S103, where the number of times each emulation started is multiplied by the number of host computers and the emulation mode for which the largest numerical value has been obtained is specified as the emulation mode to be started. For the sake of simplicity, assume for example that ten host computers are connected, of which eight output printing data for emulation mode 1 and the remaining two output printing data for emulation mode 2. In terms of probability, it is highly likely that the printing data will be that for emulation mode 1. In this embodiment, however, judgment cannot be made based solely on this information and therefore the number of times each emulation mode started is multiplied. On the basis of the above-mentioned condition, assume that execution in the emulation mode 1 has been performed five times in the past and that execution in the emulation mode 1 has been performed 50 times in the past. In this case, when the product (= 8 x 5) of the number of host computers for the emulation mode 1 and the number of starts of the emulation mode 1 is compared with the product (= 2 x 50) of the number of host computers for the emulation mode 2 and the number of starts of the emulation mode 2, it is found that the numerical value of the latter is larger. Accordingly, in a case where this state is attained, the latter, namely the emulation mode 2, is selected. This is exactly the decision processing of step S103. If the emulation mode cannot be specified even at the decision processing of step S103, the program proceeds to step S104, where emulation is carried out according to the emulation mode having the larger number of past starts. A case can be hypothesized in which the numbers of starts of the emulations are the same. In this case, therefore, the emulation mode is specified at step S105 to be that of the larger number of connected host computers. In this case, however, the emulation mode is not counted up. The reason for this is the same as that mentioned in the first embodiment. If the emulation mode cannot be specified even at step S105, the program proceeds to step S108, at which the emulation mode started last is adopted. In accordance with the eighth embodiment, as described above, even if the corresponding emulation mode cannot be specified based solely upon the printing data, the emulation mode in which processing is to be executed is discriminated based upon the number of times each emulation has been selected and the number of host computers that will output printing data for each emulation mode. As a result, it is possible to execute printing processing at a high rate of conformity. In the first through eighth embodiments described above, two emulation modes are used. However, it goes without saying that more than two emulation modes may be employed. Further, though the printing control apparatus 4 is described as being an independent apparatus in the foregoing embodiments, it may incorporate the input changeover unit 3. In addition, an arrangement may be adopted in which both the input changeover unit 3 and printing control apparatus 4 are incorporated in the printing apparatus or only the printing control apparatus 4 is incorporated in the printing control apparatus 4. Further, the printing control apparatus 4 has only one input interface in the foregoing embodiments. However, it goes without saying that two or more input interfaces may be provided or that the interface may be for connected to a LAN. It should be noted that a laser-beam printer is assumed to be the printing apparatus 5, though this has not been particularly described in the foregoing embodiments. The construction of a laser-beam printer to which the embodiments are applied will be described with reference to Fig. 18. Fig. 18 is a sectional view showing the internal structure of a laser-beam printer (hereinafter abbreviated to "LBP") serving as the printing apparatus 5 according to this embodiment. The LBP registers character patterns represented by commands sent via the printing control apparatus in this embodiment, registers standard forms (form data), etc. In Fig. 18, numeral 100 denotes the main body of the LBP. Printing information (character codes, etc.), form information or macro instructions supplied by an externally connected host computer or the printing control apparatus 4 of the embodiment are applied to the LBP 100, which proceeds to store this information, create character patterns or form patterns in accordance with this information and form the corresponding images on a recording paper serving as a recording medium. Numeral 300 denotes a control panel on which operating switches and LED indicators are arranged, and numeral 101 designates a printer control unit for performing overall control of the LBP 100 and analyzing character information supplied by a host computer. The printer control unit 101 mainly converts the character information into a video signal of the corresponding character patterns and outputs the video signal to a laser driver 102. The laser driver 102 is a circuit for driving a semiconductor laser 103. Laser light 104 is emitted by the semiconductor laser 103 in conformity with the applied video signal. The laser light 104, which is switched on and off, is deflected to the left and right by a rotating polygonal mirror 105 so as to scan and expose an electrostatic drum 106. As a result, an electrostatic latent image of a character pattern is formed on the drum 106. The latent image is developed by a developing unit 107 surrounding the electrostatic drum 10, after which the latent image is transferred to recording paper. The recording paper is used in the form of cut sheets accommodated in a paper cassette 108 loaded in the LBP 100. The paper is fed into the apparatus by a paper-feed roller 109 and conveyor rollers 110, 111 so as to be supplied to the electrostatic drum 106. Toner that becomes attached to the drum by the foregoing processing is transferred to the recording paper by a transfer device, after which the recording paper is ejected from the apparatus via a fixing device. The printing apparatus 5 is not limited to a laser-beam printer. An ink-jet printer of the kind described below can also be employed as the printing apparatus 5. Fig. 19 is a perspective view showing the general appearance of an ink-jet recording apparatus IJRA to which the present invention can be applied. As shown in Fig. 19, the apparatus includes a carriage HC engaged with the spiral threads 5004 of a lead screw 5005 rotated via driving-force transmission gears 5011, 5009 in operative association with the reversible rotation of a drive motor 5013. The carriage HC has a pin (not shown) moved back and forth in the directions of arrows a, b along a guide 5003. An ink-jet cartridge IJC is mounted on the carriage HC. Numeral 5002 denotes a paper urging plate for urging the paper against a platen 5000 over the traveling direction of the carriage. Numerals 5007, 5008 denote photocouplers serving as home-position sensing means for changing over the rotating direction of the motor 13 upon confirming that a lever 5006 on the carriage is located in the vicinity of the photocouplers. Numeral 5016 designates a member supporting a cap member 5022 for capping the front side of a recording head, and numeral 5015 represents suction means for attracting the cap. The suction means 5015 attracts and restores the recording head via an opening 5023 in the cap. Numeral 5017 denotes a cleaning blade and 5019 a member capable of moving the blade 5017 back and forth. The member 5019 is supported on a support plate 5018. It goes without saying that the blade is not limited to one of this type and that any well-known cleaning blade is applicable to this example. Numeral 5021 denotes a lever for starting the suction for recovery. The lever 5021 moves with movement of a cam 5020 engaged with the carriage, and driving force from the drive motor is controlled by well-known transmission means such as a clutch changeover means. As for these capping, cleaning and suction recovery operations, the arrangement is such that when the carriage arrives in an area on the side of the home position, the desired processing is executed at the corresponding positions by the action of the lead screw 5005. However, if an arrangement is adopted in which the desired operations are performed at a well-known timing, this arrangement also can be applied to this' example. Thus, it is obvious that the present invention is not limited to a laser-beam printer and can be applied also to an ink-jet printer. Furthermore, it goes without saying that other types of printers also can be applied. <Ninth Embodiment> In the foregoing embodiments, an example is described in which the input changeover unit 3, printing control apparatus 4 and printing apparatus 5 are independent. However, an arrangement in which these are made to accommodate a single printing apparatus is as shown in Fig. 20. In Fig. 20, numeral 20 denotes a CPU for supervising overall control of the apparatus, 21 a ROM storing font data as well as an emulation-mode changeover program and printing processing program of the first through eighth embodiments, and 22 a RAM used as a work area of the CPU 20 and having the input buffer IB, the temporary storage member TM and other flag areas used in the foregoing embodiments. Of course, if the processing performed is similar to that of the first embodiment, areas for holding the values of counts corresponding to the counters EC1, EC2 and WC also are provided in the RAM 22. Numerals 31-1 through 23-n denote interface I/Fs for receiving printing data from host computers. Numeral 24 denotes an image memory for developing a bitmap image to be printed, 25 a printer engine which actually performs the printing processing shown in Fig. 18 or 19, 26 a printer interface for transferring the bitmap image data in the image memory 24 to the printer engine 25, and 27 a control panel having switches for applying various instructions and an LCD display unit for displaying messages. The control panel 27 corresponds to the display unit 5 of Fig. 5, the control panel 17 of Fig. 18 or the control panel 18 of Fig. 13. This embodiment differs from the first through eighth embodiments in that the CPU 20 executes all of the processing performed by the input changeover unit 3, printing control apparatus 4 and printing apparatus 5 in Fig. 1, and in that whereas the printing control apparatus 4 effects a conversion into printing data capable of being interpreted by the printing apparatus 5 in the earlier embodiments, in this embodiment a bitmap image is generated directly and developed in the image memory 24. While executing the processing of the input changeover unit 3 and the processing of any of the output control units 4 that are described in the first through eighth embodiments, it will suffice for the CPU 20 in this arrangement to perform processing for outputting the data of the bitmap image to the printer engine 25 via the printer I/F 26 when one page of the bitmap image has been developed. However, in a case where the printer engine 25 is of the type in which a recording head is scanned, as shown in Fig. 19, it will suffice to perform printing whenever data is developed into a bitmap image of an image recorded by a single scan. It will be understood that output destination of the printing control apparatus 4 in these embodiments need not necessarily be a printer. In other words, a display unit for displaying images may be the destination of the output. Accordingly, the present invention is not limited by the type of printing control apparatus. In accordance with the present invention, as described above, even if one process or means in which control processing is to be executed cannot be specified based on received data, this can be analogized from the processing environment up to the moment.

Claims: An output control apparatus for controlling an output unit, the output control apparatus being arranged to be interposed between a data generating source (1, 2; 1a, 1b, 1c) and the output unit (5), and comprising: a plurality of data generating means (EM1, EM2) for interpreting a plurality of printer languages and performing control processing; discrimination means for analysing received data and specifying by which of said plurality of data generating means (EM1, EM2) control based upon the data is carried out; and selecting means for selecting either the data generating means (EM1, EM2) which has executed processing previously or the most frequently used data generating means (EM1, EM2), in the case where one data generating means (EM1, EM2) cannot be specified by said discrimination means, characterised in that : said selecting means includes counting means (EC1, EC2) for increasing the count of the number of times of selection of the data generating means, wherein said counting means increases the count of the number of times of selection of the data generating means if a data generating means (EM1, EM2) can be specified by said discrimination means, while said counting means does not increase the count of the number of times of selection of the data generating means if a data generating means (EM1, EM2) cannot be specified by said discrimination means. The apparatus according to claim 1, wherein said selecting means is arranged to select the data generating means (EM1, EM2) which executed processing previously. The apparatus according to claim 1, wherein said selecting means is arranged to select the data generating means (EM1, EM2) which is most frequently selected. The apparatus according to claim 1, wherein said count for each data generating means is decreased if said count reaches a predetermined number. The apparatus according to claim 3, further comprising memory means (12) for storing the number of data generating means (EM1, EM2), the type of data sent from each of a plurality of individual data generating sources (1a, 1b, 1c) and the number of times each data generating means (EM1, EM2) is started, wherein said selecting means is arranged to select, if one data generating means (EM1, EM2) cannot be specified by said discriminating means, one data generating means (EM1, EM2) based upon the number of data generating sources (1a, 1b, 1c), the types of data sent from the individual data generating sources (1, 2), together with the count of the number of times each data generating means (EM1, EM2) is started, which have been stored in said memory means (12). The apparatus according to claim 3, further comprising: first counting means (WC) for, if one data generating means (EM1, EM2) can be specified by said discriminating means, updating the count of the number of times the data generating means can be specified; and second counting means (EC1, EC2) for, if said selection means selects one data generating means (EM1, EM2), updating the count of the number of times the data generating means is selected. The apparatus according to claim 6, further comprising means which, if the value of the count by said first counting means (WC) has attained a predetermined value, is arranged to reset the value and multiply, by a predetermined value less than one, the count of the number of times each data generating means (EM1, EM2) has started as counted by said second counting means (EC1, EC2). The apparatus according to any one of claims 1-7, wherein each of said data generating means (EM1, EM2) is an emulation means for interpreting items of print language and generating bitmap image data for recording. The apparatus according to any one of claims 1-8, further comprising informing means for informing the data generating source (1, 2; 1a, 1b, 1c) of the data generating means (EM1, EM2) specified by said discriminating means. A method of controlling an output unit responsive to a data generating source (1, 2; 1a, 1b, 1c) comprising the steps of: interpreting a plurality of printer languages and performing control processing; analysing received data and specifying by which of a plurality of data generating means (EM1, EM2) control based upon the data is carried out; and selecting either the data generating means (EM1, EM2) which has executed processing previously or the most frequently used data generating means (EM1, EM2), in the case where one data generating means (EM1, EM2) cannot be specified, the method being characterised by the further steps of: increasing the count of the number of times of selection of the data generating means if a data generating means (EM1, EM2) can be specified, while not increasing the count of the number of times of selection of the data generating means if a data generating means (EM1, EM2) cannot be specified. The method according to claim 10, wherein the data generating mode (EM1, EM2) which executed processing previously is selected (S26; S64). The method according to claim 11, wherein the data generating mode (EM1, EM2) which is most frequently selected is selected (S10) The method according to claim 12, wherein said counted values of each data generating mode (EM1, EM2) are decreased if a predetermined condition is satisfied. The method according to any one of claims 10-13, further comprising the steps of storing the number of data generating modes (EM1, EM2), the type of data sent from a plurality of individual data generating sources (1a, 1b, 1c) and the number of times each data generating mode (EM1, EM2) is started, wherein in the case where a data generating mode (EM1, EM2) cannot be specified, a data generating mode is selected (S106) based upon the number of data generating sources (1a, 1b, 1c), the types of data sent from the individual data generating sources (1a, 1b, 1c), and the stored number of times each data generating mode (EM1, EM2) is started. The method according to any one of claims 10-14, further comprising: if one data generating mode can be specified a first counting step in which the number of times the data generating mode can be specified is updated; and if one data generating mode is selected, a second counting step in which the number of times the data generating mode (EM1, EM2) is selected is updated. The method according to claim 15 wherein, if a value counted in said counting step has attained a predetermined value, the value is reset and the number of times each data generating mode (EM1, EM2) started as counted in said second counting step is multiplied by a predetermined value less than one. The method according to any one of claims 10-16, wherein each of said data generating modes (EM1, EM2) is an emulation mode (EM1, EM2) for interpreting items of print language and generating bitmap image data for recording. The method according to any one of claims 10-17, further comprising the step (S64) of informing a data generating source (1, 2; 1a, 1b, 1c) of the specified data generating mode (EM1, EM2). A data carrier programmed with machine readable instructions for causing a processing apparatus to perform a method according to any one of claims 10-18. A printer system including an output control apparatus according to any one of claims 1 to 9, wherein said output unit is a printing apparatus (5).

Inventors: MATSUYAMA SHIGERU, MITANI KEISUKE, SATO YASUSHI, WAKAI KAZUO, MATSUYAMA, SHIGERU, MITANI, KEISUKE, SATO, YASUSHI, WAKAI, KAZUO, MATSUYAMA, SHIGERU, C/O CANON K.K., MITANI, KEISUKE, C/O CANON K.K., SATO, YASUSHI, C/O CANON K.K., WAKAI, KAZUO, C/O CANON K.K.
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1994
Main classification: G06F3
IPC codes: B41J29, G06K15, G06F3, B41J5