Sermon is a graphical (text mode) tool for QNX4 which monitors serial line activity.
Description Restrictions Use message Screen shot Download History
Sermon is a graphical (text mode) tool for QNX4 which monitors local or serial line activity. It displays almost like an oscilloscope the level on each control lines of the serial line (RTS, CTS, ...). Sermon is always retrieving the information. In other words, it is a process which will use 100% CPU. But, since it makes system calls, it releases CPU sometimes. You can change the process priority on the command line to have not too much trouble with this.
The informations are obtained from the system in three different ways :
DTR, RTS, DSR, CTS, RI, CD, Break on Tx line: these informations are obtained directly with a "qioctl" call, each request gives the state of the line when the request is done. For these informations, the faster your machine is, the more sermon will be able to catch short glitches.
Rx, Tx : these informations are obtained sending a message to Dev.ser driver. Sermon is then unable to monitor serial lines driven by specific drivers. The information obtained is actually the number of bytes sent or received. The Rx or Tx line is set to 1 if the number of bytes received or sent increased since the last request. So, even on a slow machine, you will see all the events. But if you have a faster machine, you will see shorter periods.
Break on Rx line, Overrun error, Framing error, Parity error : these informations are obtained by reading the tracelog (in Proc32) informations left by Dev.ser on these conditions. Sermon reads all the events in the tracelog searching for the events left by Dev.ser and then clears the tracelog. If there is one or several same events since the last read, the corresponding information will be set to 1. So, even on a slow machine, you will see all the events. But if you have a faster machine, you will see shorter periods. This method has several drawbacks : the serial line must be driven by the Dev.ser QNX driver, the tracelog will be totally cleared when you run sermon, only one serial line can be monitored at a time on a machine because of tracelog.Top
Sermon must be run as "root".
Sermon can only monitor serial lines driven by the QNX Dev.ser driver.
Only one serial line can be monitored at a time on a machine.
Tracelog will b cleared.
Sermon is BETA software.
Sermon does not read or send characters from or to the serial line. So, sermon could be used while another program is using the monitored serial line.
The more sermon has CPU, the more precise will be the monitoring. But, you can change the priority of the process to adapt to your system.
TopSERMON Version 0.4 Syntax: sermon [-e
] [-n ] [-p ] [-d ] [-m ] [-c ] [-t] [-T ] [-P ] [-l ] [-L ] [-h ] Description: Monitor a serial line status lines (DTR, RTS ...) like an oscilloscope. Every parameter can be set on command line or while monitoring with keyboard. The trigger notion of an oscilloscope is used. The trigger can be set on each of the status lines. The trigger can be activated by a level on a line or by a particular change of level. The trigger delay allows you to display what happen before and after the trigger condition. A column is displayed for each period. A dot is displayed every 5 period on the time line. Actually, sermon monitors the serial line as often as it can. So it can detect changes during a period. If you enable event, a column will be displayed each time a change occurs. While the DTR, RTS, ... lines display what you can measure on the connector of the serial line, the Rx and Tx only display when bytes are sent or received. The are set to 1 when the number of bytes sent (received) changed since the last time sermon checked the line. Options: -e : change event handling mode 0 : don't display 1 : display the state of the status lines when a change is detected 2 : display the state of the status lines when a change is detected and stop display (default: don't display) -n : give the name of the device to monitor (default: /dev/ser1) -p : period of the sample in mili second (default: 100 ms) -d : trigger delay (number of columns displayed before stop when trigged) (default: 30 columns) -m : trigger mode 0 : level 0 1 : level 1 2 : edge 0 to 1 3 : edge 1 to 0 (default: 0 (level 0)) -c : trigger channel 0 : Rx 1 : Tx 2 : DTR 3 : RTS 4 : BRK_TX (on Tx line) 5 : DSR 6 : CTS 7 : DCD 8 : RI 9 : PAR 10 : FRM 11 : OVR 12 : BRK_RX (on Rx line) (default: none) -t : trigger enabled (default: disabled) -T : trigger number (default: 0) -P : priority of the process (default: 4) -l : name of the log file to write (default: none) -L : name of the log file to read (default: none) -h : store time in log file every seconds (0 : do not store) (default: 5 s) Latest versions of SERMON on http://www.multimania.com/disableu/qnx
And here is a dump of the text screen :
And here is a dump of the text screen when you replay a log file :
Download it now : sermon04.gz or from QUICS (already 876 downloads)
For comment, mail me at : arnauldNO@SPAMdisableu.net
If you want the source code, fill the form below, and i will send you sources :Top
Revision 0.4 : Add Framing error, parity error, break on rx and overrun status lines.
Add log and replay
Revision 0.3 : add ability to modify DTR, RTS and BRK
Revision 0.2 : add Rx and Tx
Revision 0.1 : initial revision
Back to QNX page
Last modification : 04/23/2004