Communications terminal and control method therefor

Abstract: A communications terminal (10) comprises communications control means (80) for notifying a host (30) whether or not the terminal is in a condition to receive and process data. The communications control means can be selectively set in a first mode or a second mode. In the first mode a busy signal is output due to an error cause (62a), a standby cause (62b), or a buffer full cause (59a) to inform the host that data processing by the communications terminal is not possible. In the second mode a busy signal is not output due to error cause (62a) or standby cause (62b) so that commands for handling the causes can be received from the host. When the terminal (10) is used with an application program (5) compatible with real-time commands, the second mode is selected so that the application program (5) can contribute to solving the problem of the communications terminal (10) when an error occurs or the terminal is off-line.

Description: The invention relates to a communications terminal such as a terminal printer, plotter, or other communications device that can be used, for example, in a point-of-sale (POS) system, and relates particularly to an off-line processing method for interrupting communications. Personal computer-based information processing systems for point-of-sale (POS) system applications are commonly capable of using a variety of data processing terminals connected to the personal computer ("PC" below). Examples of such data processing terminals include a customer display, cash drawer, printer, plotter, modem, and bar code reader. These data processing terminals are commonly connected to the PC using an RS-232C or other serial communications port. Command data and the data to be processed are transferred between the PC (the host) and the data processing terminals through this serial communications port. A data terminal ready (DTR) signal, for example, is used by the data terminals to notify the host whether or not data or commands can be received. When the host detects an ACTIVE DTR signal, the host sets the data set ready (DSR) signal ACTIVE. Data loss is thus prevented by commencing data communication only after both a data terminal and the host thus confirm that sending and receiving data between the two is enabled. Terminal printers are widely used in POS systems, and can become "busy," and therefore unable to send or receive data, under a variety of conditions, including a receive buffer full state, an error state resulting from a paper jam or other problem, and a hold state in which data cannot be read from the receive buffer because, for example, the cover is open. When the terminal printer is thus busy, the DTR signal is set to INACTIVE. When the DTR signal is thus INACTIVE, the host printer driver suspends data and command transmissions until the DTR signal is again ACTIVE. In addition to the conventional receipt printing function using roll paper, some recent POS system terminal printers have such other functions as slip printing using cut-sheet forms and a magnetic ink character reader function. Some of the problems that can occur with such muitipie function printers are described below. For example, if slip printing is accidentally selected, the printer automatically enters a standby mode to wait for the user to insert the slip printing form, and therefore sets the DTR signal to INACTIVE. The printing process is thus delayed and does not proceed until a form is inserted or the slip printing mode is canceled by the user even though the host device has prepared data for receipt printing. When a paper jam or other error occurs the printing terminal also sets the DTR signal INACTIVE to stop data transfers. When the operator then corrects the problem and resets the printer, the data that had already been transferred to the printer but not printed may be lost. EP-A-0 652 533 discloses a printer representing a communications terminal as defined in the precharacterizing part of the independent claims. In this prior art, such problems as described above can be resolved in software by detecting that the printer is in a form loading standby state or detecting what printer error has occurred, and then sending a command (a "real-time command" below) causing an appropriate particular process to be executed. This process can, for example, be used to delete any unprocessed data still stored in memory. With a general-purpose serial port driver or printer driver, however, no data or commands can be sent when the DTR signal is INACTIVE. This means that such problems cannot be handled in software on the host device. More specifically, if the host software is to handle such problems, a special driver capable of ignoring the DTR signal and accessing the serial device must be written. This, however, means that the information processing system cannot be built using a general-purpose operating system. On the other hand, when transmissions are executed by simply ignoring the DTR signal, a receive buffer overflow state can occur on the terminal side, potentially resulting in loss of the transmitted data and commands and degraded system reliability. This method therefore cannot be used in POS systems and other systems in which data reliability is essential. Some known terminals, such as the printer disclosed in EP-A-0 654 757, comprise a function for notifying the host of a change in terminal status without using a DTR signal. When this function has already been selected according to a command received from the host, such terminals notify the host when a particular status change has occurred by sending corresponding status data to the host. This function is called an "automatic status-back" (ASB) function below. The DTR signal in this case is an auxiliary signal, and the host is able to determine the off-line status of the terminal without depending upon the DTR signal. EP-A-0 619 562 and EP-A-0 486 031 concern printers. The object of the present invention is to provide a communications terminal whereby standby and error states can be handled by software running on the host device using an ASB function without modifying the standards and specifications controlling serial communications between the host and serial device. This object is achieved with a communications terminal as claimed in claim 1 and a method as claimed in claim 9. Preferred embodiments of the invention are set forth in the dependent claims. The communications terminal of the invention comprises communications control means that uses a DTR signal or other means to notify the host whether data can be received. Said communications control means is set to either a mode indicating that receiving is not possible when the processor, which may have a printing function, cannot process data, or a mode which does not indicate that receiving is not possible when the processor cannot process data. When the communications control means is set to the latter mode and a state in which the processor cannot process data has occurred, the communications terminal may automatically notify the host of this status. More specifically, in one embodiment the communications terminal of the invention comprises an interface for receiving data transferred from a host device, a receive buffer for temporarily storing the received data, a processor for processing the data stored to the receive buffer, a status sending means for sending the processor status or receive buffer status to the host device, and a communications control means for notifying the host via the interface whether data can be received. The communications control means has a first mode indicating that data receiving is not possible when the processor cannot process data, and a second mode in which when the processor cannot process data it is not indicated that data receiving is not possible. When the processor becomes unable to process data when the communications control means is set to the second mode, the status sending means automatically notifies the host that data receiving is disabled. By setting the communications control means to the first mode with the communications terminal of the invention thus comprised, data transfer is stopped and data is protected because receiving is not possible when the processor cannot process data in accordance with standard transfer processes using a serial or parallel interface. If the communications control means is set to the second mode, however, it is not indicated that receiving is not possible even though the processor cannot process data, and the host operating system does not prohibit data transfer. The software application of the host can therefore execute a specific process such as sending command data to the communications terminal and executing a particular error handling process. The status sending means determines the status of the processor, thereby enabling the host application to determine the status of the communications terminal and protect the data. It is therefore possible with the communications terminal of the invention to protect data using standard transfer methods by setting the communications control means to the first mode. By setting the communications control means to the second mode, the range of operations that can be affected by the host application can be extended to the internal processes of the communications terminal so that errors and standby modes can be flexibly handled. The function of the communications control means in the communications terminal of the invention whereby standard signals are used to indicate whether receiving is possible or not is the same in both the first and second modes. It is therefore possible to construct systems for specific purposes using high general utility operating systems and hardware without modifying the operating system of the host device. The status of the communications terminal can be fed back to the host whether the communications control means is in the first or second mode by providing the control method of the communications terminal with a process for determining the mode to which the communications control means is set, and a process for automatically notifying the host by means of a status sending means when the processor becomes unable to process data when the communications control means is set to the second mode. This control method can be achieved in the control software of the CPU built in to the communications terminal and stored in ROM or other storage medium of the communications terminal. Loss of data that has been transferred but not processed can also be minimized when the communications control means is in the first mode by determining that receiving is not possible because the receive buffer is full, a processor error has occurred, or a standby mode in which the processor is temporarily unable to process data stored in the receive buffer has occurred. In addition, by determining that receiving is not possible because the receive buffer is full when in the second mode, it is also possible to prevent data loss resulting from a receive buffer overflow preventing sent data from being received. The first mode or second mode of the communications control means can be manually selected by the user operating a hardware or software switching means, or can be automatically selected by the software application controlling a switching means that can be operated by the host software. When the communications control means is set to the second mode, commands can be sent from the host and processed by the communications terminal processor even when the processor is in a standby mode or error mode and therefore cannot process data. However, when data processing by the communications terminal processor cannot proceed, the data stored in the receive buffer remain unprocessed. Thus, when data is interpreted in the sequence in which it is stored to the receive buffer (FIFO, first-in, first-out), the host application cannot handle processor standby modes and error states. In such case, it is therefore necessary to provide a second interpreter for interpreting data as it is passed from the interface to the receive buffer in addition to a first interpreter for FIFO interpretation of data stored in the receive buffer. Preferred embodiments of the invention will be described in more detail below with reference to the drawings, in which: FIG. 1 is an overview of the basic construction of a terminal printer embodying a preferred embodiment of the invention, FIG. 2 is a block diagram of the basic construction of a POS system using a PC and the terminal printer shown in FIG. 1, and FIG. 3 is a flow chart used to describe the process for outputting a busy signal using the communications control means of the terminal printer according to the present embodiment, FIG. 1 is an overview of a terminal printer suitable for use in a POS system and representing one example of a communications terminal according to the present invention. Terminal printer 10 of the present embodiment is a printer capable of printing to such recording media as slip paper 19, journal paper 18, and receipt paper 17. Slip paper 19 is a cut-sheet form of indefinite size and shape such as a payment or validation slip. When slip paper 19 is inserted in the direction of arrow 19A from slip paper insertion opening 21 at the front of terminal printer 10, slip paper 19 is detected by a paper detector (not shown in the figures) and transported through a paper path inside case 15 to print head 1 (an example of the internal structure of terminal printer 10 is more fully described in EP-A-0 652 533). Print head 1 is then driven in transverse direction 1A to print, and slip paper 19 is transported in the direction of arrow 19B out from terminal printer 10. Terminal printer 10 uses a wire dot print head 1 to print through the ink ribbon contained in ribbon cassette 3 on slip paper 19 or journal paper 18 and receipt paper 17 as described below. Both journal paper 18 and receipt paper 17 are continuous forms supplied as roll paper to terminal printer 10 in the present embodiment. Journal paper 18 and receipt paper 17 are transported to print head 1 through case 15 from the side opposite slip paper 19. After receipt information is printed on receipt paper 17, the paper is advanced to cutter unit 14, and the receipt is cut off and handed to the customer. Sale information that should be stored is printed on journal paper 18 to create a sales journal which is then wound onto a take-up roll (not shown in the figure), for example, for storage. A near-end detector 20 is disposed for both receipt paper 17 and journal paper 18 to detect when the end of the respective paper roll is approaching. This near-end detector 20 comprises, for example, a detector lever 20a that contacts the side of the paper roll and rocks in the direction of arrow 20A following the outside diameter of the roll, and switch 20b. Switch 20b is turned on and off by detector lever 20a. When the roll diameter decreases as the end of the roll is approached, detector lever 20a swings to the inside, thereby causing switch 20b to turn on. This on state can be used to detect that the end of the roll paper is near. Though not shown in the figures a cover is provided on case 15 of terminal printer 10. This cover is always closed except when changing roll paper 17 or 18 or replacing ribbon cassette 3, and printing occurs only when the cover is closed. A cover detector 22 for detecting whether this cover is open or closed is therefore provided on case 15. When the cover is open the printer automatically enters a standby mode, enabling a process pausing the print function, for example, to be executed. FIG. 2 is a block diagram of a POS system using PC 30 as the host device and terminal printer 10 described above as a communications terminal. Customer display 40, terminal printer 10, and cash drawer 45 are logically connected through serial communications port (an RS-232C port in this example) driver 31 of PC 30 in this POS system, thereby enabling data to be sent from PC 30 through the RS-232C port to these three communications terminals and processed. PC 30, customer display 40, and terminal printer 10 are physically connected through an RS-232C interface, thereby enabling data sending and receiving between the connected devices. Cash drawer 45 is connected to terminal printer 10, thus enabling PC 30 to control cash drawer 45 by sending appropriate commands to terminal printer 10. It should be noted that customer display 40 has a pass-through function, and display processor 42 processes commands and data received from PC 30 only when customer display 40 is selected based on a corresponding command from PC 30. Terminal printer 10 has a similar function, and commands and data received from PC 30 are processed only when terminal printer 10 is selected. It should be further noted that the DTR signal from customer display 40 is input to the CS signal terminal of PC 30 so that there is no conflict with the DTR signal from terminal printer 10. Note, further, that customer display 40 does not transmit status data or other data to PC 30, and there is therefore no conflict with such data from terminal printer 10. The operating system 32 of PC 30 in this embodiment also comprises in addition to serial communications port driver 31 POS system operating system (OS) 33 and basic OS 34. Basic OS 34 controls the keyboard, display, and other common components of PC 30, and the software applications that control these components. POS system OS 33 includes control system 35 for controlling terminal printer 10, customer display 40, and cash drawer 45; receipt printer driver 36 for controlling terminal printer 10 to print receipts, the sales journal, and other continuous forms; slip printer driver 37 for controlling terminal printer 10 to print slips; driver 38 for controlling customer display 40; and driver 39 for controlling cash drawer 45. The POS application program 5 of PC 30 as well as spreadsheets and other application programs 6 that can be used on PC 30 operate under the control of basic OS 34 and POS system OS 33. Sending and receiving data between customer display 40, terminal printer 10, and cash drawer 45 is also handled by drivers 36 - 39, serial port driver 31, and a general purpose OS such as POS system OS 33. When terminal printer 10 receives data through printer interface 51, an interrupt is generated and data receiver 52 captures the data from the interface. During the interrupt process the data captured from printer interface 51 is applied to real-time command interpreter 53 whereby any real-time commands are interpreted. Data other than real-time commands is passed through real-time command interpreter 53 and is then stored in the receive buffer (Note that it is also possible to execute the real-time commands and additionally store them in the receive buffer). When real-time command interpreter 53 recognizes a real-time command in the data from data receiver 52, the particular process corresponding to that command is executed. On the other hand, the data stored in receive buffer 54 after passing real-time command interpreter 53 is extracted by command interpreter 55 in the sequence it is stored (FIFO) and is then interpreted. If the interpreted data is a command, that command is processed by controller 57. If the interpreted data is print data, the data is stored in the print buffer 56. The controller 57 then controls printing processor 60 according to the commands, and sends the print data stored in print buffer 56 to printing processor 60 to control printing processor 60 and print the data. In addition to setting up and controlling printing processor 60 and managing the print data, controller 57 also has a function for monitoring the status of the various parts of terminal printer 10 and outputting the detected status to common status detector 59. For example, when receive buffer 54 is nearly full or terminal printer 10 is in a standby mode waiting for slip paper 19 loading, controller 57 notifies common status detector 59 of that status. The status of printer mechanism 61 in printing processor 60 is also supplied to status detector 62. The printer mechanism status can include, for example, that printer mechanism 61 is in a standby mode in which data processing is paused because the cover is open, an error mode caused by a paper jam, for example, or that the near-end of the roll paper has been detected. The status detected by common status detector 59 and status detector 62 is supplied to status data generator 72 of status transmitter 70. Status transmitter 70 has a function for notifying the host of the status of the terminal printer 10 by means of automatic status transmitter 71. Note that the terminal printer 10 status information includes, for example, the receive buffer status and the status of printer mechanism 61 supplied to status data generator 72. Automatic status transmitter 71 is controlled by controller 57 to transmit the status data when a particular status change occurs. It is therefore possible to select, by means of a specific command from the host device, i.e., PC 30 in this example, the status whose change is to trigger sending if the status. The status data output from automatic status transmitter 71 is supplied to printer interface 51 through data transmitter 58, and is output therefrom to the RS-232C serial port driver 31 of the host. The status data is then relayed to the application program 5 through POS system OS 33 which has a printer driver as described above. The application program 5 can then select the process appropriate to the current terminal printer 10 status, and respond appropriately to terminal printer 10. By providing status transmitter 70 described above, the status data is transferred to the application program 5 when the status of the printing processor or terminal printer 10 changes, and the application program can therefore determine the overall condition of terminal printer 10. Furthermore, the processor load associated with status data sending and receiving is reduced on both the host and the terminal printer because the status data is sent only when the status changes. The effective serial communications throughput can therefore be improved. The buffer full status 59a of common status detector 59 indicating that the receive buffer is full, and the error cause (status) 62a and standby cause (status) 62b of status detector 62 in printer mechanism 61, are also supplied to busy cause selector 82 of communications control means 80. When buffer full status 59a, error status 62a, or standby status 62b is detected, busy signal setting means 83 outputs a busy signal to printer interface 51, thereby indicating to the PC (host) 30 that no data should be sent, and thus preventing data loss that could otherwise be caused by data being sent from the host but not stored to the receive buffer of the data communications terminal, i.e., terminal printer 10. In other words, the DTR (data terminal ready) signal of the RS-232C port is used as a busy signal to enable or disable data transmission. Data is transmitted through the host RS-232C serial port driver 31 and printer drivers 36 and 37 only when the DTR signal is ACTIVE. When terminal printer 10 is busy and the DTR signal is therefore INACTIVE, data transmission is stopped. The terminal printer control method of the invention can also be comprised such that when a particular printer status changes, e.g., when the near-end of a paper roll is detected, and status data is transmitted from the terminal printer to the host, application program 5 outputs a command to terminal printer 10 to confirm the reported status or to instruct terminal printer 10 to send all status data so that the other printer status levels can be determined. If there were no real-time command interpreter these commands would be accumulated with the print data in receive buffer 54 and executed in FIFO sequence as data processing progresses and each command interpreted. This means that the delay between command data storage and command data execution would be directly related to the amount of non-command data accumulated before the command data in receive buffer 54. As a result, if there were a significant amount of non-command data accumulated in receive buffer 54, a correspondingly significant amount of time could be required before command processing and execution begins. To avoid this problem terminal printer 10 according to the present embodiment comprises real-time command interpreter 53 and routes any received real-time commands to real-time command interpreter 53. Real-time command interpreter 53 can therefore interpret the command rather than storing the data so that an appropriate process can be executed. Real-time commands can be discriminated by detecting, for example, the two bytes GS and R encoded in the data stream and then evaluating the value of the one byte n following these two bytes. Examples of the processes that can be executed based on the value of n are shown in the following Table 1. n What happens 0 Send printer status 1 Send reason for off-line status 2 Send reason for error status 3 Send status of continuous form detector 4 Send slip form paper detector and slip paper status 5 Send validation form paper detector and validation paper status 6 Cancel slip paper wait state 7 Recover from error (resume printing) 8 Recover from error (clear buffer) Unlike command interpreter 55, real-time command interpreter 53 can thus interpret and execute commands received directly from data receiver 52. Processes specified by a real-time command can therefore be performed in real-time irrespective of the sequence of data and commands waiting to be processed in receive buffer 54. Real-time commands will therefore not be lost without being interpreted even when receive buffer 54 is full and received data and commands cannot be stored to receive buffer 54. Processes indicated by a real-time command will therefore be reliably executed on the terminal printer 10. For example, if real-time command interpreter 53 receives real-time command n = 0, the printer status request command, the status data stored in status data generator 72 will be output from data transmitter 58 to the application program 5 running on the host 30. It is therefore possible in the present embodiment to control terminal printer 10 using real-time commands, and to execute without any time delay certain processes without using the route via receive buffer 54 and command interpreter 55. The application program 5 can also flexibly control terminal printer 10 because real-time commands are processed by terminal printer 10 without a time delay caused by receive buffer 54. For example, application program 5 can cancel an error state, or cancel slip printing and start receipt printing when terminal printer 10 is in a standby mode waiting for slip paper 19 to be loaded. Furthermore, when an error occurs and terminal printer 10 enters a standby mode, a busy state is determined by busy cause selector 82 of communications control means 80. This causes the DTR signal to go INACTIVE in busy signal setting means 83 of communications control means 80. The host OS 32 therefore stops data transmission to terminal printer 10. As a result, if the host application program 5 then attempts to send a real-time command to terminal printer 10, the command transmission is blocked by the host OS 32 and the command will therefore not be sent to terminal printer 10. This means that processes using real-time commands will not be executed when a busy state occurs even if application program 5 has a function for using real-time commands and terminal printer 10 has a function for interpreting real-time commands, and the practical functionality of real-time commands is thus limited. It is also possible for application program 5 to directly control the serial port without using the host OS 32, or to create dedicated software such as printer drivers using real-time commands for application program 5 and run this software on a PC. However, creating an application program 5 without using operating system 32 is extremely difficult and time consuming, and if the functionality of OS 32 is not used the application program 5 must be separately developed to run on PCs from different manufacturers. Incorporating the drivers and other control components into application program 5 also makes the program extremely large and expensive. It is therefore not effective to create a POS application that uses real-time commands and operates on PCs from different manufacturers without using operating system 32. Furthermore, using a dedicated operating system means that common spreadsheets and other software applications cannot be used, and system extensibility is thus lost. Customization to specific user operating environments and applications is also difficult. To obviate the necessity of dedicated software capable of allowing to send real-time commands despite DTR being INACTIVCE, in accordance with the present invention busy cause selector 82 of communications control means 80 in terminal printer 10 is able to select the cause for outputting the busy signal. Busy signal selector 82 selects a first mode in which a busy state is indicated when error status 62a, standby status 62b, or buffer full status 59a occurs, or a second mode in which a busy state is indicated only when buffer full status 59a occurs. The second mode indicates a busy state when buffer full status 59a occurs because data could be lost if a busy state is not posted when the receive buffer is full. However, if automatic status transmitter 71 notifies the host application when the receive buffer is full and the application therefore interrupts transmission of all data other than real-time commands, it is also possible to configure the second mode so as to never output a busy signal (ACTIVE DTR signal) even not if buffer full status occurs. These first and second modes are selected using a DIP switch mode selector 81 in the terminal printer 10 of the present embodiment. When the second mode is selected by means of DIP switch mode selector 81, automatic status transmitter 71 is set to transmit the status data when a busy state occurs for any cause even if a status transmission control command is not supplied to the automatic status transmitter 71. It is therefore possible for application program 5 to determine from the status data that terminal printer 10 is in a busy state whenever a busy cause occurs even if the DTR signal is not set to INACTIVE, and can therefore accomplish a process for stopping data transmission and assuring data transmission reliability whenever terminal printer 10 is busy. Terminal printer 10 according to the present embodiment can thus set busy cause selector 82 to a second mode by means of DIP switch mode selector 81 in an application environment using real-time commands so that busy signal setting means 83 does not set the DTR signal to INACTIVE when a standby mode, error state, or other busy state occurs. Real-time commands can therefore be transmitted and used effectively even during standby modes and error modes, and the application program 5 can be written to appropriately handle various printer problems. On the other hand, when the host OS 32 is able to transmit real-time commands even when the DTR signal is INACTIVE, it is possible to protect transmitted data without using automatic status transmitter 71 functionality by setting busy cause selector 82 to the first mode by means of DIP switch mode selector 81 and setting the DTR signal INACTIVE when any normal busy cause occurs, including a standby mode, error, or buffer full state. FIG. 3 is a flow chart used to describe the busy signal output process of communications control means 80 in terminal printer 10 according to the present embodiment. As shown in FIG. 3, communications control means 80 detects the error cause, standby cause, and buffer full states in steps 91, 92, and 93, respectively. When an error cause or standby cause is detected in step 91 or 92, the mode to which mode selector 81 is set is detected in step 94. If mode selector 81 is set to the second mode, the error cause or standby cause is sent to the host by automatic status transmitter 71 in step 96. A busy signal, however, is not generated. On the other hand, it is determined in step 94 that the first mode is selected, or a buffer full state is detected in step 93, a busy signal is generated in step 95 and sent to the host to stop data transmission by the host. It should be noted that an automatic status transmission function is selected in the present embodiment when a mode (the second mode above) in which a busy signal is not output is selected by mode selector 81, which is achieved in this embodiment by means of a DIP switch or other hardware means. It will be obvious to those skilled in the art, however, that the present invention is not so limited. Specifically, it is not always necessary to select an automatic status transmission function when said second mode is selected. This is because the host can detect printer busy states and command a safe recovery operation without busy signal and automatic status signal transmissions if the host regularly transmits a real-time command instructing the terminal printer to return the printer status at an interval short enough to prevent a receive buffer 54 overflow state. It should be noted that the selection of the first or second mode described in the preceding embodiment can also be accomplished by means of a software switch. It is also possible for the application program controlling terminal printer 10 to control mode selector 81. It is furthermore possible for the host to change the setting of busy cause selector 82 according to the application to change the specific busy causes as needed. An example of this is described below as a second embodiment of the invention. Referring to FIG. 2, when printer interface 51 receives from the host a command (the automatic status back (ASB) command below) enabling the automatic status transmission function, the ASB command is interpreted by command interpreter 55 and automatic status transmitter 71 is set to a state for running the corresponding process. It should be noted that the enable/disable state of the automatic status transmission function, and the cause for status transmission (the ASB function trigger cause) can be separately specified using the ASB command. For example, when the automatic status transmission function is set to transmit the status when an error occurs, the ASB function operates to transmit the status when any error occurs. The second mode is simultaneously selected by command interpreter 55 at this time, and the ASB function trigger cause is also supplied to busy cause selector 82. As a result, the ASB function trigger cause is removed from the busy cause candidates. For example, if errors are specified as a ASB function trigger cause, errors are eliminated from the candidates for causing a busy state. This means that when an error occurs, the printer status data is output to the host rather than a busy signal. It is therefore possible to prohibit busy signal transmission by specifying all causes as ASB function trigger causes using the ASB command. Terminal printer 10 according to the present embodiment can thus switch between a mode (first mode) in which the DTR signal, which is used as a busy signal, is set to INACTIVE, or a mode (second mode) in which the DTR busy signal is not set INACTIVE, when printing processor 60 is unable to process data sent through the RS-232C port and stored in receive buffer 54. Therefore, when the host software application has a real-time command interpreting and execution function, the terminal printer is set to the second mode if data cannot be transmitted when terminal printer 10 is transmitting a busy signal. The software application is therefore able to control terminal printer 10 even when terminal printer 10 is in a busy state due to an error state cause or standby state cause, error states and standby modes can therefore be safely and reliably handled by the software application. The load on the operator is therefore also eased, and the safety of sales data and other data managed by the POS system can be assured. On the other hand, when the terminal printer is connected to a host that is capable of transmitting real-time commands and other data even when a busy signal is being transmitted from the terminal printer to the host, communications with the host can be managed using a DTR signal without using an automatic status transmission function by setting the terminal printer to the first mode. Data safety can therefore be assured, and the terminal printer can be safely recovered from, for example, error states. Moreover, by controlling the causes for the which the DTR signal is set INACTIVE by the terminal printer, real-time command functions can be used effectively as described above without modifying the specifications of the host operating system relating to the DTR signal. It is therefore possible to build a POS system or other application-specific system without impairing the ability to use general-purpose software applications or printer drivers, and a system capable of restoring a printer from an error state or standby mode to normal printer operation by means of software application control can be achieved. It should be noted that while a terminal printer suitable to a POS system has been described as an example of a communications terminal of the invention, the communications terminal of the invention is not limited to a terminal printer. The communications terminal of the invention can, for example, be a plotter, scanner, modem, or other communications terminal connectable to a serial interface. It will also be obvious that the invention can be applied to a printer or other device connected to a parallel rather than a serial interface. Moreover, when the invention is applied to these or other communications terminals, the software application of the host can solve communications terminal problems even when the communications terminal is unable to process data sent to or stored by the communications terminal. Therefore, when an error, for example, occurs in the communications terminal, the application can handle the problem rather than waiting for the operator to correct the problem. Operator responsibilities are therefore lightened, the potential for operational errors is eliminated, and a safe, high reliability system can be constructed using low cost hardware and software, including PCs and operating systems, that are easy to customize and have high general utility.

