--- smsdaemon/SmsDaemon.cpp 2008/06/16 09:04:05 88 +++ smsdaemon/SmsDaemon.cpp 2008/12/12 12:54:27 180 @@ -3,43 +3,59 @@ #include #include -#include "common.h" +#include -#include "GsmModem.h" +#include "Common.h" + +#include "ISmsTransceiver.h" #include "Plugin.h" #include "kbhit.h" -#include "util.h" +#include "Util.h" -using namespace std; +#include "TaskManager.h" +#include "PluginManager.h" +#include "ConfigFile.h" +#include "Logger.h" +#include "version.h" + +using namespace std; void SmsDaemon::CreateLogMessage(SMS& sms,bool hasPlugin) { ostringstream os; - os << "Recieved sms from " << sms.sender << " ; command=" << GetSmsCommand(sms); + os << "Recieved sms from " << sms.GetSender() << " ; command=" << sms.ExtractCommand(); if (!hasPlugin) os << " -- PLUGIN NOT FOUND"; - Common::instance()->logMessage(os.str()); + Logger::logMessage(os.str()); } void SmsDaemon::CheckSms() { + const int INTERVAL = 1000; //no of milliseconds between sms checks + timeval now = Util::GetTimeOfDay(); + + if ( Util::mTimeDiff(_lastSmsCheck,now) < INTERVAL) + return; + + _lastSmsCheck = now; + Common* cmn = Common::instance(); - PluginManager& manager = cmn->pluginManager; + PluginManager* manager = cmn->GetPluginManager(); vector sms = _modem.ReadSms(); for (unsigned int i=0; iGetPlugin(cmd); CreateLogMessage(sms[i], pl != 0); @@ -49,10 +65,9 @@ } else { - _modem.SendSms(sms[i].sender, "Unknown command!", false); + _modem.SendSms(sms[i].GetSender(), "Unknown command!", false); } - _modem.DeleteSms(sms[i].sms_index); cmn->smsCounter.incomming++; } } @@ -71,12 +86,12 @@ CheckSms(); - cmn->taskManager.ExecuteTasks(); + cmn->GetTaskManager()->ExecuteTasks(_modem); if (cmn->isDebug && kbhit()) break; - Util::Sleep(10); + Util::Sleep(100); } } @@ -84,15 +99,21 @@ void SmsDaemon::Start() { Common* cmn = Common::instance(); + string transceiver = cmn->GetConfigfile()->GetValue("smsdaemon","transceiver"); + srand(time(0)); cmn->daemonStart = time(0); + _lastSmsCheck = Util::GetTimeOfDay(); - cmn->logMessage("--------------------------------"); - - cmn->taskManager.LoadTasks(); - cmn->pluginManager.LoadPlugins(); - cmn->logMessage("SMS daemon started"); + Logger::logMessage("--------------------------------"); + Logger::logMessage( VERSION ); + Logger::logMessage( SVNVERSION ); + Logger::logMessage( string("Transceiver: ") + transceiver ); + + cmn->GetTaskManager()->LoadTasks(); + cmn->GetPluginManager()->LoadPlugins(); + Logger::logMessage("SMS daemon started"); _modem.DeleteAllSms(); @@ -102,12 +123,12 @@ } catch (std::exception& e) { - cmn->logMessage( e.what() ); + Logger::logMessage( e.what() ); } catch (...) { - cmn->logMessage( "Caught unknown exception" ); + Logger::logMessage( "Caught unknown exception" ); } - cmn->logMessage( cmn->getStatusMessage() ); + Logger::logMessage( cmn->getStatusMessage() ); }