Own fork of MbedSmartRestMain

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Cumulocity Official

Files at this revision

API Documentation at this revision

Comitter:
xinlei
Date:
Wed May 13 13:03:20 2015 +0000
Parent:
106:fc5f25f0e0d5
Child:
108:2ec12f10ebf4
Commit message:
ConfigSync is now singleton

Changed in this revision

CyaSSL.lib Show annotated file Show diff for this revision Revisions of this file
DeviceInfo.cpp Show annotated file Show diff for this revision Revisions of this file
DeviceInfo.h Show annotated file Show diff for this revision Revisions of this file
MbedAgent.cpp Show annotated file Show diff for this revision Revisions of this file
MbedAgent.h Show annotated file Show diff for this revision Revisions of this file
config/ConfigSync.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
operation/ControlParser.cpp Show annotated file Show diff for this revision Revisions of this file
operation/ControlParser.h Show annotated file Show diff for this revision Revisions of this file
operation/OperationSupport.cpp Show annotated file Show diff for this revision Revisions of this file
operation/OperationSupport.h Show annotated file Show diff for this revision Revisions of this file
operation/PollThread.cpp Show annotated file Show diff for this revision Revisions of this file
operation/PollThread.h Show annotated file Show diff for this revision Revisions of this file
--- a/CyaSSL.lib	Wed May 13 12:12:55 2015 +0000
+++ b/CyaSSL.lib	Wed May 13 13:03:20 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/wolfSSL/code/CyaSSL/#1d1b8be1715f
+http://mbed.org/users/wolfSSL/code/CyaSSL/#64d4f7cb83d5
--- a/DeviceInfo.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/DeviceInfo.cpp	Wed May 13 13:03:20 2015 +0000
@@ -3,63 +3,29 @@
 #include "DeviceInfo.h"
 #include "logging.h"
 
-DeviceInfo::DeviceInfo(MDMParser::DevStatus& devStatus)
-{
-    *_cellId = '\0';
-    memcpy(&_devStatus, &devStatus, sizeof(MDMParser::DevStatus));
-    memset(&_netStatus, 0, sizeof(MDMParser::NetStatus));
-    memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
-}
-
-const char * DeviceInfo::imsi()
-{
-    return _devStatus.imsi;
-}
-
-const char * DeviceInfo::imei()
-{
-    return _devStatus.imei;
-}
+extern MDMSerial *pMdm;
 
 const char * DeviceInfo::cellId()
 {
-    if (!refreshNetStatus())
+    if (!pMdm->checkNetStatus(&_netStatus)) {
         return NULL;
-
+    }
     if (snprintf(_cellId, sizeof(_cellId), "%X", _netStatus.ci) < 1)
         return NULL;
     return _cellId;
 }
 
-const char * DeviceInfo::iccid()
-{
-    return _devStatus.ccid;
-}
-
-DeviceInfo::SignalQuality * DeviceInfo::signalQuality(bool realTime)
+DeviceInfo::SignalQuality* DeviceInfo::signalQuality(bool realTime)
 {
     if (!realTime && _signalQuality.rssi)
         return &_signalQuality;
 
     memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
-    if (!refreshNetStatus()) {
-        aError("Can not refresh network status!\r\n");
+    if (!pMdm->checkNetStatus(&_netStatus)) {
+        aError("Check network status!\n");
         return NULL;
     }
-    
-//    if ((_netStatus.rssi == 0) || (_netStatus.ber == 0)) {
-//        aWarning("Network status is unavailable!\r\n");
-//        aDebug("RSSI: %d dBm, BER: %d%%\r\n", _netStatus.rssi, _netStatus.ber);
-//        return NULL;
-//    }
-
     _signalQuality.rssi = _netStatus.rssi;
     _signalQuality.ber = _netStatus.ber;
     return &_signalQuality;
-}
-
-bool DeviceInfo::refreshNetStatus()
-{
-    extern MDMSerial *pMdm;
-    return pMdm->checkNetStatus(&_netStatus);
-}
+}
\ No newline at end of file
--- a/DeviceInfo.h	Wed May 13 12:12:55 2015 +0000
+++ b/DeviceInfo.h	Wed May 13 13:03:20 2015 +0000
@@ -1,27 +1,28 @@
 #ifndef DEVICEINFO_H
 #define DEVICEINFO_H
