PModem Class Reference

#include <modem.h>

Inheritance diagram for PModem:

PSerialChannel PChannel PObject List of all members.

Public Types

 Unopened
 Has not been opened yet.
 Uninitialised
 Is open but has not yet been initialised.
 Initialising
 Is currently initialising the modem.
 Initialised
 Has been initialised but is not connected.
 InitialiseFailed
 Initialisation sequence failed.
 Dialling
 Is currently dialling.
 DialFailed
 Dial failed.
 AwaitingResponse
 Dialling in progress, awaiting connection.
 LineBusy
 Dial failed due to line busy.
 NoCarrier
 Dial failed due to no carrier.
 Connected
 Dial was successful and modem has connected.
 HangingUp
 Is currently hanging up the modem.
 HangUpFailed
 The hang up failed.
 Deinitialising
 is currently de-initialising the modem
 DeinitialiseFailed
 The de-initialisation failed.
 SendingUserCommand
 Is currently sending a user command.
 NumStatuses
enum  Status {
  Unopened, Uninitialised, Initialising, Initialised,
  InitialiseFailed, Dialling, DialFailed, AwaitingResponse,
  LineBusy, NoCarrier, Connected, HangingUp,
  HangUpFailed, Deinitialising, DeinitialiseFailed, SendingUserCommand,
  NumStatuses
}

Public Member Functions

 PModem ()
 PModem (const PString &port, DWORD speed=0, BYTE data=0, Parity parity=DefaultParity, BYTE stop=0, FlowControl inputFlow=DefaultFlowControl, FlowControl outputFlow=DefaultFlowControl)
virtual PBoolean Close ()
virtual PBoolean Open (const PString &port, DWORD speed=0, BYTE data=0, Parity parity=DefaultParity, BYTE stop=0, FlowControl inputFlow=DefaultFlowControl, FlowControl outputFlow=DefaultFlowControl)
void SetInitString (const PString &str)
PString GetInitString () const
PBoolean CanInitialise () const
PBoolean Initialise ()
void SetDeinitString (const PString &str)
PString GetDeinitString () const
PBoolean CanDeinitialise () const
PBoolean Deinitialise ()
void SetPreDialString (const PString &str)
PString GetPreDialString () const
void SetPostDialString (const PString &str)
PString GetPostDialString () const
void SetBusyString (const PString &str)
PString GetBusyString () const
void SetNoCarrierString (const PString &str)
PString GetNoCarrierString () const
void SetConnectString (const PString &str)
PString GetConnectString () const
PBoolean CanDial () const
PBoolean Dial (const PString &number)
void SetHangUpString (const PString &str)
PString GetHangUpString () const
PBoolean CanHangUp () const
PBoolean HangUp ()
PBoolean CanSendUser () const
PBoolean SendUser (const PString &str)
void Abort ()
PBoolean CanRead () const
Status GetStatus () const

Protected Attributes

PString initCmd
PString deinitCmd
PString preDialCmd
PString postDialCmd
PString busyReply
PString noCarrierReply
PString connectReply
PString hangUpCmd
Status status

Detailed Description

A class representing a modem attached to a serial port. This adds the usual modem operations to the basic serial port.

A modem object is always in a particular state. This state determines what operations are allowed which then move the object to other states. The operations are the exchange of strings in "chat" script.

The following defaults are used for command strings: initialise ATZ deinitialise +++ pre-dial ATDT post-dial busy reply BUSY no carrier reply NO CARRIER connect reply CONNECT hang up +++


Member Enumeration Documentation

enum PModem::Status

Enumerator:
Unopened  Has not been opened yet.
Uninitialised  Is open but has not yet been initialised.
Initialising  Is currently initialising the modem.
Initialised  Has been initialised but is not connected.
InitialiseFailed  Initialisation sequence failed.
Dialling  Is currently dialling.
DialFailed  Dial failed.
AwaitingResponse  Dialling in progress, awaiting connection.
LineBusy  Dial failed due to line busy.
NoCarrier  Dial failed due to no carrier.
Connected  Dial was successful and modem has connected.
HangingUp  Is currently hanging up the modem.
HangUpFailed  The hang up failed.
Deinitialising  is currently de-initialising the modem
DeinitialiseFailed  The de-initialisation failed.
SendingUserCommand  Is currently sending a user command.
NumStatuses 


Constructor & Destructor Documentation

PModem::PModem (  ) 

Create a modem object on the serial port specified. If no port was specified do not open it. It does not initially have a valid port name.

See the PSerialChannel class for more information on the parameters.

PModem::PModem ( const PString port,
DWORD  speed = 0,
BYTE  data = 0,
Parity  parity = DefaultParity,
BYTE  stop = 0,
FlowControl  inputFlow = DefaultFlowControl,
FlowControl  outputFlow = DefaultFlowControl 
)

Parameters:
port  Serial port name to open.
speed  Speed of serial port.
data  Number of data bits for serial port.
parity  Parity for serial port.
stop  Number of stop bits for serial port.
inputFlow  Input flow control.
outputFlow  Output flow control.


Member Function Documentation

void PModem::Abort (  ) 

PBoolean PModem::CanDeinitialise (  )  const

The modem is in a state that allows the de-initialise to start.

Returns:
PTrue if the Deinitialise() function may proceeed.

PBoolean PModem::CanDial (  )  const

The modem is in a state that allows the dial to start.

Returns:
PTrue if the Dial() function may proceeed.

PBoolean PModem::CanHangUp (  )  const

The modem is in a state that allows the hang up to start.

Returns:
PTrue if the HangUp() function may proceeed.

PBoolean PModem::CanInitialise (  )  const

The modem is in a state that allows the initialise to start.

