|
|
The serial port is an internal class which is attached to and then serviced by a specified SerialService thread. Derived versions of this class offer specific functionality such as serial integration protocols.
The TTYPort and TTYService classes are used to form thread-pool serviced serial I/O protocol sets. These can be used when one has a large number of serial devices to manage, and a single (or limited number of) thread(s) can then be used to service the tty port objects present. Each tty port supports a timer control and several virtual methods that the service thread can call when events occur. This model provides for "callback" event management, whereby the service thread performs a "callback" into the port object when events occur. Specific events supported include the expiration of a TTYPort timer, pending input data waiting to be read, and "sighup" connection breaks.
SerialPort (SerialService *svc, const char *name)
| SerialPort |
[protected]
Construct a tty serial port for a named serial device.
Parameters:
svc | pool thread object. |
name | of tty port. |
~SerialPort ()
| ~SerialPort |
[protected virtual]
Disconnect the Serial Port from the service pool thread and shutdown the port.
void setDetectPending ( bool )
| setDetectPending |
[protected]
Used to indicate if the service thread should monitor pending data for us.
bool getDetectPending ( void )
| getDetectPending |
[protected const]
Get the current state of the DetectPending flag.
void setDetectOutput ( bool )
| setDetectOutput |
[protected]
Used to indicate if output ready monitoring should be performed by the service thread.
bool getDetectOutput ( void )
| getDetectOutput |
[protected const]
Get the current state of the DetectOutput flag.
void Expired (void)
| Expired |
[protected virtual]
Called by the service thread when the objects timer has expired.
void Pending (void)
| Pending |
[protected virtual]
Called by the service thread when input data is pending for this tty port. Effected by setPacketInput and by setLineInput.
void Disconnect (void)
| Disconnect |
[protected virtual]
Called by the service thread when an exception has occured such as a hangup.
inline int Output (void *buf, int len)
| Output |
[protected]
Transmit "send" data to the serial port. This is not public since it's meant to support internal protocols rather than direct public access to the device.
Parameters:
address | of buffer to send. |
len | of bytes to send. |
Returns: number of bytes send.
void Output (void)
| Output |
[protected virtual]
Perform when output is available for sending data.
inline int Input (void *buf, int len)
| Input |
[protected]
Receive "input" for pending data from the serial port. This is not a public member since it's meant to support internal protocols rather than direct external access to the device.
Parameters:
address | of buffer to input. |
len | of input buffer used. |
Returns: number of bytes received.
void setTimer (timeout_t timeout = 0)
| setTimer |
Derived setTimer to notify the service thread pool of changes in expected timeout. This allows SerialService to reschedule all timers.
Parameters:
timeout | in milliseconds. |
Reimplemented from TimerPort.
void incTimer (timeout_t timeout)
| incTimer |
Derived incTimer to notify the service thread pool of a change in expected timeout. This allows SerialService to reschedule all timers.
Reimplemented from TimerPort.