Smart Terminal GUI
The GUI or graphical user interface is the key to using the SmartTerminal ( the main page for the application is at: Python Smart Terminal and it has a category page at [Category:SmartTerminal] ). In addition, but not discussed here, you can use the command line and the parameter file ( see: Smart Terminal Parameter Examples ). This page is the documentation for the GUI.
This is what it looks like, details on each part below. Still working on it, mostly to clean up the details. Note that this screen shot was taken during a debugging session and has some artifacts that will soon disappear, then a new screen shot will be placed here.
What Does What: The Controls
Control is mostly through buttons, sometimes supplemented by text fields. Outside of the GUI there is also a parameter file which controls start up and item like communications setting. The large rectangle at the bottom left, a text area, is where data sent, received, and some information messages are displayed. It is referred to as the receive area.
Working from top to bottom:
At the Top
- <Window title> Program name and some additional info including version, mode, and the name of any "extra" parameter file ( see Smart Terminal Parameter Examples ).
- <ID Color Band >The green band under the title is an optional component, its height and color is set in the parameter file. It is normally useful only if you are running 2 instances of the terminal and want a quick way to tell them apart.
Top Row of Labels
- <Double Row of Labels, Starting with the Communications>> > Managed by the parameter file ( see Smart Terminal Parameter Examples ).
- <Port:xxx> Status of comm port, open, closed or failed to open.
- <Type:xxx> Type of comm port, so far only RS232
- <PortID:xxx> Name of port used by the operating system. This may be changed if some of the "auto open" features are used.
- <Baud:xxx> Baud Rate of comm port.
- <StopBits:xxx> Number of stop bits for the comm port
- <Parity:xxx> Parity of comm port.
- <Additional Labels in First Row, Starting with the Database>> > Labels show status of the database connection ( not always used ). Managed by the parameter file.
- <Status:xxx> Open or closed connection to the database
- <ConnectName:xxx> Name given to the connection in the parameter file.
- <Host:xxx> Host name used by the database
- <DB:xxx> Database name
- <User:xxx> Database user
Next Button Row
- <Open Button> Opens the communications port ( if configuration in parameter file(s) allow ) Parameters show to the right, port status to right of button.
- <Close Button> Close the communications port. No error if it is not open. Parameters show to the right, port status to right of button.
- <Parameters to right of open and close buttons> Parameters from the parameter file(s), not editable on the GUI.
- <Edit Log> opens an editor on the system ( needs to be configured in parameter file self.ex_editor = <name of executable or link> ) to view the python logging file for the app.
- <Edit Parms > opens an editor on the system to edit the parameters.py file. See <Edit Log>.
- <Edit Parms X > opens an editor on the system to edit the extended parameter file if used on the command line. Not visible if no extended parameter file used. See <Edit Log>.
- <SendParms> takes the contents of the send buttons and displays them in the receive area in the same format as required by the parameter file to reproduce the current configuration.
- <Ports> List the available ports in the receive area, working under windows until upgraded from 7 to 10, Linux ??
- <Restart> Restarts the application ( usually fast ) using new values ( if any ) in the parameter file(s).
- <Test> May not be present, for debugging, not generally useful or predictable, you would need to look through the code to see what it might be doing, press at your own risk.
Buttons from Extensions
If you have extended the terminal with an xxx_processing module, its GUI will appear here. In this screen shot we see the GUI from the greenhouse extension ( note this is the mode in the window title ). The actual labels are something still in flux, the functions are more fixed.
- <Helper: Find and Monitor Arduino > starts auto run mode of terminal if so configured, this is still alpha and in any case will not have much success unless connected to a compatible serial device ( typically an Arduino ).
- <Helper: Find Arduino > T
- <Interrupt Helper> stops auto run mode of terminal. Also still alpha, but generally harmless.
- <Send Buttons> and <Text Entry> to right of each button. Each button sends the text to the right of the button, text is not erased after transmission. Lots of parameters in the parameter file determine the details:
- Number of send buttons
- Text of each button ( default Send )
- Text of the data to be send may or may not be protected based on parameter settings
The setup shown here is customized for a particular arduino program, the greenhouse monitor.
- <Column of Buttons and Text Panel> The Panel shows terminal activity and some other info ( like Ports above ) the buttons act on this data in some way. You can type in the text panel, to no particular effect, perhaps could use this to make notes. Text is partly erased from time to time depending on settings in parameter file(s) The data in the recieve area falls into three classes, each with a unique prefix ( which is set in the parameters.py file ):
- Sent: ">>> "
- Received: "<<< "
- Information: "!!! "
- Other controls:
- <Clear> Clears text panel.
- <Copy Sel> Copies all selected text. Use the mouse to select text.
- <Copy All> Copies all text selected or not.
- <A Scroll> When checked text panel automatically scrolls to the most recent data, else not. This can help you read earlier material when still receiving new data.