Returns:
PTrue if the Initialise() function may proceeed.

PBoolean PModem::CanRead (  )  const

The modem is in a state that allows the user application to read from the channel. Reading while this is PTrue can interfere with the operation of the meta-string processing. This function is only usefull when multi-threading is used.

Returns:
PTrue if Read() operations are "safe".

PBoolean PModem::CanSendUser (  )  const

The modem is in a state that allows the user command to start.

Returns:
PTrue if the SendUser() function may proceeed.

virtual PBoolean PModem::Close (  )  [virtual]

Close the channel, shutting down the link to the data source.

Returns:
PTrue if the channel successfully closed.

Reimplemented from PSerialChannel.

PBoolean PModem::Deinitialise (  ) 

Send the de-initialisation meta-command string to the modem. The return value indicates that the conditions for the operation to start were met, ie the serial port was open etc and the command was successfully sent with all replies met.

Returns:
PTrue if command string sent successfully and the objects state has changed.

PBoolean PModem::Dial ( const PString number  ) 

Send the dial meta-command strings to the modem. The return value indicates that the conditions for the operation to start were met, ie the serial port was open etc and the command was successfully sent with all replies met.

The string sent to the modem is the concatenation of the pre-dial string, a , the number parameter and the post-dial string.

Returns:
PTrue if command string sent successfully and the objects state has changed.

PString PModem::GetBusyString (  )  const

Get the modem busy response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for busy response command.

PString PModem::GetConnectString (  )  const

Get the modem connect response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for connect response command.

PString PModem::GetDeinitString (  )  const

Get the modem de-initialisation meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for de-initialisation command.

PString PModem::GetHangUpString (  )  const

Get the modem hang up meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for hang up command.

PString PModem::GetInitString (  )  const

Get the modem initialisation meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for initialisation command.

PString PModem::GetNoCarrierString (  )  const

Get the modem no carrier response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for no carrier response command.

PString PModem::GetPostDialString (  )  const

Get the modem post-dial meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for post-dial command.

PString PModem::GetPreDialString (  )  const

Get the modem pre-dial meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Returns:
string for pre-dial command.

Status PModem::GetStatus (  )  const

Get the modem objects current state.

Returns:
modem status.

PBoolean PModem::HangUp (  ) 

Send the hang up meta-command string to the modem. The return value indicates that the conditions for the operation to start were met, ie the serial port was open etc and the command was successfully sent with all replies met.

Returns:
PTrue if command string sent successfully and the objects state has changed.

PBoolean PModem::Initialise (  ) 

Send the initialisation meta-command string to the modem. The return value indicates that the conditions for the operation to start were met, ie the serial port was open etc and the command was successfully sent with all replies met.

Returns:
PTrue if command string sent successfully and the objects state has changed.

virtual PBoolean PModem::Open ( const PString port,
DWORD  speed = 0,
BYTE  data = 0,
Parity  parity = DefaultParity,
BYTE  stop = 0,
FlowControl  inputFlow = DefaultFlowControl,
FlowControl  outputFlow = DefaultFlowControl 
) [virtual]

Open the modem serial channel on the specified port.

See the PSerialChannel class for more information on the parameters.

Returns:
PTrue if the modem serial port was successfully opened.
Parameters:
port  Serial port name to open.
speed  Speed of serial port.
data  Number of data bits for serial port.
parity  Parity for serial port.
stop  Number of stop bits for serial port.
inputFlow  Input flow control.
outputFlow  Output flow control.

PBoolean PModem::SendUser ( const PString str  ) 

Send an arbitrary user meta-command string to the modem. The return value indicates that the conditions for the operation to start were met, ie the serial port was open etc and the command was successfully sent with all replies met.

Returns:
PTrue if command string sent successfully.
Parameters:
str  User command string to send.

void PModem::SetBusyString ( const PString str  ) 

Set the modem busy response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string. Also the and commands do not operate and will simply terminate the string match.

Parameters:
str  New busy response command string.

void PModem::SetConnectString ( const PString str  ) 

Set the modem connect response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string. Also the and commands do not operate and will simply terminate the string match.

Parameters:
str  New connect response command string.

void PModem::SetDeinitString ( const PString str  ) 

Set the modem de-initialisation meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string.

Parameters:
str  New de-initialisation command string.

void PModem::SetHangUpString ( const PString str  ) 

Set the modem hang up meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string.

Parameters:
str  New hang up command string.

void PModem::SetInitString ( const PString str  ) 

Set the modem initialisation meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string.

Parameters:
str  New initialisation command string.

void PModem::SetNoCarrierString ( const PString str  ) 

Set the modem no carrier response meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string. Also the and commands do not operate and will simply terminate the string match.

Parameters:
str  New no carrier response command string.

void PModem::SetPostDialString ( const PString str  ) 

Set the modem post-dial meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is not an implied before the string, unlike the pre-dial string.

Parameters:
str  New post-dial command string.

void PModem::SetPreDialString ( const PString str  ) 

Set the modem pre-dial meta-command string.

See the PChannel::SendCommandString() function for more information on the format of the command string.

Note there is an implied before the string.

Parameters:
str  New pre-dial command string.


Member Data Documentation

PString PModem::busyReply [protected]

PString PModem::connectReply [protected]

PString PModem::deinitCmd [protected]

PString PModem::hangUpCmd [protected]

PString PModem::initCmd [protected]

PString PModem::noCarrierReply [protected]

PString PModem::postDialCmd [protected]

PString PModem::preDialCmd [protected]

Status PModem::status [protected]


The documentation for this class was generated from the following file:
Generated on Thu May 27 01:36:49 2010 for PTLib by  doxygen 1.4.7