Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
DeviceInfo.cpp@77:f6717e4eccc4, 2015-03-03 (annotated)
- Committer:
- xinlei
- Date:
- Tue Mar 03 14:10:09 2015 +0000
- Revision:
- 77:f6717e4eccc4
- Parent:
- 74:ca3001991fdc
- Child:
- 96:ea056f6be2e8
Working device push, DNS caching, change logging level when running and more.
Who changed what in which revision?
User | Revision | Line number | New 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 | |
xinlei | 77:f6717e4eccc4 | 40 | DeviceInfo::SignalQuality * DeviceInfo::signalQuality(bool realTime) |
Cumulocity | 41:804f6a0bda26 | 41 | { |
xinlei | 77:f6717e4eccc4 | 42 | if (!realTime && _signalQuality.rssi) |
xinlei | 77:f6717e4eccc4 | 43 | return &_signalQuality; |
xinlei | 77:f6717e4eccc4 | 44 | |
Cumulocity | 41:804f6a0bda26 | 45 | memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality)); |
xinlei | 74:ca3001991fdc | 46 | if (!refreshNetStatus()) { |
xinlei | 74:ca3001991fdc | 47 | aError("Can not refresh network status!\r\n"); |
Cumulocity | 41:804f6a0bda26 | 48 | return NULL; |
xinlei | 74:ca3001991fdc | 49 | } |
Cumulocity | 41:804f6a0bda26 | 50 | |
xinlei | 74:ca3001991fdc | 51 | // if ((_netStatus.rssi == 0) || (_netStatus.ber == 0)) { |
xinlei | 74:ca3001991fdc | 52 | // aWarning("Network status is unavailable!\r\n"); |
xinlei | 74:ca3001991fdc | 53 | // aDebug("RSSI: %d dBm, BER: %d%%\r\n", _netStatus.rssi, _netStatus.ber); |
xinlei | 74:ca3001991fdc | 54 | // return NULL; |
xinlei | 74:ca3001991fdc | 55 | // } |
Cumulocity | 41:804f6a0bda26 | 56 | |
Cumulocity | 41:804f6a0bda26 | 57 | _signalQuality.rssi = _netStatus.rssi; |
Cumulocity | 41:804f6a0bda26 | 58 | _signalQuality.ber = _netStatus.ber; |
Cumulocity | 41:804f6a0bda26 | 59 | return &_signalQuality; |
Cumulocity | 41:804f6a0bda26 | 60 | } |
Cumulocity | 41:804f6a0bda26 | 61 | |
Cumulocity | 41:804f6a0bda26 | 62 | bool DeviceInfo::refreshNetStatus() |
Cumulocity | 41:804f6a0bda26 | 63 | { |
Cumulocity | 41:804f6a0bda26 | 64 | return _mdm.checkNetStatus(&_netStatus); |
Cumulocity | 41:804f6a0bda26 | 65 | } |