cereal - EPOCH Serial Interface Emulator

Program cereal emulates the EPOCH V3 serial interface hardware:

                  Serial   H/W    Serial
    Writer ----->  I/F   <------>  I/F   -----> Reader(s)
                  Board    Link   Board

cereal provides a virtual software channel between a writer and one or more readers. The writer and readers are presented with the same network-based device interface that they use to communicate with the actual device drivers.

cereal creates a Channel object for each link it is emulating. Associated with each Channel object are:

The Readers and Writers accept device configuration commands from their clients, but ignore everything but the baud rate. Other commands (e.g., device locks) are simply acknowledged.

When a write command is received from a Writer, the length of time required to output the specified amount of data at the current baud rate is used to compute the absolute time at which the data will be broadcast to the Readers and a write completion message will be returned to the Writer.


% cereal [-baud rate] [-daemon] [-debug] [-vperror]
         writerPort1 readerPort1 [... writerPortN readerPortN]


-baud rate
specifies the initial baud rate for subsequent links on the command line; the default rate is 2400 baud.
causes cereal to become a daemon process.
enables debug output (written to stdout).
turns vperror() message output on. vperror() messages are low-level error messages generated by libgpl functions; normally, they are disabled. If enabled, the messages are output to stderr.
writePort1 readerPort1 [... writerPortN readerPortN]
specifies the links to be emulated. Each link is specified as a network server port (i.e., service name or port number) to which writers connect and a second port to which readers connect.

Alex Measday  /  E-mail