--- smsdaemon/GsmModem.cpp 2008/06/11 10:31:42 50 +++ smsdaemon/GsmModem.cpp 2008/06/11 16:08:37 57 @@ -26,7 +26,6 @@ GsmModem::GsmModem(SerialPort& serialport) : m_port(serialport) { - Init(); } @@ -49,6 +48,7 @@ { time_t start,now; start = time(0); + _timeout = false; if (term != "> ") command.append("\r"); //Dont append CarriageReturn if sending SMS @@ -74,6 +74,7 @@ if ( (now-start) > 10 ) { Common::instance()->logMessage( string("GsmModem::Command time out --") + command); + _timeout = true; break; } } @@ -170,6 +171,9 @@ void GsmModem::Init() { Command( "ATZ" ); //Reset any previous setup + if (_timeout) + throw std::runtime_error("Modem did not respond!"); + Command( "AT\\Q3" ); //Hardware flow control Command( "ATE0" ); //Disable echo