PTLib
Version 2.10.4
|
This class defines an I/O channel that communicates via a serial port. More...
#include <serchan.h>
Public Member Functions | |
PBoolean | Close () |
Close the channel, shutting down the link to the data source. | |
Configuration functions | |
PBoolean | SetSpeed (DWORD speed) |
Set the speed (baud rate) of the serial channel. | |
DWORD | GetSpeed () const |
Get the speed (baud rate) of the serial channel. | |
PBoolean | SetDataBits (BYTE data) |
Set the data bits (5, 6, 7 or 8) of the serial port. | |
BYTE | GetDataBits () const |
Get the data bits (5, 6, 7 or 8) of the serial port. | |
PBoolean | SetParity (Parity parity) |
Set the parity of the serial port. | |
Parity | GetParity () const |
Get the parity of the serial port. | |
PBoolean | SetStopBits (BYTE stop) |
Set the stop bits (1 or 2) of the serial port. | |
BYTE | GetStopBits () const |
Get the stop bits (1 or 2) of the serial port. | |
PBoolean | SetInputFlowControl (FlowControl flowControl) |
Set the flow control (handshaking) protocol of the input to the serial port. | |
FlowControl | GetInputFlowControl () const |
Get the flow control (handshaking) protocol of the input to the serial port. | |
PBoolean | SetOutputFlowControl (FlowControl flowControl) |
Set the flow control (handshaking) protocol of the output to the serial port. | |
FlowControl | GetOutputFlowControl () const |
Get the flow control (handshaking) protocol of the output from the serial port. | |
virtual void | SaveSettings (PConfig &cfg) |
Save the current port settings into the configuration file. | |
Status functions | |
void | SetDTR (PBoolean state=true) |
Set the Data Terminal Ready signal of the serial port. | |
void | ClearDTR () |
Clear the Data Terminal Ready signal of the serial port. | |
void | SetRTS (PBoolean state=true) |
Set the Request To Send signal of the serial port. | |
void | ClearRTS () |
Clear the Request To Send signal of the serial port. | |
void | SetBreak (PBoolean state=true) |
Set the break condition of the serial port. | |
void | ClearBreak () |
Clear the break condition of the serial port. | |
PBoolean | GetCTS () |
Get the Clear To Send signal of the serial port. | |
PBoolean | GetDSR () |
Get the Data Set Ready signal of the serial port. | |
PBoolean | GetDCD () |
Get the Data Carrier Detect signal of the serial port. | |
PBoolean | GetRing () |
Get the Ring Indicator signal of the serial port. | |
Construction | |
enum | Parity { DefaultParity, NoParity, EvenParity, OddParity, MarkParity, SpaceParity } |
Configuration of serial port parity options. More... | |
enum | FlowControl { DefaultFlowControl, NoFlowControl, XonXoff, RtsCts } |
Configuration of serial port flow control options. More... | |
PSerialChannel () | |
Create a new serial channel object, but do not open it. | |
PSerialChannel (const PString &port, DWORD speed=0, BYTE data=0, Parity parity=DefaultParity, BYTE stop=0, FlowControl inputFlow=DefaultFlowControl, FlowControl outputFlow=DefaultFlowControl) | |
Create a serial channal. | |
PSerialChannel (PConfig &cfg) | |
Create a serial channal. | |
~PSerialChannel () | |
Close the serial channel on destruction. | |
Open functions | |
virtual PBoolean | Open (const PString &port, DWORD speed=0, BYTE data=0, Parity parity=DefaultParity, BYTE stop=0, FlowControl inputFlow=DefaultFlowControl, FlowControl outputFlow=DefaultFlowControl) |
Open a serial channal. | |
virtual PBoolean | Open (PConfig &cfg) |
Open a serial channal. | |
static PStringList | GetPortNames () |
Get a list of the available serial ports. |
This class defines an I/O channel that communicates via a serial port.
This is usually an RS-232 port.
Configuration of serial port parity options.
Create a new serial channel object, but do not open it.
PSerialChannel::PSerialChannel | ( | const PString & | port, |
DWORD | speed = 0 , |
||
BYTE | data = 0 , |
||
Parity | parity = DefaultParity , |
||
BYTE | stop = 0 , |
||
FlowControl | inputFlow = DefaultFlowControl , |
||
FlowControl | outputFlow = DefaultFlowControl |
||
) |
Create a serial channal.
The channel is opened it on the specified port and with the specified attributes.
port | The name of the serial port to connect to. This is a platform dependent string and woiuld rarely be a literal. The static function GetPortNames() can be used to find the platforms serial ports. |
speed | Serial port speed or baud rate. The actual values possible here are platform dependent, but the standard value of 300, 1200, 2400, 4800, 9600, 19200, 38400 always be legal. |
data | Number of data bits for serial port. The actual values possible here are platform dependent, but 7 and 8 should always be legal. |
parity | Parity for serial port. The actual values possible here are platform dependent, but NoParity , OddParity and EvenParity should always be legal. |
stop | Number of stop bits for serial port. The actual values possible here are platform dependent, but 1 and 2 should always be legal. |
inputFlow | Flow control for data from the remote system into this conputer. |
outputFlow | Flow control for data from this conputer out to remote system. |
PSerialChannel::PSerialChannel | ( | PConfig & | cfg | ) |
Create a serial channal.
The channel is opened using attributes obtained from standard variables in the configuration file. Note that it assumed that the correct configuration file section is already set.
cfg | Configuration file to read serial port attributes from. |
Close the serial channel on destruction.
void PSerialChannel::ClearBreak | ( | ) |
Clear the break condition of the serial port.
This is equivalent to SetBreak(false)
.
void PSerialChannel::ClearDTR | ( | ) |
Clear the Data Terminal Ready signal of the serial port.
This is equivalent to SetDTR(false)
.
void PSerialChannel::ClearRTS | ( | ) |
Clear the Request To Send signal of the serial port.
This is equivalent to SetRTS(false)
.
PBoolean PSerialChannel::Close | ( | ) | [virtual] |
Get the Clear To Send signal of the serial port.
BYTE PSerialChannel::GetDataBits | ( | ) | const |
Get the data bits (5, 6, 7 or 8) of the serial port.
Get the Data Carrier Detect signal of the serial port.
Get the Data Set Ready signal of the serial port.
Get the flow control (handshaking) protocol of the input to the serial port.
Get the flow control (handshaking) protocol of the output from the serial port.
Parity PSerialChannel::GetParity | ( | ) | const |
Get the parity of the serial port.
static PStringList PSerialChannel::GetPortNames | ( | ) | [static] |
Get a list of the available serial ports.
This returns a set of platform dependent strings which describe the serial ports of the computer. For example under unix it may be "ttyS0", under MS-DOS or NT it would be "COM1" and for the Macintosh it could be "Modem".
Get the Ring Indicator signal of the serial port.
DWORD PSerialChannel::GetSpeed | ( | ) | const |
Get the speed (baud rate) of the serial channel.
BYTE PSerialChannel::GetStopBits | ( | ) | const |
Get the stop bits (1 or 2) of the serial port.
virtual PBoolean PSerialChannel::Open | ( | const PString & | port, |
DWORD | speed = 0 , |
||
BYTE | data = 0 , |
||
Parity | parity = DefaultParity , |
||
BYTE | stop = 0 , |
||
FlowControl | inputFlow = DefaultFlowControl , |
||
FlowControl | outputFlow = DefaultFlowControl |
||
) | [virtual] |
Open a serial channal.
The channel is opened it on the specified port and with the specified attributes.
port | The name of the serial port to connect to. This is a platform dependent string and woiuld rarely be a literal. The static function GetPortNames() can be used to find the platforms serial ports. |
speed | Serial port speed or baud rate. The actual values possible here are platform dependent, but the standard value of 300, 1200, 2400, 4800, 9600, 19200, 38400 always be legal. |
data | Number of data bits for serial port. The actual values possible here are platform dependent, but 7 and 8 should always be legal. |
parity | Parity for serial port. The actual values possible here are platform dependent, but NoParity , OddParity and EvenParity should always be legal. |
stop | Number of stop bits for serial port. The actual values possible here are platform dependent, but 1 and 2 should always be legal. |
inputFlow | Flow control for data from the remote system into this conputer. |
outputFlow | Flow control for data from this conputer out to remote system. |
Reimplemented in PModem.
virtual PBoolean PSerialChannel::Open | ( | PConfig & | cfg | ) | [virtual] |
Open a serial channal.
The channel is opened using attributes obtained from standard variables in the configuration file. Note that it assumed that the correct configuration file section is already set.
cfg | Configuration file to read serial port attributes from. |
Reimplemented in PModem.
virtual void PSerialChannel::SaveSettings | ( | PConfig & | cfg | ) | [virtual] |
Save the current port settings into the configuration file.
Note that it assumed that the correct configuration file section is already set.
cfg | Configuration file to save setting into. |
Reimplemented in PModem.
void PSerialChannel::SetBreak | ( | PBoolean | state = true | ) |
Set the break condition of the serial port.
state | New state of the serial port break condition. |
PBoolean PSerialChannel::SetDataBits | ( | BYTE | data | ) |
Set the data bits (5, 6, 7 or 8) of the serial port.
data | New number of data bits for serial channel. |
void PSerialChannel::SetDTR | ( | PBoolean | state = true | ) |
Set the Data Terminal Ready signal of the serial port.
state | New state of the DTR signal. |
PBoolean PSerialChannel::SetInputFlowControl | ( | FlowControl | flowControl | ) |
Set the flow control (handshaking) protocol of the input to the serial port.
flowControl | New flow control for serial channel input. |
PBoolean PSerialChannel::SetOutputFlowControl | ( | FlowControl | flowControl | ) |
Set the flow control (handshaking) protocol of the output to the serial port.
flowControl | New flow control for serial channel output. |
PBoolean PSerialChannel::SetParity | ( | Parity | parity | ) |
Set the parity of the serial port.
parity | New parity option for serial channel. |
void PSerialChannel::SetRTS | ( | PBoolean | state = true | ) |
Set the Request To Send signal of the serial port.
state | New state of the RTS signal. |
PBoolean PSerialChannel::SetSpeed | ( | DWORD | speed | ) |
Set the speed (baud rate) of the serial channel.
speed | New speed for serial channel. |
PBoolean PSerialChannel::SetStopBits | ( | BYTE | stop | ) |
Set the stop bits (1 or 2) of the serial port.
stop | New number of stop bits for serial channel. |