/[projects]/smsdaemon/SmsDaemon.cpp
ViewVC logotype

Diff of /smsdaemon/SmsDaemon.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 88 by torben, Mon Jun 16 09:04:05 2008 UTC revision 151 by torben, Mon Dec 8 10:42:04 2008 UTC
# Line 3  Line 3 
3  #include <string>  #include <string>
4    
5  #include <sstream>  #include <sstream>
6    #include <stdlib.h>
7    
8  #include "common.h"  #include "common.h"
9    
10  #include "GsmModem.h"  #include "ISmsTransceiver.h"
11    
12  #include "Plugin.h"  #include "Plugin.h"
13  #include "kbhit.h"  #include "kbhit.h"
14    
15  #include "util.h"  #include "util.h"
16    
17  using namespace std;  #include "TaskManager.h"
18    #include "PluginManager.h"
19    #include "ConfigFile.h"
20    
21    #include "version.h"
22    
23    using namespace std;
24    
25  void SmsDaemon::CreateLogMessage(SMS& sms,bool hasPlugin)  void SmsDaemon::CreateLogMessage(SMS& sms,bool hasPlugin)
26  {  {
27          ostringstream os;          ostringstream os;
28          os << "Recieved sms from " << sms.sender << " ; command=" << GetSmsCommand(sms);          os << "Recieved sms from " << sms.GetSender() << " ; command=" << sms.ExtractCommand();
29          if (!hasPlugin)          if (!hasPlugin)
30                  os << " -- PLUGIN NOT FOUND";                  os << " -- PLUGIN NOT FOUND";
31    
# Line 28  void SmsDaemon::CreateLogMessage(SMS& sm Line 35  void SmsDaemon::CreateLogMessage(SMS& sm
35    
36  void SmsDaemon::CheckSms()  void SmsDaemon::CheckSms()
37  {  {
38            const int INTERVAL = 1000; //no of milliseconds between sms checks
39            timeval now = Util::GetTimeOfDay();
40    
41            if ( Util::mTimeDiff(_lastSmsCheck,now) < INTERVAL)
42                    return;
43    
44            _lastSmsCheck = now;
45    
46          Common* cmn = Common::instance();          Common* cmn = Common::instance();
47    
48          PluginManager& manager = cmn->pluginManager;          PluginManager* manager = cmn->GetPluginManager();
49          vector<SMS> sms = _modem.ReadSms();          vector<SMS> sms = _modem.ReadSms();
50    
51          for (unsigned int i=0; i<sms.size(); ++i)          for (unsigned int i=0; i<sms.size(); ++i)
52          {          {
53                  string cmd = GetSmsCommand(sms[i]);                  string cmd = sms[i].ExtractCommand();
54                                                    
55                  cmd = Util::str_tolower(cmd);                  cmd = Util::str_tolower(cmd);
56    
57                  Plugin* pl = manager.GetPlugin(cmd);                  Plugin* pl = manager->GetPlugin(cmd);
58    
59                  CreateLogMessage(sms[i], pl != 0);                  CreateLogMessage(sms[i], pl != 0);
60    
# Line 49  void SmsDaemon::CheckSms() Line 64  void SmsDaemon::CheckSms()
64                  }                  }
65                  else                  else
66                  {                  {
67                          _modem.SendSms(sms[i].sender, "Unknown command!", false);                          _modem.SendSms(sms[i].GetSender(), "Unknown command!", false);
68                  }                  }
69    
70                  _modem.DeleteSms(sms[i].sms_index);                  _modem.DeleteSms(sms[i].GetIndex());
71                  cmn->smsCounter.incomming++;                  cmn->smsCounter.incomming++;
72          }          }
73  }  }
# Line 71  void SmsDaemon::MainLoop() Line 86  void SmsDaemon::MainLoop()
86    
87                  CheckSms();                  CheckSms();
88    
89                  cmn->taskManager.ExecuteTasks();                  cmn->GetTaskManager()->ExecuteTasks(_modem);
90    
91                  if (cmn->isDebug && kbhit())                  if (cmn->isDebug && kbhit())
92                          break;                          break;
93    
94                  Util::Sleep(10);                  Util::Sleep(100);
95    
96          }          }
97  }  }
# Line 84  void SmsDaemon::MainLoop() Line 99  void SmsDaemon::MainLoop()
99  void SmsDaemon::Start()  void SmsDaemon::Start()
100  {  {
101          Common* cmn = Common::instance();          Common* cmn = Common::instance();
102            string transceiver = cmn->GetConfigfile()->GetValue("smsdaemon","transceiver");
103    
104            srand(time(0));
105    
106          cmn->daemonStart = time(0);          cmn->daemonStart = time(0);
107            _lastSmsCheck = Util::GetTimeOfDay();
108    
109          cmn->logMessage("--------------------------------");          cmn->logMessage("--------------------------------");
110            cmn->logMessage( VERSION );
111            cmn->logMessage( SVNVERSION );
112            cmn->logMessage( string("Transceiver: ") + transceiver );
113    
114          cmn->taskManager.LoadTasks();          cmn->GetTaskManager()->LoadTasks();
115          cmn->pluginManager.LoadPlugins();          cmn->GetPluginManager()->LoadPlugins();
116          cmn->logMessage("SMS daemon started");          cmn->logMessage("SMS daemon started");
117    
118          _modem.DeleteAllSms();          _modem.DeleteAllSms();

Legend:
Removed from v.88  
changed lines
  Added in v.151

  ViewVC Help
Powered by ViewVC 1.1.20