--- smsdaemon/GsmModem.h 2008/06/09 18:15:53 26 +++ smsdaemon/ModemTransceiver.h 2008/12/12 12:54:27 180 @@ -1,35 +1,47 @@ -#ifndef __GSMMODEM_H__ -#define __GSMMODEM_H__ +#ifndef __MODEMTRANSCEIVER_H__ +#define __MODEMTRANSCEIVER_H__ -/* using http://sourceforge.net/projects/libserial/ - */ +#include "ISmsTransceiver.h" + #include #include -#include "SerialPort.h" #include "Sms.h" -class GsmModem +class SerialPort; + + +class ModemTransceiver : public ISmsTransceiver { public: - GsmModem(SerialPort& serialport); - virtual ~GsmModem() {} + ModemTransceiver(SerialPort& serialport); + virtual ~ModemTransceiver() {} + + void Init(); + + virtual void SendSms(std::string to, std::string message, bool allowMultipart); + void SendSmsPdu(std::string pdu, int len); + virtual std::vector ReadSms(bool readAll=false); - void SendSms(std::string to, std::string message); - std::vector ReadSms(bool readAll=false); - void DeleteSms(std::string smsIndex); - int DeleteAllSms(); + virtual void DeleteSms(std::string smsIndex); + virtual int DeleteAllSms(); private: - void Init(); std::string GetResponse(); std::string Command(std::string command, std::string term = "OK\r\n"); + //decode an CMGF=1 text string + SMS FromRawString(const std::string& input); + SMS FromPduString(const std::string& input); + + void HandlePincode(); + void WaitForSimcard(); + bool _timeout; SerialPort& m_port; }; -#endif // __GSMMODEM_H__ +#endif // __MODEMTRANSCEIVER_H__