Claims: A communications terminal comprising: communication means (51) for receiving data from and sending data to a host device (30); data processing means (53-57, 60) for processing data received through said communication means (51), said data processing means being adapted to enter, due to any of multiple causes, a disabled state in which at least some of the received data cannot be processed; and communications control means (80) for notifying said host device about said disabled state by sending a predefined signal via said communication means (51), said signal indicating that said communications terminal is not ready to receive data; characterized by means (81, 57) for selecting which, if any, of said multiple causes provoke said communications control means (80) to send said predefined signal. A communications terminal according to claim 1 further comprising: storage means (54) for storing the data received by said communication means (51); first data processing means (55-57, 60) having an enabled state and a disabled state and being adapted to retrieve and then process the data stored in said storage means (54) in a first-in-first-out order in said enabled state; second data processing means (53) responsive to first predetermined data received by said communication means (51) for making said first data processing means (55-57, 60) recover from said disabled state, the second data processing means together with the first data processing means forming said data processing means; transmission means (58, 70) for transmitting status data of said first data processing means to the host device; said communications control means (80) being adapted to require the host device, in response to at least one of a storage means full condition and said disabled state of said first data processing means, to stop sending data; and mode setting means (81) for setting either a first mode or a second mode of said communications control means (80), said communications control means being responsive to said disabled state of said first data processing means only in said first mode. The communications terminal according to claim 2 further comprising: means (71) for causing a data transmission by said transmission means (58, 70) in response to said disabled state of said first data processing means (55-57, 60); and means (57) for selectively enabling and disabling said data transmission causing means (71); wherein said enabling/disabling means (57) enables said data transmission causing means (71) when said second mode of said communications control means (80) is set by said mode setting means (81). The communications terminal according to claim 2 further comprising: means (71) for causing a data transmission by said transmission means (58, 70) in response to said disabled state of said first data processing means; and means (57) for selectively enabling and disabling said data transmission causing means (71) in accordance with second predetermined data received by said communication means (51) and processed by said first and/or second data processing means (55-57, 60; 53); wherein said mode setting means sets said second mode of said communications control means (80) when said transmission causing means (71) has been enabled by said enabling/disabling means (57). The communications terminal according to claim 4 wherein: said first data processing means (55-57, 60) is disabled in response to a plurality of predetermined causes; said enabling/disabling means (57) enables or disables said transmission causing means (71) for each said predetermined causes based on said second predetermined data; said communications control means (80) is adapted to be set into either said first mode or said second mode independently for each of said plurality of causes; and said mode setting means sets said second mode of said communications control means (80) regarding each of said predetermined causes for which said transmission causing means has been enabled by said enabling/disabling means, and sets said first mode of said communications control means regarding each of said predetermined causes for which said transmission causing means has been disabled. The communications terminal according to claim 2 or 3 wherein said mode setting means (81) comprises a set switch. The communications terminal according to any one of claims 2 to 6 wherein said first data processing means (55-57, 60) comprises means (60) for printing on recording media in accordance with data stored in said storage means (53). The communications terminal according to any one of the preceding claims wherein said communication means (51) comprises a serial interface. A method for controlling a communications terminal (10) comprising communication means (51) for receiving data from and sending data to a host device and means (54) for storing the data received by said communication means, the method comprising the steps of: (a) retrieving and then processing the data stored in said storage means in a first-in-first-out order; (b) detecting the condition of the communication terminal and disabling step (a) in accordance with a detected condition caused by any of multiple causes; (c) transmitting status data representing said condition of the communication terminal to the host device; (d) requiring the host device to stop sending data when step (a) has been disabled in step (b); and (e) detecting predetermined data among the data received by said communication means and enabling step (a) in response to first predetermined data among said predetermined data; characterized by (f) selecting none, one or more of said causes, and (g) performing step (d) only in response to step (b) detecting a condition resulting from any cause selected in step (f). The method according to claim 9 wherein step (c) is performed in response to said disabling in step (b) when the condition detected in step (b) is not caused by any cause selected in step (f). The method according to claim 9 further comprising the steps of: (h) performing step (c) in response to said disabling in step (b); and (i) selectively enabling and disabling step (h) in accordance with second predetermined data among said predetermined data processed in step (a) and/or step (e); wherein said step (d) is disabled when step (h) has been enabled in said step (i). The method according to claim 11 wherein: step (a) is disabled in step (b) in accordance with each of a plurality of predetermined causes; step (h) enables or disables step (g) for each said predetermined causes based on said second predetermined data; and step (d) is disabled in step (f) regarding each of said predetermined causes for which said step (g) has been enabled in step (h), and step (d) is enabled in step (f) for each of said predetermined causes for which said step (g) has been disabled in step (h).

Inventors: MIYASAKA MASAYO, OGUCHI ASAHIRO, TERADAIRA MITSUAKI, MIYASAKA, MASAYO, OGUCHI, ASAHIRO, TERADAIRA, MITSUAKI
Applicants: SEIKO EPSON CORP, SEIKO EPSON CORPORATION
Application year: 1997
Main classification: G06K15
IPC codes: H04L13, G06F3, H04L29, G06K15, B41J29, G06F17