#ifndef __MODEMTRANSCEIVER_H__ #define __MODEMTRANSCEIVER_H__ #include "ISmsTransceiver.h" #include #include #include "Sms.h" class SerialPort; class ModemTransceiver : public ISmsTransceiver { public: 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 DeleteSms(std::string smsIndex); private: 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 // __MODEMTRANSCEIVER_H__