PTLib  Version 2.12.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
modem.h
Go to the documentation of this file.
1 /*
2  * modem.h
3  *
4  * AT command set modem on asynchonous port class.
5  *
6  * Portable Windows Library
7  *
8  * Copyright (c) 1993-2002 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Portable Windows Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Contributor(s): ______________________________________.
25  *
26  * $Revision: 24177 $
27  * $Author: rjongbloed $
28  * $Date: 2010-04-05 21:52:04 +1000 (Mon, 05 Apr 2010) $
29  */
30 
31 #ifndef PTLIB_MODEM_H
32 #define PTLIB_MODEM_H
33 
34 #ifdef P_USE_PRAGMA
35 #pragma interface
36 #endif
37 
38 #include <ptlib.h>
39 
40 #include <ptlib/serchan.h>
41 
42 
61 class PModem : public PSerialChannel
62 {
64 
65  public:
72  PModem();
73  PModem(
74  const PString & port,
75  DWORD speed = 0,
76  BYTE data = 0,
77  Parity parity = DefaultParity,
78  BYTE stop = 0,
79  FlowControl inputFlow = DefaultFlowControl,
80  FlowControl outputFlow = DefaultFlowControl
81  );
82 
83 #if P_CONFIG_FILE
84 
88  PModem(
89  PConfig & cfg
90  );
91 #endif // P_CONFIG_FILE
92 
93 
94  // Overrides from class PChannel
95  virtual PBoolean Close();
96  // Close the modem serial port channel.
97 
98 
99  // Overrides from class PSerialChannel
108  virtual PBoolean Open(
109  const PString & port,
110  DWORD speed = 0,
111  BYTE data = 0,
112  Parity parity = DefaultParity,
113  BYTE stop = 0,
114  FlowControl inputFlow = DefaultFlowControl,
115  FlowControl outputFlow = DefaultFlowControl
116  );
117 
118 #if P_CONFIG_FILE
119 
126  virtual PBoolean Open(
127  PConfig & cfg
128  );
129 
130  virtual void SaveSettings(
131  PConfig & cfg
132  );
133  // Save the current modem serial port settings into the configuration file.
134 #endif // P_CONFIG_FILE
135 
136 
137  // New member functions
145  void SetInitString(
146  const PString & str
147  );
148 
157  PString GetInitString() const;
158 
164  PBoolean CanInitialise() const;
165 
176 
184  void SetDeinitString(
185  const PString & str
186  );
187 
196  PString GetDeinitString() const;
197 
203  PBoolean CanDeinitialise() const;
204 
215 
223  void SetPreDialString(
224  const PString & str
225  );
226 
235  PString GetPreDialString() const;
236 
245  void SetPostDialString(
246  const PString & str
247  );
248 
257  PString GetPostDialString() const;
258 
268  void SetBusyString(
269  const PString & str
270  );
271 
280  PString GetBusyString() const;
281 
291  void SetNoCarrierString(
292  const PString & str
293  );
294 
303  PString GetNoCarrierString() const;
304 
314  void SetConnectString(
315  const PString & str
316  );
317 
326  PString GetConnectString() const;
327 
333  PBoolean CanDial() const;
334 
348  PBoolean Dial(const PString & number);
349 
357  void SetHangUpString(
358  const PString & str
359  );
360 
369  PString GetHangUpString() const;
370 
376  PBoolean CanHangUp() const;
377 
387  PBoolean HangUp();
388 
394  PBoolean CanSendUser() const;
395 
405  const PString & str
406  );
407 
408  void Abort();
409  // Abort the current meta-string command operation eg dial, hang up etc.
410 
419  PBoolean CanRead() const;
420 
421  enum Status {
439  };
440  // Modem object states.
441 
447  Status GetStatus() const;
448 
449 
450  protected:
451  // Member variables
454  // Modem command meta-strings.
455 
457  // Current modem status
458 };
459 
460 
461 #endif // PTLIB_MODEM_H
462 
463 
464 // End Of File ///////////////////////////////////////////////////////////////