
Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
Revision 107:f1ee3e1eb126, committed 2015-05-13
- 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
--- 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)); }