A process control terminal may be used in a computer network consisting of a process control network of process controllers and an application network of host computers. The process control terminal allows a process control operator access to both process control functions and application programs being executed by a host computer. The process control terminal includes an Ethernet controller and it emulates a standard DEC terminal in order to facilitate its use in preexisting computer systems. The process control terminal displays information relating to process control functions in a first portion of its associated CRT screen and information relating to applications programs in a second portion of the CRT screen, the second portion being exclusive of the first portion so that process control information is not overwritten by applications information. The process control terminal also includes an automatic login feature that allows an operator to automatically login to an application program without typing a username or a password.
|
20. A process control terminal with automatic login capability, comprising:
a display screen; a keyboard means for receiving process control information from a process controller and application information from a host computer, said application information being generated by an application program; means coupled to said receiving means for displaying said process control information in a first portion of said display screen and said application information only in a second portion of said display screen; and means for automatically logging in said application program without requiring an operator to enter login information via said keyboard.
17. A method of displaying process control information in a first predetermined portion of a screen and application information in a second predetermined portion of the screen, said method comprising the steps of:
(a) receiving process control information from a process controller; (b) determining the existence of an alarm condition; (c) displaying process control information relating to said alarm condition in a first portion of a display screen; (d) receiving application information from a host computer, said application information being unrelated to said process control information; and (e) displaying said application information only in a second portion of the display screen.
0. 44. A process control terminal at which a process control operator can perform both process control functions and application functions, the process control terminal including a display screen upon which both process control information from a process control network and application information from a local area network can be displayed, the process control terminal including means for reserving a screen portion exclusively for process control information so that process control information and application information can be displayed simultaneously while avoiding a possibility that displayed process control alarms will be buried by displayed application information and thus not be brought to the attention of the operator.
9. A process control terminal comprising:
a display screen; a controller that receives process control information from a process controller and application information from a host computer, said controller determining the existence of an alarm condition; and a display generator that causes visual information to be displayed on said display screen, said display generator causing an alarm indication to be displayed in a first predetermined portion of said display screen and said application information to be displayed only in a second predetermined portion of said display screen to ensure that said alarm indication cannot be overwritten by said application information thus causing a process control operator monitoring said display screen to miss an alarm condition.
0. 42. A process control terminal comprising:
a display screen; a controller that receives process control information from a process control network and application information from a local area network, the controller determining the existence of an alarm condition based upon the process control information; means for causing process control information to be displayed on a first predetermined portion of the display screen; means for causing application information to be displayed on the display screen; and means for preventing burying of the displayed process control information in the first predetermined portion of the display screen by the displayed application information, thus ensuring that alarm indications are fully visible and readily accessible to a process control operator.
0. 47. A process control terminal comprising:
a display screen capable of displaying process control information and application information; means for detecting the existence of an alarm condition based upon the process control information; and display generator means for causing process control information and application information to be displayed on the display screen and for causing an alarm indication representing the alarm condition to be displayed on a predetermined portion of the display screen so that the application information displayed cannot cause the alarm indication to disappear from the predetermined portion of the display screen and thereby interfere with a process control operator's ability to monitor the alarm indication and observe an occurrence of the alarm condition.
0. 43. A process control terminal comprising:
a display screen; a controller that receives process control information from a process control network and application information from a local area network, the controller determining the existence of an alarm condition based upon the process control information; means for causing application information to be displayed on the display screen in an application window and process control information to be displayed on the display screen in a process control window reserved exclusively for process control information; and means for preventing burying of the process control window by the application window so that process control information indicating the existence of an alarm condition is fully visible and readily accessible to a process control operator.
0. 46. A method of displaying process control information and application information, the method comprising:
receiving process control information from a process controller; receiving application information from a host computer; detecting the existence of an alarm condition based upon the process control information; and displaying the application information, the process control information, and an alarm indication representing the alarm condition so that the alarm indication is displayed on a first portion of the display screen and the displaying of the application information cannot make the alarm indication disappear from the first portion of the display screen and thereby interfere with a process control operator's ability to monitor the alarm indication and observe the occurrence of the alarm condition.
0. 37. A process control terminal comprising:
a display screen; a controller that receives process control information from a process control network and application information from a local area network, the controller determining the existence of an alarm condition based upon the process control information; a display generator that causes visual information to be displayed on the display screen, the display generator causing an alarm indication and application information to be displayed simultaneously on separate portions of the display screen so that the alarm information displayed does not bury the alarm indication displayed on a predetermined portion of the display screen and thereby interfere with a process control operator's ability to monitor the alarm indication and observe an occurrence of the alarm condition.
0. 28. A process control terminal comprising:
a display screen; a controller that receives process control information from a process controller and application information from a host computer, the controller determining the existence of an alarm condition; and a display generator that causes visual information to be displayed on the display screen, the display generator causing an alarm indication and application information to be displayed on the display screen so that the alarm indication is displayed on a first predetermined portion of the display screen and the application information when it is displayed on the display screen does not overwrite the alarm indication displayed within the first predetermined portion and thereby interfere with a process control operator's ability to monitor the alarm indication and observe an occurrence of the alarm condition.
0. 49. A method of displaying process control information in a first portion of a screen and application information in a second portion of the screen, said method comprising the steps of:
(a) receiving process control information from a process controller; (b) determining the existence of an alarm condition; (c) displaying process control information relating to said alarm condition in a first portion of a display screen; (d) receiving application information from a host computer; (e) displaying said application information in a second portion of the display screen; and (f) keeping said first portion of said display screen separate from said second portion of said display screen to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring the display screen to miss an alarm condition.
0. 45. A process control terminal comprising:
a display screen; a controller that receives process control information from a process controller and application information from a host computer, the controller detecting the existence of an alarm condition; and a display generator that causes visual information representing the process control information and the application information to be displayed on the display screen, the display generator causing an alarm indication representing the alarm condition to be displayed on a first portion of the display screen reserved for the alarm indication so that the application information when displayed appears in portions of the display screen other than the first portion and cannot make the alarm indication disappear from the display screen and thereby interfere with a process control operator's ability to monitor the alarm indication and observe an occurrence of the alarm condition.
23. A method of displaying process control information in a first predetermined portion of a screen and application information in a second predetermined portion of the screen, said method comprising the steps of:
(a) receiving process control information from a process controller; (b) determining the existence of an alarm condition; (c) displaying process control information relating to said alarm condition in a first portion of a display screen; (d) receiving application information from a host computer; (e) display said application information in a second portion of the display screen; and (f) keeping said first portion of said display screen separate from said second portion of said display screen with the use of a predetermined screen offset to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring the display screen to miss an alarm condition.
0. 35. A process control terminal comprising:
display means for displaying information; first means for receiving process control information from a process controller; second means for transmitting application information to and receiving application information from a host computer; alarm means, coupled to the first means, for determining the existence of an alarm condition based upon the process control information; and display generation means, coupled to the first means, the second means and the alarm means, for causing visual information to be displayed on the display means, the display generation means causing an alarm indication and application information to be displayed so that the application information displayed does not overwrite a predetermined portion of the display means displaying the alarm indication so as to interfere with a process control operator's ability to monitor the alarm indication and observe an occurrence of the alarm condition.
0. 36. A method of displaying process control information and application information, the method comprising:
receiving process control information from a process controller; determining the existence of an alarm condition based upon the process control information; displaying process control information relating to the alarm condition on the screen; receiving application information from a host computer, the application information being unrelated to the process control information; and displaying the application information and the process control information on the display separate portions of screen when displayed simultaneously so that displaying of the application information does not cause the process control information displayed in a first predetermined portion of the screen to disappear from the display screen and thereby interfere with a process control operator's ability to monitor the process control information and observe the occurrence of the alarm condition.
6. A process control terminal comprising:
display means for displaying information; first means, coupled to said display means, for receiving process control information from a process controller; second means, coupled to said display means, for transmitting application information to and receiving application information from a host computer; alarm means, coupled to said display means, for determining the existence of an alarm condition; and display generation means for causing visual information to be displayed on said display means, said display generation means causing an alarm indication to be displayed only in a first predetermined portion of said display means, said display generation means causing said application information to be displayed in a second predetermined portion of said display means to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring said display means to miss an alarm condition. 0. 34. A process control terminal for allowing an operator to perform process control functions and application functions, the process control terminal comprising:
a display screen; a controller that receives process control information from a process controller and application information from a host computer, the controller determining the existence of an alarm condition based upon the process control information; and a display generator which causes visual information to be displayed on the display screen, the display generator causing an alarm indication to be displayed on a predetermined portion of the display screen in response to the controller determining the existence of an alarm condition, and causing application information to be displayed on the display screen so that both the alarm indication and the application information are visible to a process control operator, and so that the application information will not bury the alarm indication displayed on the predetermined portion of the display screen and thereby interfere with the process control operator's monitoring of the display screen for the alarm indication.
15. A process control terminal for allowing an operator to perform process control functions and application functions, said process control terminal emulating a preexisting terminal to facilitate the use of said process control terminal in preexisting computer systems, said process control terminal comprising:
a display screen; a controller than receives process control information from a process controller and application information from a host computer, said controller determining the existence of an alarm condition; and a display generator that causes visual information to be displayed on said display screen, said display generator causing an alarm indication to be displayed in a first predetermined portion of said display screen and application information to be displayed only in a second predetermined portion of said display screen said display generator responding to application information received from a host computer by moving a cursor displayed on said screen up in response to the receipt of the character "A" from a host computer and moving the cursor displayed on said screen down in response to the receipt of the character "B" from a host computer. 18. A method of displaying process control information in a first predetermined portion of a screen and application information in a second predetermined portion of the screen, said method emulating the method of displaying application information used by a preexisting terminal, said method comprising the steps of:
(a) receiving process control information from a process controller; (b) determining the existence of an alarm condition; (c) displaying process control information relating to said alarm condition in a first portion of a display screen; (d) receiving application information from a host computer; and (e) displaying said application information only in a second portion of the display screen to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring the display screen to miss an alarm condition, said step (e) comprising the steps of: (f) moving a cursor on the display screen up in response to the receipt of the character "A" from a host computer; (g) moving the cursor on the display screen down in response to the receipt of the character "B" from a host computer; (h) erasing from the display screen a portion of a line of text in response to the receipt of the character "K" from a host computer; and (i) deleting from the display screen a portion of a line of text in response to the receipt of the character "M" from a host computer.
19. A method of displaying process control information in a first predetermined portion of a screen and application information in a second predetermined portion of the screen, said method emulating the method of displaying application information used by a preexisting terminal, said method comprising the steps of:
(a) receiving process control information from a process controller; (b) storing said process control information in a database in memory; (c) determining the existence of an alarm condition; (d) generating a list of all alarm conditions determined in said step (c); (e) periodically searching said alarm list and generating an electronic alarm signal in response to an alarm condition in said alarm list; (f) responding to said electronic alarm signal by generating a visual alarm indication in a first portion of a display screen; (g) receiving application information from a host computer; and (h) displaying said application information only in a second portion of the display screen, said step (h) comprising the steps of: (i) moving a cursor on the display screen up in response to the receipt of the character "A" from a host computer; (j) moving the cursor on the display screen down in response to the receipt of the character "B" from a host computer; (k) erasing from the display screen a portion of a line of text in response to the receipt of the character "K" from a host computer; and (l) deleting from the display screen a portion of a line of text in response to the receipt of the character "M" from a host computer. 0. 48. A process control terminal for allowing an operator to perform process control functions and application functions in addition to the process control functions, the process control terminal reserving a predetermined screen portion for process control information to eliminate the possibility that process control alarms will not appear on the screen and thus not be brought to the attention of a process control operator, said process control terminal comprising:
a processor; a bus connected to the processor; a display terminal connected to the bus, the display terminal having a screen; a process control network controller connected to said bus for allowing process control information to be received from a process controller; a host network controller connected to said bus for allowing application information to be received from a host computer and for allowing application information to be transmitted to a host computer; first means for periodically determining the existence of an alarm condition, said first means causing an alarm indication to be generated in a first predetermined portion of said screen; and second means for causing said application information to be displayed on said screen, said second means including means for preventing said application information to be displayed on said first predetermined portion of said screen, said preventing means causing said application information to be displayed on said screen to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring said screen to miss an alarm condition.
0. 24. A process control terminal for allowing an operator to perform process control functions and application functions in addition to the process control functions, the process control terminal reserving a screen portion for process control information to avoid a possibility that process control alarms will not appear on the screen and thus not be brought to the attention of a process control operator, the process control terminal comprising:
a processor; a bus connected to the processor; a display terminal connected to the bus, the display terminal having a screen; a process control network controller connected to the bus for allowing process control information to be received from a process controller; a host network controller connected to the bus for allowing application information to be received from a host computer and for allowing application information to be transmitted to a host computer; means for periodically determining the existence of an alarm condition based upon the process control information; and means for causing process control information and application information to be displayed on the screen, the process control information including an alarm indication generated in response to the determining of the existence of an alarm condition and displayed on a predetermined portion of the screen, the process control information and the application information being displayed in a controlled manner so that application information displayed on the screen does not overwrite the alarm indication displayed on the predetermined portion of the screen so as to interfere with a process control operator's ability to monitor the alarm indication and thereby observe an occurrence of the alarm condition.
1. A process control terminal for allowing an operator to perform process control functions and application functions in addition to the process control functions, said process control terminal reserving a predetermined screen portion for process control information to eliminate the possibility that process control alarms will not appear on the screen and thus not be brought to the attention of a process control operator, said process control terminal comprising:
a processor; a bus connected to said processor; a display terminal connected to said bus, said display terminal having a screen; a process control network controller connected to said bus for allowing process control information to be received from a process controller; a host network controller connected to said bus for allowing application information to be received from a host computer and for allowing application information to be transmitted to a host computer; first means for periodically determining the existence of an alarm condition, said first means causing an alarm indication to be generated in a first predetermined portion of said screen, said first predetermined portion of said screen being reserved for process control information only; and second means for causing said application information to be displayed on said screen, said second means including means for preventing said application information to be displayed on said first predetermined portion of said screen reserved for said process control information, said preventing means causing said application information to be displayed on a second predetermined portion of said screen to ensure that said process control information cannot be overwritten by said application information thus causing a process control operator monitoring said screen to miss an alarm condition.
16. A process control terminal for allowing an operator to perform process control functions and application functions in addition to the process control functions, said process control terminal reserving a predetermined screen portion for process control information to eliminate the possibility that process control alarms will not appear on the screen and thus not be brought to the attention of a process control operator, said process control terminal emulating a preexisting terminal to facilitate the use of said process control terminal in preexisting computer systems, said process control terminal comprising:
a processor; a bus connected to said processor; a display terminal connected to said bus, said display terminal having a screen; a process control network controller connected to said bus for allowing process control information to be received from a process controller; a host network controller connected to said bus for allowing application information to be received by a host computer and for allowing application information to be transmitted to a host computer; first means for periodically determining whether there is an alarm condition, said first means causing an alarm indication to be generated in a first predetermined portion of said screen reserved for process control information, said first means comprising: a process network driver than periodically determines whether there is an alarm condition, said process network driver generating a list of alarm conditions; an alarm process that generates an electronic alarm signal in response to finding an alarm condition; and a display driver for receiving said electronic alarm signal from said alarm process, said display driver causing a visual alarm message corresponding to said electronic alarm signal to appear on said screen to alert a process control operator to the existence of an alarm condition; and second means for causing said application information to be displayed on said screen, said second means including means for preventing said application information to be displayed in said first predetermined portion of said screen reserved for said process control information, said preventing means causing said application information to be displayed only on a second predetermined portion of said screen to ensure that said alarm indication cannot be overwritten by said application information thus causing a process control operator monitoring said screen to miss an alarm condition, said second means responding to application information received from a host computer by moving a cursor displayed on said screen up in response to the receipt of the character "A" from a host computer, moving the cursor on said screen down in response to the receipt of the character "B" from a host computer, erasing from said screen a portion of a line of text in response to the receipt of the character "K" from a host computer, deleting from said screen a portion of a line of text in response to the receipt of the character "M" from a host computer, and drawing a curve on said screen in response to the receipt of a character string including the character "C" from a host computer.
2. A process control terminal as defined in
3. A process control terminal as defined in
4. A process control terminal as defined in
5. A process control terminal as defined in
7. A process control terminal as defined in
8. A process control terminal as defined in
10. A process control terminal as defined in
a process network controller that receives process control information from a process controller; a bus connected to said process controller; a host network controller coupled to said bus, said host network controller transmitting application information to a host computer and receiving application information from a host computer; and a processor coupled to said bus, said processor determining the existence of an alarm condition.
11. A process control terminal as defined in
12. A process control terminal as defined in
13. A process control terminal as defined in
14. A process control terminal as defined in
21. A process control terminal as defined in
22. A process control terminal as defined in
0. 25. The process control terminal of
0. 26. The process control terminal of
0. 27. The process control terminal of
means for preventing the second portion of the screen from overlapping the first portion of the screen.
0. 29. The process control terminal of
a process network controller than receives process control information from a process controller; a bus connected to the process controller; a host network controller coupled to the bus, the host network controller transmitting application information to a host computer and receiving application information from a host computer; and a processor coupled to the bus, the processor determining the existence of an alarm condition.
0. 30. The process control terminal of
0. 31. The process control terminal of
0. 32. The process control terminal of
0. 33. The process control terminal of
0. 38. The process control terminal of 37 wherein the controller comprises:
a process network controller that receives process control information from the process control network; a bus connected to the process network controller; a local area network controller coupled to the bus, the local area network controller transmitting application information to and receiving application information from the local area network; and a processor coupled to the bus, the processor determining the existence of an alarm condition.
0. 39. The process control terminal of
0. 40. The process control terminal of
0. 41. The process control terminal of
|
A prior art process control terminal network is shown in FIG. 1. This prior art network is described prior to the description of the preferred embodiment of the invention below to facilitate better understanding of the invention. Now referring to
The process control terminals 14 facilitate the human interface between the process controllers 12 and the process control operators. One of the process control terminals 14 is shown in the left-hand portion of
The internal structure of the process control terminals 14 includes a processor 24 which controls the overall operation of the terminal 14 by means of a computer program. The processor 24 is connected to a disk controller 26 and to a random access memory (RAM) 28 by means of an internal bus 30. Each time the terminal 14 is turned on, the operator may input the computer program into the terminal 14 by means of the floppy disk drive 22, and the disk controller 26 then reads the program from the disk drive 22 and stores the program in the RAM 28 in a conventional fashion. A serial controller 32 is connected to the bus 30 to facilitate operator input via the keyboard 18. The serial controller 32 may also be connected to a serial printer (not shown) to facilitate written reports. A conventional CRT controller 34 is connected between the CRT and the internal bus 30 to control the display on the CRT screen. A conventional network controller 36 connected to the internal bus 30 facilitates communication between the terminal 14 and the process controllers 12.
Now referring to
The network controller 36 is connected to a process network driver 50. The network driver 50 responds to commands from the network controller 36 to store data in and retrieve data from a process database 52 in the RAM 28. The process database 52 contains electronic data as to the current state of the various processes controlled by the process controllers 12 as well as alarm data relating to operator-selected alarm limits, such as high pressure or high temperature limits, for example. The network driver 50 also sends data to a display definition database 54 in the RAM 28. The display definition database 54 contains electronic data relating to the displays which may be shown on the CRT screen, which typically include pictorial representations in addition to text. Only one of the displays is shown at a time.
Finally, the process control terminal of
A process control terminal in accordance with the invention is used in a process control system shown in FIG. 3. The process control system of
Now referring to
The host computer 64 has the capability to execute a number of application programs 70, the application programs being unrelated to the process control program and information normally associated with a process control terminal. The connection of the host computer network allows a process control operator to utilize application software that need not be related to the process he is controlling during any idle time he might have. The application programs would allow the operator to perform such tasks as issuing material requisitions, recording shift notes, logging hours, etc., or virtually any other task that can be performed in connection with a computer.
A portion of the process control terminal 60 and a diagram of a number of operating processes executed by the processor 24 are shown in FIG. 4. The elements shown in
Now referring to
The software modules shown in
Now referring to
Beneath the windows 94, 102, 104 are an operator input window 106 for operator input concerning process control and a message window 108 for error messages.
The display shown in
The display shown in
As described in detail below, each screen display like the one in
The operator may also input information to any of the upper windows 98, 100 on the display. To accomplish this, the operator types in the number of the desired window in the window 106. The window number of each window is displayed in the upper left-hand corner of the window. Thus, the application window 98 is window number 1. The window which is currently input active has a double box (not shown) surrounding the window.
While the application window 98 may be moved around in the upper portion 96 of the display, its size is fixed to correspond to a standard screen size of 24 lines of 80 characters per line. This size could be changed though.
The detailed description of the processes generally shown in
Now referring to
In the middle portion of
A memory portion 128 of a display element corresponding to an application window is shown in detail in the right-hand portion of FIG. 6 and includes a first location 130 which includes the length of the display element, which corresponds to the number of memory locations which follow the first location 130. A memory location 132 contains a code which identifies the type of display element, which in this case would be an application window, and a location 134 specifies the window number. Four memory locations 136, 138, 140, 142 completely specify the size and location of the window by defining the X and Y coordinates of each corner of the window.
In an Ethernet network, each terminal and each host computer are assigned a unique node address to facilitate communication. Accordingly, a memory location 144 in the application window element 128 contains the node address of the host computer 64 which executes the application program corresponding to the application window element 128.
A memory location 146 contains an authorized username and a memory location 148 contains an authorized password for the application program which corresponds to the application window element 128. As described below, the memory locations 144-148 are optional, and are used in connection with an automatic login feature of the present invention.
The memory portions 128 corresponding to a circle display element, a box display element, and a symbol display element are shown in FIG. 7. Each of these memory portions 128 includes a first memory location specifying the number of following memory locations, a second memory location specifying the type of display element, and additional memory locations specifying the size and location of the display element. The memory portions 128 may include a memory location containing a fill flag, which specifies whether the interior of the display element should be illuminated or alternatively whether just its boundary should appear.
The logical structure of the process database 52 is shown in FIG. 8. As described above, the process database contains three basic types of information: information relating to the various processes being controlled by the process controllers 12, alarm limit information such as alarm status bits, and attention limit information such as attention status bits.
Now referring to
The memory structure of the alarm linked list includes a memory location 166 which contains the pointer, or memory address, of the first alarm condition in the linked list, and a memory location 168 which contains the pointer, or memory address, of the last alarm condition in the list. The memory location 166 specifies the memory address of the first memory location 170a containing alarm information. The memory location 170a contains a pointer to the next memory location which contains alarm information and a pointer to the previous memory location containing alarm information, which in this case equals zero since the location 170a is the first location in the linked list. The location 170a also includes the point number for which the alarm condition exists. Each point number causes a unique alarm message to be displayed on the CRT screen.
The final alarm location 170z in the alarm linked list 162 includes pointers to the next and previous entries. In this case, the pointer to the next entry is zero since the location 170z is the last location in the linked list. Each of the intermediate alarm memory locations between the locations 170a, 170z, which are indicated by the dotted lines, has the same structure as the locations 170a, 170z. The attention linked list 164 is organized in the same manner as the alarm linked list just described. Linked lists are conventional means of storing data.
A flowchart of the keyboard process 76 of
In order to select a window, an operator must type a "select window" command and enter the associated window number. As a result, a double box is drawn around the window and the window is enabled for input from the operator. A "deselect window" command makes the double box around the active window disappear and disables the window for input from the operator. A "show display" command causes the display corresponding to the display number input by the operator to appear on the screen. While the selection of a window determines whether the window may accept operator input, a window may accept input from the host computer 64 as long as it is on display on the CRT screen, whether or not it is "selected."
Now referring to
At step 202, if the key signal from the serial line driver 40 was not a show display key, the process branches to step 206 to determine whether it is a "select window" key. If it is, the process branches to step 208 where the selected window number is placed in a select window message for transmission to the display scheduler 78. The process then branches back to step 200 to wait for another key signal from the serial line driver 40.
At step 206, if the key signal from the serial line driver 40 was not a select window key, the process branches to step 210 to determine whether it is a "deselect window" key. If it is, the process branches to step 212 where the deselected window number is placed in a deselect window message for transmission to the display scheduler 78. The process then branches back to step 200 to wait for another key signal from the serial line driver 40.
Finally, at step 214, since the key from the serial line driver 40 was not any of the three window select or display commands, it contains information for the application window process 82. Accordingly, a message including the key, or character, is created and sent to the application window process 82. The process then branches back to step 200 to wait for another key signal.
A flowchart of the display scheduler 78 of
Now referring to
At step 232, if the message was not a window select request, the program branches to step 236 where the program determines whether it is a window deselect request. If the message is a window deselect request, the program branches to step 238 at which point the window is deselected. In order to deselect the window, a command is sent to the CRT driver 46 requesting that the double box drawn around the window be erased and the window is made input inactive. The program then returns to step 230 to wait for another message.
At step 236, if the message was not a window deselect request, the program branches to step 240 at which point the program causes a new display to be initiated at steps 240-244. Specifically, at step 240 the display semaphore is locked in order to limit access to the display definition database 54. At step 242 the current display list number in the memory portion 120 of the display definition database 54 is set equal to the display list number contained in the message from the keyboard process 76. The CRT screen is then cleared by sending the CRT driver 46 a fill box command. Finally, at step 244 the display semaphore is unlocked so that the display definition database 54 can be accessed and the new display may be made to appear on the screen. The program then returns to step 230 at which point it waits for another message from the keyboard process 76.
A flowchart of the display interpreter 80 of
Now referring to
Each of the display elements 128 contained in the display list 124 specified by the display number is displayed on the CRT screen by means of steps 256-262. Step 256 is a test to determine whether the display element specified by the display index is an application window element. If it is, the program branches to step 258 to create the application window process if it has not already been created. At step 260, the display element 128 specified by the index as well as it constituent portions, for example portions 130-148, are retrieved from the display definition database 54, and the display element 128 is converted to a set of drawing primitives in a conventional manner. The drawing primitives are sent to the CRT driver 46, which then causes the display element to be displayed on the CRT screen. At step 262, the display element index is incremented, and the current value of the index is compared to the number of display elements stored in memory location 126 to determine whether there are any additional display elements to be retrieved. If there are more display elements, the program branches back to step 256 in order to retrieve the next display element. If all the display elements have been retrieved, the program branches to step 264 at which point the display semaphore is unlocked to allow the display scheduler 78 to have access to the display definition database 54. The program then branches to step 250.
A flowchart of the network driver 50 of
Now referring back to step 282, if the message from the network controller 36 was not a display definition message, meaning that it was a process information message, then the program branches to step 290 at which point the process database 52 is updated by storing the process values contained in the process information message into the process database 52. At step 292, the program cycles through the memory portion 160 of the process database 52 in order to determine whether any of the updated process information has caused any alarm conditions. If so, the program branches to step 294 at which point the alarms are added to the alarm linked list 162. If the message contains any operator attention messages as determined at step 296, the program branches to step 298 where the attention messages are added to the attention linked list 164 in the process database 52. The program then branches back to step 280 to wait for another message from the network controller 36.
A flowchart of the alarm and attention list processor 56 of
Now referring to
The process then branches to step 316, where it accesses the attention linked list 164 to determine whether there are any process control conditions which need operator attention. If there is an attention condition in the linked list 164, the first attention condition in the list is retrieved, and an electronic attention message is created for transmission to the CRT driver 46 so that a visual attention message will appear on the CRT screen. The electronic attention message includes text primitives specifying the visual message as well as coordinates specifying a predetermined portion of the CRT screen at which the visual message is to appear. This predetermined screen portion is the operator attention request window 102 and is specified by the X and Y pixel coordinates of that window 102. The electronic attention message is then sent to the CRT driver 46 to cause the visual attention message to appear in the attention window 102.
The program then branches back to step 310 in order to check the alarm and attention linked lists again. If there are more than one alarm or attention conditions in either of the linked lists 162, 164, the operator may request that the entire list of the corresponding alarm or attention messages be displayed on the CRT screen.
A process flow diagram of the application window process 82 of
Now referring to
During execution of the process messages step 338, messages are transmitted from the host computer 64 to the terminal 60 and back via the Ethernet network 66. These messages may include textual information or graphics information. A read user input step 340 reacts to keystrokes input by the user at the keyboard. Upon the user typing in a terminating character, such as a carriage return or a transmit key, the characters preceding the terminating character are transmitted to the host computer 64.
The read user input step 340 has two basic types of operation, depending upon whether or not the host computer 64 has transmitted a read request message to the terminal 60, indicating that the terminal should send a read message to the computer 64. If a read request has already been received by the terminal 60, then as the operator types each key, the key is stored in the keyboard buffer (not shown) at step 342. The key is then echoed to the CRT screen at step 344, and finally, upon receipt of the terminating character, the typed characters in the keyboard buffer are included in a message to the host computer 64.
If no read request has yet been received by the terminal 60, then the typed characters, including the terminating character, are stored in the buffer until a read request is received. Upon receipt of a read request, the characters in the buffer are transmitted in a message to the host computer 64 at step 346, and then they are echoed to the screen at step 344.
The process 82 also responds to messages from the host computer 64 by processing Ethernet messages at step 348. This processing may include either a read request, described above, or a write request indicating that the host computer 64 would like to send a message to the terminal 60. In the case of a read request, the request is processed at step 350 by first removing a character from the keyboard buffer at step 352, causing the character to be echoed to the screen at the previously described step 344, and causing the message including the characters to be sent to the host 64 at the previously described step 346.
If a write request is received by the terminal 60, a process write request step 354 is executed, which causes an emulate terminal step 356 to be performed. The emulate terminal step 356, which is described in detail below, is essentially a message translator that translates Ethernet messages from the host computer 64 so that the terminal 60 can respond to them. The emulate terminal step 356 is also used by the echo characters step 344, and thus responds to characters input by the operator at the terminal 60.
A state diagram of the emulate terminal step 356 of
Now referring to
Referring to
At step 384 the program determines whether the character received from the host computer 64 is a line feed, in which case it branches to step 386 where a move cursor down routine is called to move the cursor one position down. The move cursor down routine is described in more detail below.
At step 388, the program determines whether the current X cursor position is less than or equal to 80. If it is not, then the program terminates because the program does not write past the 80th character position on the CRT screen, since the application window 98 is only 80 characters wide.
At step 390, the program determines whether the window is on display. If the window is not on display, the program bypasses step 392, which causes a text command to be sent to the CRT driver so that the character received is displayed on the CRT screen. Step 392 uses a pair of subroutines CALC_X and CALC_Y, described below, to determine the X, Y pixel position corresponding to the current cursor position. After the character has been displayed on the CRT screen, the X cursor position is incremented so that the character just displayed will not be overwritten by the next character.
The CALC_X and CALC_Y subroutines are shown in
Now referring to
where X is the X pixel position being calculated, 16 is the number of pixels comprising the blank vertical left-hand border portion 110 of the CRT screen, X13window13 offset is a predetermined window offset with respect to the left vertical border portion 110, the number 6 is the number of horizontal pixels used for each character, and X_position is the X coordinate position for which the X pixel position is being calculated.
The CALC_Y subroutine shown in
Now referring to
where Y is the Y pixel position being calculated, the number 90 is the number of pixels used for the process control portion 92, Y_window_offset is a predetermined window offset with respect to the process control portion 92 of the display, the number 240 represents the pixel height of the application window 98 in which text appears, the number 10 is the number of vertical pixels used for each character, and Y_position is the Y coordinate position for which the Y pixel position is being calculated.
It should be appreciated that the use in Equation [2] of the number 90, which corresponds to the height of the process control portion 92 of the display, prevents any visual application program information from being displayed in the process control portion 92.
A number of state transitions from the escape state 400 to the initial and control sequence introducer ("CSI") states 370, 406 of
Now referring to
The receipt of a "["causes the program to transition from the escape state 400 to the CSI state 406 after all parameters have been cleared at step 422. In the CSI state 406, a number of parameters are used. Step 422 clears any old values of these parameters that may remain.
A number of state transitions from the CSI state 406 to the initial state 370 of
Referring to
Some of the steps shown in
If the parameters are not specified, their values are preset as shown in
Referring to
A flowchart of the insert characters step 430 of
Now referring to
Steps 466-472 determine the X, Y pixel position of each of the four corners of the horizontal line of text that will be scrolled right to make room for the character(s) that are to be inserted. At step 466, using the current X cursor position, the left X pixel position of the region to scroll is calculated using the CALC_X subroutine shown in FIG. 20a and described above. At step 468, using the X position of the end of the line, which in this case equals 80, the right X pixel position of the region to scroll is calculated using the CALC_X subroutine. At step 470, the bottom Y pixel position of the line on which the character(s) are to be inserted is calculated by calling the CALC_Y subroutine, and at step 472, the top Y pixel position of the line on which the character(s) are to be inserted is determined from the CALC_Y subroutine.
At step 474, the box specified by the X and Y pixel positions determined in steps 466-472 is scrolled right the number of cursor positions specified by parameter 1 by sending a scroll right command to the CRT driver 46. As a result, a blank line portion is created so that the desired character(s) may be subsequently inserted during later execution of the display text step 372.
A flowchart of the delete characters step 438 of
Now referring to
Steps 486-492 determine the X, Y pixel position of each of the four corners of the horizontal line of text that is to be scrolled left to delete the desired character(s). At step 486, using the current X cursor position, the left X pixel position of the region to scroll is calculated using the CALC_X subroutine shown in FIG. 20a and described above. At step 488, using the X position of the end of the line from which character(s) are to be deleted, which in this case equals 80, the right X pixel position of the region to scroll is calculated using the CALC_X subroutine. At step 490, the bottom Y pixel position of the line from which the character(s) are to be deleted is calculated by calling the CALC_Y subroutine, and at step 492, the top Y pixel position of the line from which the character(s) are to be deleted is determined from the CALC_Y subroutine.
At step 494, the box specified by the X and Y pixel positions determined in steps 486-492 is scrolled left the number of cursor positions specified by parameter 1 by sending a scroll left command to the CRT driver 46. As a result, the character(s) which are to be deleted are overwritten by the character(s) to their immediate right on the CRT screen.
A flowchart of the insert lines step 434 of
Now referring to
Steps 506-512 determine the X, Y pixel position of each of the four corners of the block of text that will be scrolled down to make room for the line(s) to be inserted. At step 506, using the X position of the start of a line, which in this case equals 1, the left X pixel position of the region to scroll is calculated using the CALC_X subroutine shown in FIG. 20a and described above. At step 508, using the X position of the end of a line, which in this case equals 80, the right X pixel position of the region to scroll is calculated using the CALC_X subroutine. At step 510, using the Y pixel position of the bottom margin of the application window 98, the bottom Y pixel position of the region to scroll is calculated by calling the CALC_Y subroutine, and at step 512, using the current cursor position, the top Y pixel position of the region to scroll is determined from the CALC_Y subroutine.
At step 514, the rectangular region specified by the X and Y pixel positions determined in steps 506-512 is scrolled down the number of line positions specified by parameter 1 by sending a scroll down command to the CRT driver 46. As a result, a blank rectangular screen portion is created so that the desired lines of text may be subsequently inserted during later execution of the display text step 372.
A flowchart of the delete lines step 436 of
Now referring to
Steps 526-532 determine the X, Y pixel position of each of the four corners of the block of text that will be scrolled up to delete the specified line(s) of text. At step 526, using the X position of the start of a line, which in this case equals 1, the left X pixel position of the region to scroll is calculated using the CALC_X subroutine shown in FIG. 20a and described above. At step 528, using the X position of the end of a line, which in this case equals 80, the right X pixel position of the region to scroll is calculated using the CALC_X subroutine. At step 530, using the Y pixel position of the bottom margin, of the application window 98, the bottom Y pixel position of the region to scroll is calculated by calling the CALC_Y subroutine, and at step 532, using the current cursor position, the top Y pixel position of the region to scroll is determined from the CALC_Y subroutine.
At step 534, the rectangular region specified by the X and Y pixel positions determined in steps 526-532 is scrolled up the number of line positions specified by parameter 1 by sending a scroll up command to the CRT driver 46. As a result, the desired lines of text are deleted.
The erase line step 420 shown in
The erase line step 420 uses a single parameter, parameter 1. If parameter 1 equals one, then portion of the line before the current cursor position is erased. If parameter 1 equals two, then the entire line on which the cursor is position is erased. If parameter 1 is not equal to either one or two, then the portion of the line after the current cursor position is erased.
Now referring to
If parameter 1 was not equal to one at step 540, the program branches to step 544 where the program determines whether parameter 1 equals two. If it does, meaning that the entire line is to be erased, then the program branches to step 546, where the leftmost and rightmost X pixel positions of the line to be erased are determined from the X positions of the start and the end of a line, respectively, which in this case equal one and 80, respectively.
If parameter 1 is not equal to either one or two, meaning that the portion of the line after the current X cursor position is to be erased, the program branches to step 548 where the left-most X pixel position of the line to be erased is calculated by the subroutine CALC_X, using the X coordinate of the cursor position, and the rightmost X pixel position of the line to be erased is calculated by the subroutine CALC_X, using the X position of the end of a line, which in this case equals 80.
At step 550 the program determines whether the window from which the line or portion of the line is to be erased is on display. If the window is not on display, then the program ends without taking further action.
Because the X pixel positions of the line or portion of the line to be erased was determined in steps 542, 546, or 548, only the Y pixel position of the line to be erased remains to be determined. At step 552, the upper and lower Y pixel positions of the line or line portion to be erased are determined from the CALC_Y subroutine, using the upper and lower Y coordinate positions of the current line. Then at step 554, the line or line portion specified by the X and Y pixel positions determined above at steps 542, 546, or 548 and 552 is erased by sending a fill box command to the CRT driver, the fill box command causing a blank box to be written to the screen.
The erase window step 418 shown in
The erase window step 418 uses a single parameter, parameter 1. If parameter 1 equals one, then the portion of the screen from the beginning of the window, which corresponds to upper left coordinate position of the window, to the current cursor position is erased. If parameter 1 equals two, then the entire window is erased. If parameter 1 is not equal to either one or two, then the portion of the window after the current cursor position is erased.
Now referring to
If parameter 1 was not equal to one at step 560, the program branches to step 564 where the program determines whether parameter 1 equals two. If it does, meaning that the entire window is to be erased, then the program branches to step 566, where the upper and lower Y pixel positions are determined from the CALC_Y subroutine, using the Y coordinates of the top and bottom of the window, respectively.
If parameter 1 is not equal to either one or two, meaning that the portion of the window after the current cursor position is to be erased, the program branches to step 568 where the portion of the line following the current cursor position is erased. The upper and lower Y pixel positions are then determined from the CALC_Y subroutine, using the Y coordinate positions corresponding to the line after current Y cursor position and the Y coordinate of the bottom of the window, respectively.
At step 570 the program determines whether the window from which the text portion is to be erased is on display. If the window is not on display, then the program ends without taking further action.
Because the Y pixel positions of the rectangular portion to be erased was determined in steps 562, 566, or 568, only the left and right X pixel positions of the portion to be erased remain to be determined. At step 572, the left and right X pixel positions of portion to be erased are determined from the CALC_X subroutine, using the left and right X coordinates of a window line. Then the rectangular portion specified by the X and Y pixel positions determined above at steps 562, 566, or 568 and 572 is erased by sending a fill box command to the CRT driver, the fill box command causing a blank box to be written to the screen.
A flowchart of the move cursor up step 412 of
Referring to
At step 584, the program determines whether the cursor is at the top margin of the window. If the cursor is not at the top margin, then the cursor can be moved up one position without the need to scroll the display down. If the cursor is at the top margin, then a scroll down command is sent to the CRT driver 46. To perform the scroll down, the program branches to step 586 where left and right X pixel positions of the region to scroll are determined from the CALC13X subroutine, using the left and right X coordinates of the window region, respectively. In this case, since the window lies across the entire CRT screen, these left and right X coordinates are one and 80, respectively.
At step 588, the upper and lower Y pixel positions of the region to scroll are determined from the CALC13Y subroutine, using the Y coordinates of the top and bottom margin of the window region, respectively. At step 590, the region specified by the X and Y pixel positions determined in steps 586, 588 is scrolled down one position, or 10 pixels, by sending a scroll down command to the CRT driver 46. As a result, a new line of text will appear at the top margin of the window and the cursor will be able to be moved up one Y position.
At step 592 the Y cursor position is decremented, which will cause the cursor to be moved up one line of text. The Y cursor position is then "clamped" at one, meaning that if the current Y cursor position is less than one (an error condition which should not normally occur), then the Y cursor position is set equal to one. At step 594, the counter is incremented by one, and then the count is compared to the value of parameter 1 to determine if the cursor has been moved up the specified number of positions. If not, then the program branches back to step 584 to move the cursor up again.
A flowchart of the move cursor down step 414 of
Referring to
At step 604, the program determines whether the cursor is at the bottom margin of the window. If the cursor is not at the bottom margin, then the cursor can be moved down one position without the need to scroll the display up. If the cursor is at the bottom margin, then a scroll up command is sent to the CRT driver 46. To perform the scroll up, the program branches to step 606 where left and right X pixel positions of the region to scroll are determined from the CALC13X subroutine, using the left and right X coordinates of the window region, respectively. In this case, since the window lies across the entire CRT screen, these left and right X coordinates are one and 80, respectively.
At step 608, the upper and lower Y pixel positions of the region to scroll are determined from the CALC13Y subroutine, using the Y coordinates of the top and bottom margin of the window region, respectively. At step 610, the region specified by the X and Y pixel positions determined in steps 606, 608 is scrolled up one position, or 10 pixels, by sending a scroll up command to the CRT driver. As a result, a new line will appear at the bottom margin of the window and the cursor will be able to be moved down one Y position.
At step 612, the Y cursor position is incremented, which will cause the cursor to be moved down one line of text. The Y cursor position is then "clamped" at 24, meaning that if the current Y cursor position is greater than 24 (an error condition which should not normally occur since there are only 24 lines of text in the application window 98), then the Y cursor position is set equal to 24. At step 614, the counter is incremented by one, and then the count is compared to the value of parameter 1 to determine if the cursor has been moved down the specified number of positions. If not, then the program branches back to step 604 to move the cursor down again.
A flowchart of the move cursor right step 410 of
Now referring to
A flowchart of the move cursor left step 432 of
Now referring to
A flowchart of the move cursor step 416 of
Now referring to
At step 664, the value of parameter 1 is tested to determine whether it is greater than 24. If parameter 1 is greater than 24, which is an error condition since there are only 24 lines in the application window 98, then the program branches to step 666 where parameter 1 is set equal to 24, its maximum value.
At step 668, the program determines whether parameter 2 is equal to zero. If it is, meaning that no parameter 2 has been specified, then the program branches to step 670 at which point the value of parameter 2 defaults to one. At step 672, the program determines whether parameter 2 is greater than 80 , which signifies an error condition since there can be no more than 80 characters in a line. If parameter 2 is greater than 80 , then the program branches to step 674 where parameter 2 is set equal to 80 , its maximum value. At step 676, the current X, Y position of the cursor is changed, X being set equal to the value of parameter 2 and Y being set equal to the value of parameter 1. As a result, the cursor will appear in the new position.
The foregoing description of
A state diagram of the graphics state 404 of
Now referring to
A state diagram of the set position state 702 of
Now referring to
While in state 724, the program receives the X parameter, which may comprise one or more of the ASCII characters 0 through 9. Each time a character is received the program branches to step 726 at which point it converts the ASCII character to its associated binary character value, and adds this amount to the current value of tx multiplied by 10 in order to contribute its proper decimal value. For example, if the characters "3" and "5" are received in succession, tx would equal 3 after the first execution of step 726 and tx would equal 35 after the second execution of step 726. When a comma is received, signalling the end of the characters specifying the X pixel position, the program transfers to a state 728 during which the Y pixel position is received. This state 728 operates in the same way as state 724, and thus at step 730 the value of the Y pixel position is computed and saved in ty.
The receipt of the "]" character signals the program that all ASCII numerals specifying the Y pixel position have been received, and the program thus branches to step 732, where the current X, Y pixel position of the cursor is set equal to the tx, ty position just determined.
A state diagram of the draw vector state 704 of
Now referring to
While in state 744, the program receives the X parameter, which may comprise one or more of the ASCII characters 0 through 9. Each time a character is received, the program branches to step 746 at which point it converts the ASCII character to its associated binary character value, and adds this amount to the current value of tx multiplied by 10 in order to contribute its proper decimal value. When a comma is received, signalling the end of the characters specifying the X pixel position, the program transfers to a state 748 during which the Y pixel position is received. This state 748 operates in the same way as state 744, and thus at step 750 the value of the Y pixel position is computed and saved in ty.
The receipt of the "]" character signals the program that all ASCII numerals specifying the Y pixel position have been received, and the program thus branches to step 752. At step 752, a vector is drawn from the current cursor pixel position to the pixel position specified by (tx, ty).
Before the vector can be drawn on the CRT screen of the process control terminal 60, however, the current cursor pixel position and the pixel position specified by (tx, ty) must be transformed. The reason that the transformation is required is that a standard DEC terminal to which the host computer 64 communicates has a CRT screen 800 pixels wide by 480 pixels tall, with the upper left-hand corner of the screen being defined as the (0, 0) pixel position. However, the application window 98 displayed on the CRT screen of the terminal 60 is 480 pixels wide by 240 pixels tall, the lower left-hand corner of the window being defined as the (0, 0) pixel position. Thus, in order to display substantially the same image in the application window 98 on the CRT screen as that transmitted by the host computer 64, a pixel transformation is performed before any graphics are displayed on the CRT screen by the CRT driver 46.
A flowchart of the subroutine that accomplishes this X pixel transformation, PIXELX, is shown in FIG. 23a. The X pixel position specified by the host computer 64 is transformed by using Equation [3] set forth below:
where X is the X pixel position being calculated for the CRT screen of the terminal 60, the number 16 corresponds to the vertical border portion 110 of the display, X_window_offset is a predetermined window offset with respect to the vertical border portion 110, the number 480 is the horizontal width of the display of the CRT screen, X13 pixel is the pixel position for a DEC terminal for which X is being calculated, and the number 800 is the horizontal width of the display of a standard DEC terminal.
A flowchart of the subroutine that accomplishes this Y pixel transformation, PIXEL_Y, is shown in FIG. 23b. The Y pixel position specified by the host computer is transformed by using the Equation [4] set forth below:
where Y is the Y pixel position being calculated for the CRT screen of the terminal 60, the number 90 corresponds to the process control portion 92 of the display, Y_window_offset is a predetermined window offset with respect to the process control portion 92, the number 249 is related to the height in pixels of the application window 98, the number 240 is equal to the visual display height in pixels of the application window 98, Y_pixel is the pixel position for a standard DEC terminal for which Y is being calculated, and the number 480 is the height in pixels of the display of the DEC terminal.
Referring back to step 752 in
A state diagram of the draw curve state 706 of
Now referring to
While in the state 766, the program receives the number of degrees of angular displacement of the curve, which may be specified by one or more of the ASCII characters 0 through 9. Each time a character is received, the program branches to step 766 at which point it converts the ASCII character to its associated binary character value, and adds this amount to the current value of degrees multiplied by 10 in order to contribute its proper decimal value. When a right parenthesis is received, signalling the end of the characters specifying the angular displacement, the program transfers to a state 770 which waits for the X and Y parameters. Upon receipt of the "[" character, the program branches to a state 772 in order to determine a pixel position specified by X.
While in state 772, the program receives the X parameter, which may comprise one or more of the ASCII characters 0 through 9. Each time a character is received, the program branches to step 774 at which point it converts the ASCII character to its associated binary character value, and adds this amount to the current value of tx multiplied by 10 in order to contribute its proper decimal value. When a comma is received, signalling the end of the characters specifying the X pixel position, the program transfers to a state 776 during which the Y pixel position is received. This state 776 operates in the same way as state 772, and thus at step 778 the value of the Y pixel position is computed and saved in ty.
The receipt of the "]" character signals the program that all ASCII numerals specifying the Y pixel position have been received, and the program thus branches to step 780.
At step 780, a circular curve is drawn. Before the curve is drawn, the PIXEL_X and PIXEL_Y subroutines are called to convert both the current cursor pixel position and the pixel position specified by (tx, ty) to the display format of the terminal 60. After the two points have been converted, the curve is drawn, the center of the circular curve being the current cursor pixel position, and the circular curve beginning at the point specified by the transformed (tx, ty). The curve is drawn for a length corresponding to the angular displacement in degrees as calculated at step 768. The draw curve command is then transmitted to the CRT driver 46, which then causes the specified curve to appear on the CRT screen.
A state diagram of the fill polygon state 708 of
Now referring to
As described above, while in state 808, the program receives the X parameter, branching to a step 810 each time a character is received to compute the tx value. When a comma is received, signalling the end of the characters specifying the X pixel position, the program transfers to a state 812 during which the Y pixel position is received. This state 812 operates in the same way as state 808, and thus at step 814 the value of the Y pixel position is computed and saved in ty.
The receipt of the "]" character signals the program that all ASCII numerals specifying the Y pixel position have been received, and the program thus branches to step 816, where the vertex specified by (tx, ty) is saved in memory. The program then branches back to state 804, at which point the next vertex will be received by repeating steps 806-816. The subsequent vertices are stored in memory in the order in which they were received. After the final vertex has been received and the program is in state 804, the right parenthesis ")" will be received. This signals the program that there are no more vertices that will be transmitted. Also, the last vertex transmitted will always coincide with the original cursor pixel position so that the polygon drawn will define a closed area.
The polygon is drawn at step 818. At step 818, the original cursor position and each of the vertices is converted to the pixel format of the terminal 60 by calling the PIXEL_X and PIXEL_Y subroutines, and then a fill polygon command is constructed by specifying that a lines be drawn from the original cursor pixel position to the first vertex, between each pair of subsequent vertices, and between the last vertex and the original cursor position so that the polygon is enclosed. The fill polygon command is transmitted to the CRT driver 46 which displays the polygon on the CRT screen.
A state diagram of the draw text state 710 of
Now referring to
where X_coord is the cursor pixel position, the number 6 is the width in pixels of each character displayed, and number_of_characters is the number of characters that was displayed on the CRT screen.
Another feature of the invention is an automatic login feature that allows an operator to be automatically logged in to an application program being run by the host computer upon the start of execution of the application program.
In a conventional computer system, before an operator may gain access to a particular application program, he is required to login by providing a username and in some instances a password. In the context of the present invention, each time an operator wants to show a display containing an application window that is not logged in, he would have to login by providing a username and a password.
The automatic login feature of the present invention saves operator time by causing a predetermined node address, username and password to be transmitted to the host computer 64 without the need for the operator to enter such information via the keyboard of the terminal. Referring to
A flowchart of an automatic logic process utilized by the present invention is shown in FIG. 24. At step 860, the program determines whether the node address of the application window element equals zero. If it does, indicating that the automatic login feature of the invention is not being used with this particular application window, then the program branches to step 862 where the operator is prompted for the node address since one was not provided. The program then ends.
At step 864, since a node address was provided, the program gets the node address from the application window element 128 and sends it to the caller, which is the sequencer 330 shown in FIG. 14. Referring back to
The program then branches to step 870 where the program determines whether the window element contains a password character string. If it does not, meaning that the automatic login feature is not currently being used for this window, then the program ends. Otherwise, at step 872, the password is retrieved from the application window element and placed in the keyboard buffer of the CRT terminal 60 for transmission to the host computer 64. This act of automatically placing the password in the keyboard buffer has the same effect as if the operator had typed in the password himself.
After the username and password are transmitted to the host computer 64, they are compared to predetermined login information including a username and password to determine whether access to the computer program should be granted. Since the automatic login feature of the invention is designed to automatically allow operator access to an application program, the login information stored in the display element should always match the predetermined login information. Upon the determination that the corresponding login information matches, the operator will be automatically logged in to the application program, which is then run by the host computer with input from the operator.
Modifications and alternative embodiments of the invention will be apparent to those skilled in the art in view of the foregoing description. Accordingly, this description is to be construed as illustrative only, and is for the purpose of teaching those skilled in the art the best mode of carrying out the invention. The details of the structure may be varied substantially without departing from the spirit of the invention, and the exclusive use of all modifications which come within the scope of the appended claims is reserved.
Patent | Priority | Assignee | Title |
10214933, | May 11 2017 | HAYWARD INDUSTRIES, INC | Pool cleaner power supply |
7890200, | Jul 06 2004 | BP Exploration Operating Company Limited | Process-related systems and methods |
Patent | Priority | Assignee | Title |
3971000, | Feb 24 1972 | The Foxboro Company | Computer-directed process control system with interactive display functions |
4135662, | Jun 15 1977 | Pitney-Bowes, Inc. | Operator prompting system |
4270185, | Jun 20 1977 | Motorola Israel Limited | Memory control circuitry for a supervisory control system |
4303973, | Oct 29 1976 | The Foxboro Company | Industrial process control system |
4412294, | Feb 23 1981 | Texas Instruments Incorporated | Display system with multiple scrolling regions |
4451701, | Oct 30 1980 | OCLC Online Computer Library Center, Incorporated | Viewdata system and apparatus |
4543567, | Apr 14 1983 | Tokyo Shibaura Denki Kabushiki Kaisha | Method for controlling output of alarm information |
4550386, | Dec 22 1982 | Hitachi, Ltd. | Terminal controller |
4555775, | Oct 07 1982 | UNIX SYSTEMS LABORATORIES, INC | Dynamic generation and overlaying of graphic windows for multiple active program storage areas |
4588987, | Sep 13 1983 | INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Display system for monitoring and alarm system |
4621319, | Sep 27 1982 | Intel Corporation | Personal development system |
4644478, | Sep 13 1983 | International Business Machines Corporation | Monitoring and alarm system for custom applications |
4761642, | Oct 04 1985 | AMERICAN VIDEO GRAPHICS, L P | System for providing data communication between a computer terminal and a plurality of concurrent processes running on a multiple process computer |
4803039, | Feb 03 1986 | WESTINGHOUSE ELECTRIC CO LLC | On line interactive monitoring of the execution of process operating procedures |
4829294, | Jun 25 1986 | Hitachi, Ltd. | Document processing method and system using multiwindow |
4853175, | Mar 10 1988 | B&W NUCLEAR SERVICE COMPANY, A PARTNERSHIP OF DELAWARE | Power plant interactive display |
4858152, | Jan 23 1987 | RARITAN COMPUTER, INC | Operator access to monitoring applications |
5065343, | Mar 31 1988 | Yokogawa Electric Corporation | Graphic display system for process control using a plurality of displays connected to a common processor and using an FIFO buffer |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 14 1995 | Fisher-Rosemount Systems, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 22 2004 | ASPN: Payor Number Assigned. |
Date | Maintenance Schedule |
Oct 26 2007 | 4 years fee payment window open |
Apr 26 2008 | 6 months grace period start (w surcharge) |
Oct 26 2008 | patent expiry (for year 4) |
Oct 26 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 26 2011 | 8 years fee payment window open |
Apr 26 2012 | 6 months grace period start (w surcharge) |
Oct 26 2012 | patent expiry (for year 8) |
Oct 26 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 26 2015 | 12 years fee payment window open |
Apr 26 2016 | 6 months grace period start (w surcharge) |
Oct 26 2016 | patent expiry (for year 12) |
Oct 26 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |