Official reference client implementation for Cumulocity SmartREST on u-blox C027.

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Vincent Wochnik

Committer:
xinlei
Date:
Wed Feb 18 10:17:29 2015 +0000
Revision:
74:ca3001991fdc
Parent:
41:804f6a0bda26
Child:
77:f6717e4eccc4
formatting: minor formatting style fixes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Cumulocity 41:804f6a0bda26 1 #include <stdlib.h>
Cumulocity 41:804f6a0bda26 2 #include <string.h>
xinlei 74:ca3001991fdc 3 #include "DeviceInfo.h"
xinlei 74:ca3001991fdc 4 #include "logging.h"
Cumulocity 41:804f6a0bda26 5
Cumulocity 41:804f6a0bda26 6 DeviceInfo::DeviceInfo(MDMSerial& mdm, MDMParser::DevStatus& devStatus) :
Cumulocity 41:804f6a0bda26 7 _mdm(mdm)
Cumulocity 41:804f6a0bda26 8 {
Cumulocity 41:804f6a0bda26 9 *_cellId = '\0';
Cumulocity 41:804f6a0bda26 10 memcpy(&_devStatus, &devStatus, sizeof(MDMParser::DevStatus));
Cumulocity 41:804f6a0bda26 11 memset(&_netStatus, 0, sizeof(MDMParser::NetStatus));
Cumulocity 41:804f6a0bda26 12 memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
Cumulocity 41:804f6a0bda26 13 }
Cumulocity 41:804f6a0bda26 14
Cumulocity 41:804f6a0bda26 15 const char * DeviceInfo::imsi()
Cumulocity 41:804f6a0bda26 16 {
Cumulocity 41:804f6a0bda26 17 return _devStatus.imsi;
Cumulocity 41:804f6a0bda26 18 }
Cumulocity 41:804f6a0bda26 19
Cumulocity 41:804f6a0bda26 20 const char * DeviceInfo::imei()
Cumulocity 41:804f6a0bda26 21 {
Cumulocity 41:804f6a0bda26 22 return _devStatus.imei;
Cumulocity 41:804f6a0bda26 23 }
Cumulocity 41:804f6a0bda26 24
Cumulocity 41:804f6a0bda26 25 const char * DeviceInfo::cellId()
Cumulocity 41:804f6a0bda26 26 {
Cumulocity 41:804f6a0bda26 27 if (!refreshNetStatus())
Cumulocity 41:804f6a0bda26 28 return NULL;
Cumulocity 41:804f6a0bda26 29
Cumulocity 41:804f6a0bda26 30 if (snprintf(_cellId, sizeof(_cellId), "%X", _netStatus.ci) < 1)
Cumulocity 41:804f6a0bda26 31 return NULL;
Cumulocity 41:804f6a0bda26 32 return _cellId;
Cumulocity 41:804f6a0bda26 33 }
Cumulocity 41:804f6a0bda26 34
Cumulocity 41:804f6a0bda26 35 const char * DeviceInfo::iccid()
Cumulocity 41:804f6a0bda26 36 {
Cumulocity 41:804f6a0bda26 37 return _devStatus.ccid;
Cumulocity 41:804f6a0bda26 38 }
Cumulocity 41:804f6a0bda26 39
Cumulocity 41:804f6a0bda26 40 DeviceInfo::SignalQuality * DeviceInfo::signalQuality()
Cumulocity 41:804f6a0bda26 41 {
Cumulocity 41:804f6a0bda26 42 memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
xinlei 74:ca3001991fdc 43 if (!refreshNetStatus()) {
xinlei 74:ca3001991fdc 44 aError("Can not refresh network status!\r\n");
Cumulocity 41:804f6a0bda26 45 return NULL;
xinlei 74:ca3001991fdc 46 }
Cumulocity 41:804f6a0bda26 47
xinlei 74:ca3001991fdc 48 // if ((_netStatus.rssi == 0) || (_netStatus.ber == 0)) {
xinlei 74:ca3001991fdc 49 // aWarning("Network status is unavailable!\r\n");
xinlei 74:ca3001991fdc 50 // aDebug("RSSI: %d dBm, BER: %d%%\r\n", _netStatus.rssi, _netStatus.ber);
xinlei 74:ca3001991fdc 51 // return NULL;
xinlei 74:ca3001991fdc 52 // }
Cumulocity 41:804f6a0bda26 53
Cumulocity 41:804f6a0bda26 54 _signalQuality.rssi = _netStatus.rssi;
Cumulocity 41:804f6a0bda26 55 _signalQuality.ber = _netStatus.ber;
Cumulocity 41:804f6a0bda26 56 return &_signalQuality;
Cumulocity 41:804f6a0bda26 57 }
Cumulocity 41:804f6a0bda26 58
Cumulocity 41:804f6a0bda26 59 bool DeviceInfo::refreshNetStatus()
Cumulocity 41:804f6a0bda26 60 {
Cumulocity 41:804f6a0bda26 61 return _mdm.checkNetStatus(&_netStatus);
Cumulocity 41:804f6a0bda26 62 }