1 |
torben |
149 |
#ifndef __MODEMTRANSCEIVER_H__ |
2 |
|
|
#define __MODEMTRANSCEIVER_H__ |
3 |
torben |
26 |
|
4 |
|
|
|
5 |
|
|
|
6 |
torben |
149 |
#include "ISmsTransceiver.h" |
7 |
|
|
|
8 |
torben |
26 |
#include <string> |
9 |
|
|
#include <vector> |
10 |
|
|
|
11 |
|
|
#include "Sms.h" |
12 |
|
|
|
13 |
torben |
53 |
class SerialPort; |
14 |
torben |
44 |
|
15 |
|
|
|
16 |
torben |
149 |
class ModemTransceiver : public ISmsTransceiver |
17 |
torben |
44 |
{ |
18 |
|
|
public: |
19 |
torben |
149 |
ModemTransceiver(SerialPort& serialport); |
20 |
|
|
virtual ~ModemTransceiver() {} |
21 |
torben |
26 |
|
22 |
torben |
57 |
void Init(); |
23 |
torben |
26 |
|
24 |
torben |
63 |
virtual void SendSms(std::string to, std::string message, bool allowMultipart); |
25 |
torben |
196 |
void SendSmsPdu(std::string pdu, int len); |
26 |
torben |
59 |
|
27 |
torben |
144 |
virtual std::vector<SMS> ReadSms(bool readAll=false); |
28 |
|
|
|
29 |
|
|
virtual void DeleteSms(std::string smsIndex); |
30 |
|
|
virtual int DeleteAllSms(); |
31 |
torben |
26 |
private: |
32 |
|
|
std::string GetResponse(); |
33 |
|
|
std::string Command(std::string command, std::string term = "OK\r\n"); |
34 |
|
|
|
35 |
torben |
180 |
//decode an CMGF=1 text string |
36 |
|
|
SMS FromRawString(const std::string& input); |
37 |
|
|
SMS FromPduString(const std::string& input); |
38 |
|
|
|
39 |
torben |
105 |
void HandlePincode(); |
40 |
|
|
void WaitForSimcard(); |
41 |
|
|
|
42 |
torben |
57 |
bool _timeout; |
43 |
torben |
26 |
SerialPort& m_port; |
44 |
|
|
}; |
45 |
|
|
|
46 |
|
|
|
47 |
torben |
149 |
#endif // __MODEMTRANSCEIVER_H__ |