--- smsdaemon/main.cpp 2008/06/10 15:34:19 36 +++ smsdaemon/main.cpp 2008/06/16 06:46:56 85 @@ -1,4 +1,3 @@ -#include #include #include @@ -58,22 +57,31 @@ } else { - modem.SendSms(sms[i].sender, "Unknown command!"); + modem.SendSms(sms[i].sender, "Unknown command!", false); } modem.DeleteSms(sms[i].sms_index); cmn->smsCounter.incomming++; } - if (sms.size() == 0) - Util::Sleep(10); + cmn->taskManager.ExecuteTasks(); + if (cmn->isDebug && kbhit()) break; + Util::Sleep(10); + } } +bool sms_exit(int exitcode) +{ + if (Common::instance()->isDaemon) + daemonCleanup(); + + exit(exitcode); +} int main(int argc, char* argv[]) { @@ -101,6 +109,7 @@ cmn->logMessage("--------------------------------"); + cmn->taskManager.LoadTasks(); cmn->pluginManager.LoadPlugins(); SerialPort port("/dev/ttyS1" ); @@ -115,19 +124,40 @@ catch(std::exception &e) { cmn->logMessage( string("PortOpen Exception: ") + e.what() ); - exit(1); + sms_exit(1); } GsmModem modem(port); + try + { + modem.Init(); + } + catch (std::exception& e) + { + cmn->logMessage( string("GsmModem Exception: ") + e.what() ); + sms_exit(2); + } + ////////////////////////////////// cmn->logMessage("SMS daemon started"); modem.DeleteAllSms(); - - main_loop(modem); + + try + { + main_loop(modem); + } + catch (std::exception& e) + { + cmn->logMessage( e.what() ); + } + catch (...) + { + cmn->logMessage( "Caught unknown exception" ); + } cmn->logMessage( cmn->getStatusMessage() );