#ifndef __GSMMODEM_H__ #define __GSMMODEM_H__ /* using http://sourceforge.net/projects/libserial/ */ #include "IGsmModem.h" #include #include #include "Sms.h" class SerialPort; class GsmModem : public IGsmModem { public: GsmModem(SerialPort& serialport); virtual ~GsmModem() {} 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); virtual void DeleteSms(std::string smsIndex); virtual int DeleteAllSms(); private: std::string GetResponse(); std::string Command(std::string command, std::string term = "OK\r\n"); void HandlePincode(); void WaitForSimcard(); bool _timeout; SerialPort& m_port; }; class DebugGsmModem : public IGsmModem { public: DebugGsmModem() : _print(false) {} DebugGsmModem(bool print) : _print(print) {} virtual std::vector ReadSms(bool readAll=false); virtual void SendSms(std::string to, std::string message, bool allowMultipart); virtual void DeleteSms(std::string smsIndex) {} virtual int DeleteAllSms() { return 0;} std::string GetTo() {return _to;} std::string GetMessage() {return _message;} bool GetMultipart() {return _multipart;} private: std::string _to; std::string _message; bool _multipart; bool _print; }; #endif // __GSMMODEM_H__