These tests are brought to you by the letter `q'.

When you start the test, you should see:

  You have the following choices:
    1 - Reset the struct termios
    2 - Look at the current termios setting
    3 - Change the line characteristics
    4 - Test canonical input
    5 - Test raw input
    9 - Exit
  Enter your choice (1 to 5 or 9, followed by a carriage return): 

The individual tests are briefly described below:


1. Reset the struct termios.

Included just in case you get into trouble. More than likely, if you are in
trouble, neither input nor output are likely to work and this won't help. But
hey, it should give you some warm fuzzy feeling that its there...


2. Look at the current termios setting

Dumps the current state of the termios settings in hex and with symbolic flag
names.


3. Change the line characteristics

Allows you to change the line speed, parity, number of data bits and number of
stop bits. You must supply a delay before the change takes effect. This gives
you time to switch your terminal settings to continue with the test.

WARNING: Minicom under Linux gets extremely unhappy (as does the /dev/ttyS?
underlying devices) if you change the line characteristics and do not make the
corresponding change in the terminal emulator.


4. Test canonical input

Simple test of canonical or cooked input mode. Try typing some tabs and/or control characters and make sure that you can backspace over them properly.


5. Test raw input

The line is placed into raw mode and four separate test are done:

VMIN=0, VTIME=0
        Each letter you type should produce a line of output.
        The `count' should be quite large, since (as you correctly
        pointed out) the read is non-blocking.  The time should be
        the interval between typing characters.
        Type a `q' to finish the test.
VMIN=0, VTIME=20
        Again, each letter should produce a line of output.  The
        `count' should be much smaller -- the read is non-blocking
        but has a timeout of 2 seconds, so the count should be about
        half the `interval'.
        Type a `q' to finish the test.
VMIN=5, VTIME=0
        A line should be produced for every 5 characters typed.  The
        count should be 1.  This is a blocking read.
        Type a `q' as the first character of a group of 5 to finish
        the test.
VMIN=5, VTIME=20
        Type a character.  Two seconds later a line should be printed.
        Count should be 1.  Type a character, and another within 2 seconds.
        Two seconds after last character (or right after the 5th character)
        a line should be printed.
        Type a `q' as the first character of a group to finish the test.


9. Exit

Gets you out of the test.


Clear???


---
Eric Norum
eric@skatter.usask.ca
Saskatchewan Accelerator Laboratory
University of Saskatchewan
Saskatoon, Canada.

Charles-Antoine Gauthier
Software Engineering Group
Institute for Information Technology
National Research Council of Canada
charles.gauthier@nrc.ca

