
Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
Revision 136:a52821cdb108, committed 2016-02-15
- Comitter:
- xinlei
- Date:
- Mon Feb 15 09:49:35 2016 +0000
- Parent:
- 135:94add01b668c
- Child:
- 137:1e37ea2f2357
- Commit message:
- watchdog workaround for mobile connection lost after 24 hours.
Changed in this revision
--- a/C027_Support.lib Mon Aug 10 14:20:40 2015 +0000 +++ b/C027_Support.lib Mon Feb 15 09:49:35 2016 +0000 @@ -1,1 +1,1 @@ -http://developer.mbed.org/users/xinlei/code/C027_Support/#0c2bef7cca88 +http://developer.mbed.org/users/xinlei/code/C027_Support/#27043e7c9de3
--- a/MbedAgent.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/MbedAgent.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -99,21 +99,25 @@ pollThread.setChannel(deviceID); Watchdog wdt; - wdt.kick(60.0); // set a 60.0 seconds watchdog + wdt.kick(300.0); // set a 60.0 seconds watchdog while (true) { int l = 0; + bool flag = false; for (size_t i = 0; i < N; ++i) { // if (reporters[i] == &ConfigSync::inst()) { int l2 = reporters[i]->read(buf2+l, sizeof(buf2)-l, status, DISPLAY_LEN); - if (l2) { // Refresh LCD display needed + if (l2 < 0) { + flag |= reporters[i] == &signal; + } else if (l2 > 0) { // Refresh LCD display needed + l += l2; LCDDisplay::inst().setThirdLine(status); + lcdThirdLineBlank = false; Thread::wait(400); - } else if (!lcdThirdLineBlank && !l2) { // Clear LCD display needed + } else if (!lcdThirdLineBlank) { // Clear LCD display needed LCDDisplay::inst().setThirdLine(""); + lcdThirdLineBlank = true; Thread::wait(100); } - lcdThirdLineBlank = !l2; - l += l2; // } } if (l) { @@ -123,6 +127,7 @@ if (l < 0) aWarning("%s\n", status); } - wdt.kick(); // reset watchdog timer + if (!flag) + wdt.kick(); // reset watchdog timer } } \ No newline at end of file
--- a/config/ConfigSync.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/config/ConfigSync.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -22,7 +22,7 @@ return false; } -size_t ConfigSync::read(char *buf, size_t maxLen, char *status, size_t num) +int ConfigSync::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "130,%ld,\"%s\",%.*s\r\n"; int l = 0;
--- a/config/ConfigSync.h Mon Aug 10 14:20:40 2015 +0000 +++ b/config/ConfigSync.h Mon Feb 15 09:49:35 2016 +0000 @@ -18,7 +18,7 @@ return _ref; } virtual const char* name() const { return "Conf"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); bool updateConfiguration(const char*); protected: void resetConfiguration();
--- a/measurement/Acceleration.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Acceleration.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -21,7 +21,7 @@ return true; } -size_t Acceleration::read(char *buf, size_t maxLen, char *status, size_t num) +int Acceleration::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "106,%ld,%f,%f,%f\r\n"; if (!deviceReady)
--- a/measurement/Acceleration.h Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Acceleration.h Mon Feb 15 09:49:35 2016 +0000 @@ -20,7 +20,7 @@ return deviceReady; } virtual const char* name() const { return "Acc"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); private: bool deviceReady; MMA7660 sensor;
--- a/measurement/Location.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Location.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -18,7 +18,7 @@ return true; } -size_t Location::read(char *buf, size_t maxLen, char *status, size_t num) +int Location::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "108,%ld,%.2f,%.6f,%.6f\r\n109,%ld,%.2f,%.6f,%.6f"; GPSTracker::Position pos;
--- a/measurement/Location.h Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Location.h Mon Feb 15 09:49:35 2016 +0000 @@ -17,7 +17,7 @@ virtual ~Location() {} virtual bool init() { return true; } virtual const char* name() const { return "GPS"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); private: GPSTracker gpsTracker; float oldValues[3];
--- a/measurement/Potentiometer.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Potentiometer.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -21,7 +21,7 @@ return true; } -size_t Potentiometer::read(char *buf, size_t maxLen, char *status, size_t num) +int Potentiometer::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "107,%ld,%f,%f\r\n"; float data[2] = {0, 0};
--- a/measurement/Potentiometer.h Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Potentiometer.h Mon Feb 15 09:49:35 2016 +0000 @@ -15,7 +15,7 @@ virtual ~Potentiometer() {} virtual bool init() { return true; } virtual const char* name() const { return "Poti"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); private: float oldValues[2]; Timer timer;
--- a/measurement/Signal.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Signal.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -19,7 +19,7 @@ return true; } -size_t Signal::read(char *buf, size_t maxLen, char *status, size_t num) +int Signal::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "104,%ld,%d,%d\r\n"; static char signal[27] = {0}; @@ -32,8 +32,8 @@ if (strcmp(LCDDisplay::inst().getSecondLine(), signal)) { LCDDisplay::inst().setSecondLine(signal); } - if (p == NULL) - return 0; + if (p == NULL || p->rssi == 0) + return -1; int data[2] = { p->rssi, p->ber }; float t_interval = timer.read();
--- a/measurement/Signal.h Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Signal.h Mon Feb 15 09:49:35 2016 +0000 @@ -16,7 +16,7 @@ virtual ~Signal() {} virtual bool init() { return true; } virtual const char* name() const { return "dBm"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); private: int oldValues[2]; DeviceInfo& deviceInfo;
--- a/measurement/Temperature.cpp Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Temperature.cpp Mon Feb 15 09:49:35 2016 +0000 @@ -16,7 +16,7 @@ return true; } -size_t Temperature::read(char *buf, size_t maxLen, char *status, size_t num) +int Temperature::read(char *buf, size_t maxLen, char *status, size_t num) { static const char *fmt = "105,%ld,%f\r\n"; if (!deviceReady)
--- a/measurement/Temperature.h Mon Aug 10 14:20:40 2015 +0000 +++ b/measurement/Temperature.h Mon Feb 15 09:49:35 2016 +0000 @@ -18,7 +18,7 @@ return deviceReady; } virtual const char* name() const { return "Temp"; } - virtual size_t read(char*, size_t, char*, size_t); + virtual int read(char*, size_t, char*, size_t); private: bool deviceReady; float oldValue;
--- a/util/AbstractReporter.h Mon Aug 10 14:20:40 2015 +0000 +++ b/util/AbstractReporter.h Mon Feb 15 09:49:35 2016 +0000 @@ -19,9 +19,9 @@ \param status a short summary of the report. Pass NULL if the status is not interested. \param num maximum length of status. - \return number of characters written to buf, 0 means no report. + \return number of characters written to buf, 0 means no report, -1 means error */ - virtual size_t read(char* buf, size_t maxLen, + virtual int read(char* buf, size_t maxLen, char* status, size_t num) = 0; };