SmartTerminal Features

From OpenCircuits
Jump to navigation Jump to search

General[edit]

Some of the features are fairly obvious from the GUI ( see Smart Terminal GUI ) some are a bit more hidden. In any case this page will document some of the features in more detail. Seems I have not gotten around to this so stay tuned or email me. As of Sept 2018 I am working on this to monitor my well. but in 2022 this is still a draft.

Source Code[edit]

Application is free open source. I update github from time to time, but email me to see if I have some new improved stuff, I work on it from time to time in episodes. Code is now Python 3.5, waiting for Raspberry Pi to fully go to 3.6 so I can use f strings. Compared to most github projects I have fairly large amounts of documentation ( mostly at this site ).

GUI[edit]

uses Tkinter

Modify GUI from Parameters[edit]

see: Smart Terminal Parameter Examples and Writing You Own Extensions to SmartTerminal

Access to Parameters and Log File[edit]

The application must of course know what/where its parameter and log file are. So it can also help you look at and edit the files. For this to work you need an editing program installed on your computer. For my windows computer this is Notepad++ ( "D:\apps\Notepad++\notepad++.exe" ). Then in parameters you need to set the parameter something like this: self.ex_editor = r"D:\apps\Notepad++\notepad++.exe". Smart terminal will then open the appropriate files from the buttons on the GUI.


A Second Thread[edit]

When a GUI application does something that takes a fair amount of time ( several seconds or more ) the application can become unresponsive until that task is over. For this reason the SmartTermainl runs a second thread for long running background tasks.

Send Suffix[edit]

It is assumed that messages end with a special character, this character may be set in the parameter file.

Port Enumeration[edit]

Port Detection and Connection[edit]

GUI Extensions[edit]

Processing Extensions[edit]

These are features beyond terminal features.

  • Data scaling and filtering
  • Database interface
  • Python Logging
  • Email Interface


Application Extensions[edit]

I have written 4 Application as extension to the SmartTerminal that are intended to run on a Raspberry Pi in conjunction with an Arduino. These are in addition to the basic, parameter driven Smart terminal.

  • A servo motor based clock
  • An environmental monitor for a Green House features multiple temperature sensors, and a humidity sensor. Filters data then logs to a Marina Db ( Open sourced MySql ). Has email interface for extreme values. Companion applications: arduino component, Python Graphing component, Application to check raspberry pi status remotely.
  • Environmental monitor similar to the above, but for a Root Cellar.
  • Environmental monitor similar to the above, but for a Well.

draft material will be deleted[edit]

  • Free open source
  • Runs across OSs Linux ( inc Raspberry Pi ), Mac or Windows
  • Python
  • "RS232" all standard baud rates etc.
  • Easily adjusted serial communications parameters
  • Multiple, preloaded with data entry fields.
  • Clear ( erase ) receive area for removal of clutter.
  • Copy all or part of receive area.
  • Programmable
  • I have extensions to work with specific arduino programs. These: Run a clock, Monitor a Green House, Monitor a root cellar, Monitor a Well.
  • Database Interface ( now MYSQL can connect across the network )
  • Email interface.
  • Easily Modified or Replaceable GUI
  • Parameter file for wide range of modifications of program behavior.
  • Easy to run multiple instances with different parameters.
  • Uses standard Python logging class.
  • Includes some advanced data logging features in addition to database data logging.
  • For more on the features see SmartTerminal Features

Limits:

  • Polls the comm port at 10 to 100 hz. So full lines ( ending with carriage return <cr> ) cannot come in too fast. This is theory I have not pushed the terminal.
  • One instance of the program per com port at a time, but easy to run multiple instances.