SERMON

Sermon is a graphical (text mode) tool for QNX4 which monitors serial line activity.

Description Restrictions Use message Screen shot Download History

Cette page en français

Description

Top

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

Restrictions

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.

Top


Use message

Top

SERMON      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
Top

Screen shot

Top

And here is a dump of the text screen :

And here is a dump of the text screen when you replay a log file :

Top

Download

Top

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 :

Your E-mail :
Top

History

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

Top

Back to QNX page

Last modification : 04/23/2004