-
 #include "MDM.h"
 
 class DeviceInfo
 {
 public:
-    DeviceInfo(MDMParser::DevStatus& devStatus);
-    
     typedef struct {
-        int rssi;  // RSSI in dBm
-        int ber; // BER in %
+        int rssi;  // RSSI [dBm]
+        int ber;   // BER [%]
     } SignalQuality;
+
+    DeviceInfo(MDMParser::DevStatus& devStatus) {
+        *_cellId = 0;
+        memcpy(&_devStatus, &devStatus, sizeof(MDMParser::DevStatus));
+        memset(&_netStatus, 0, sizeof(MDMParser::NetStatus));
+        memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
+    }
     
-    const char * imsi();
-    const char * imei();
-    const char * cellId();
-    const char * iccid();
+    const char* imsi() const { return _devStatus.imsi; }
+    const char* imei() const { return _devStatus.imei; }
+    const char* cellId();
+    const char* iccid() const { return _devStatus.ccid; }
     SignalQuality * signalQuality(bool realTime=true);
 
-protected:
-    bool refreshNetStatus();
-
 private:
     MDMParser::DevStatus _devStatus;
     MDMParser::NetStatus _netStatus;
--- a/MbedAgent.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/MbedAgent.cpp	Wed May 13 13:03:20 2015 +0000
@@ -5,10 +5,10 @@
 MbedAgent::MbedAgent(DeviceInfo& deviceInfo):
     _client(), tpl(), _bootstrap(_client, deviceInfo), 
     _integration(_client, tpl, deviceInfo), lcdThirdLineBlank(true),
-    signal(deviceInfo), temp(), poti(), gps(), acc(), conf(), sock(),
-    pool(), _operationSupport(tpl, pool, conf)
+    signal(deviceInfo), temp(), poti(), gps(), acc(), sock(),
+    pool(), _operationSupport(tpl, pool)
 {
-    reporters[0] = &conf;
+    reporters[0] = &ConfigSync::inst();
     reporters[1] = &temp;
     reporters[2] = &signal;
     reporters[3] = &gps;
@@ -98,7 +98,7 @@
 {
     ReportThread reportThread(pool);
     _operationSupport.executePendingOperations();
-//    PollThread pollThread(pool, conf);
+//    PollThread pollThread(pool);
 //    pollThread.setChannel(deviceID);
 
     Watchdog wdt;
--- a/MbedAgent.h	Wed May 13 12:12:55 2015 +0000
+++ b/MbedAgent.h	Wed May 13 13:03:20 2015 +0000
@@ -42,7 +42,6 @@
     Potentiometer poti;
     Location gps;
     Acceleration acc;
-    ConfigSync conf;
     char buf[SMARTREST_SIZE];
     char buf2[SMARTREST_BODY_SIZE];
     char status[DISPLAY_LEN];
--- a/config/ConfigSync.h	Wed May 13 12:12:55 2015 +0000
+++ b/config/ConfigSync.h	Wed May 13 13:03:20 2015 +0000
@@ -5,14 +5,19 @@
 
 class ConfigSync : public AbstractReporter
 {
+private:
+        ConfigSync(): dict(), cp(), changed(true) {}
 public:
-        ConfigSync(): dict(), cp(), changed(true) {}
         virtual ~ConfigSync() {}
         virtual bool init() {
                 resetConfiguration();
                 loadConfiguration();
                 return true;
         }
+        static ConfigSync& inst() {
+                static ConfigSync _ref;
+                return _ref;
+        }
         virtual const char* name() const { return "Conf"; }
         virtual size_t read(char*, size_t, char*, size_t);
         bool updateConfiguration(const char*);
--- a/main.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/main.cpp	Wed May 13 13:03:20 2015 +0000
@@ -4,7 +4,6 @@
 #include "rtos.h"
 #include "MDM.h"
 #include "GPS.h"
-#include "cyassl/ssl.h"
 
 #include "DeviceInfo.h"
 #include "Storage.h"
--- a/operation/ControlParser.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/operation/ControlParser.cpp	Wed May 13 13:03:20 2015 +0000
@@ -3,6 +3,7 @@
 #include "ControlParser.h"
 #include "Peripheral.h"
 #include "LCDDisplay.h"
+#include "ConfigSync.h"
 #include "logging.h"
 
 void ControlParser::parse(const char *buf)
@@ -115,7 +116,7 @@
                 char config[128] = {0};
                 size_t num = tok.len < 127 ? tok.len : 127;
                 strncpy(config, tok.p, num);
-                ret = _configSync.updateConfiguration(config);
+                ret = ConfigSync::inst().updateConfiguration(config);
         } else {
                 parseError(tok);
                 return;
--- a/operation/ControlParser.h	Wed May 13 12:12:55 2015 +0000
+++ b/operation/ControlParser.h	Wed May 13 13:03:20 2015 +0000
@@ -2,17 +2,14 @@
 #define CONTROLPARSER_H
 #include "Operation.h"
 #include "lex.h"
-#include "ConfigSync.h"
 
 enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
 
 class ControlParser
 {
 public:
-        ControlParser(OperationPool& pool, 
-                ConfigSync& configSync): opType(0),
-                bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
-                opool(pool), _configSync(configSync) {}
+        ControlParser(OperationPool& pool): opType(0), bayeuxAdvice(BA_RETRY),
+        bayeuxTimeout(-1), bayeuxInterval(0), opool(pool) {}
         virtual ~ControlParser() {}
         BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
         int getBayeuxInterval() const { return bayeuxInterval; }
@@ -41,7 +38,6 @@
         int bayeuxInterval;
         PtrParseFunc ptrPF;
         OperationPool& opool;
-        ConfigSync& _configSync;
 };
 
 #endif /* CONTROLPARSER_H */
--- a/operation/OperationSupport.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/operation/OperationSupport.cpp	Wed May 13 13:03:20 2015 +0000
@@ -83,7 +83,7 @@
         }
         if (i >= N)
                 aWarning("Over %u pending operations.\n", N);
-        ControlParser cp(opool, conf);
+        ControlParser cp(opool);
         bool flag = true;
         l = 0;
         for (size_t j = 0; j < i; ++j) {
--- a/operation/OperationSupport.h	Wed May 13 12:12:55 2015 +0000
+++ b/operation/OperationSupport.h	Wed May 13 13:03:20 2015 +0000
@@ -4,22 +4,20 @@
 #include "Operation.h"
 #include "SmartRestConf.h"
 #include "SmartRestTemplate.h"
-#include "ConfigSync.h"
 
 class OperationSupport
 {
 public:
-    OperationSupport(SmartRestTemplate& tpl, OperationPool& pool,
-    ConfigSync& _conf): _init(false), _tpl(tpl), opool(pool), conf(_conf) {}
+    OperationSupport(SmartRestTemplate& tpl, OperationPool& pool):
+    _init(false), _tpl(tpl), opool(pool) {}
 
+    bool init();
     bool executePendingOperations();
-    bool init();
 
 private:
     bool _init;
     SmartRestTemplate& _tpl;
     OperationPool& opool;
-    ConfigSync &conf;
 };
 
 #endif
\ No newline at end of file
--- a/operation/PollThread.cpp	Wed May 13 12:12:55 2015 +0000
+++ b/operation/PollThread.cpp	Wed May 13 13:03:20 2015 +0000
@@ -1,7 +1,6 @@
 #include <stdio.h>
 #include <ctype.h>
 #include "PollThread.h"
-#include "lex.h"
 #include "logging.h"
 
 bool PollThread::handshake()
--- a/operation/PollThread.h	Wed May 13 12:12:55 2015 +0000
+++ b/operation/PollThread.h	Wed May 13 13:03:20 2015 +0000
@@ -8,9 +8,7 @@
 class PollThread
 {
 public:
-        PollThread(OperationPool& pool,
-                ConfigSync& configSync):
-                sock(), parser(pool, configSync),
+        PollThread(OperationPool& pool): sock(), parser(pool),
                 thread(PollThread::threadWrapper, this) {
                 strncpy(uri, "/devicecontrol/notifications", sizeof(uri));
         }