--- smsdaemon/GsmModem.cpp 2008/06/09 18:15:53 26 +++ smsdaemon/GsmModem.cpp 2008/06/11 10:31:42 50 @@ -44,18 +44,20 @@ return str; } + string GsmModem::Command(string command, string term) { time_t start,now; start = time(0); - command.append("\r"); + if (term != "> ") + command.append("\r"); //Dont append CarriageReturn if sending SMS + m_port.Write(command); - Util::Sleep(25); + Util::Sleep(1); string response = GetResponse(); - unsigned int tlen = term.length(); while ( 1 ) { @@ -66,7 +68,7 @@ } response += GetResponse(); - Util::Sleep(25); + Util::Sleep(1); now = time(0); if ( (now-start) > 10 ) @@ -74,8 +76,6 @@ Common::instance()->logMessage( string("GsmModem::Command time out --") + command); break; } - - } Util::Sleep(5); @@ -132,11 +132,19 @@ Command(line1,"> "); + if (message.length() > 160) + { + message = message.substr(0,160); + Common::instance()->logMessage( "Trunkating message! "); + } + + message.append("\032"); // \032 == Ctrl+Z + + Command( message ); //In textmode limit to 160 bytes - message.append("\032\r"); // \032 == Ctrl+Z - Command(message); Util::Sleep(50); //Give the modem some time to send the sms and be ready again + Common::instance()->smsCounter.outgoing++; } void GsmModem::DeleteSms(std::string smsIndex) @@ -162,6 +170,7 @@ void GsmModem::Init() { Command( "ATZ" ); //Reset any previous setup + Command( "AT\\Q3" ); //Hardware flow control Command( "ATE0" ); //Disable echo