portable version of the cumulocity demo

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Cumulocity Official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DeviceInfo.cpp Source File

DeviceInfo.cpp

00001 #include "DeviceInfo.h"
00002 #include <stdlib.h>
00003 #include <string.h>
00004 
00005 DeviceInfo::DeviceInfo(MDMSerial& mdm, MDMParser::DevStatus& devStatus) :
00006     _mdm(mdm)
00007 {
00008     *_cellId = '\0';
00009     memcpy(&_devStatus, &devStatus, sizeof(MDMParser::DevStatus));
00010     memset(&_netStatus, 0, sizeof(MDMParser::NetStatus));
00011     memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
00012 }
00013 
00014 const char * DeviceInfo::imsi()
00015 {
00016     return _devStatus.imsi;
00017 }
00018 
00019 const char * DeviceInfo::imei()
00020 {
00021     return _devStatus.imei;
00022 }
00023 
00024 const char * DeviceInfo::cellId()
00025 {
00026     if (!refreshNetStatus())
00027         return NULL;
00028 
00029     if (snprintf(_cellId, sizeof(_cellId), "%X", _netStatus.ci) < 1)
00030         return NULL;
00031     return _cellId;
00032 }
00033 
00034 const char * DeviceInfo::iccid()
00035 {
00036     return _devStatus.ccid;
00037 }
00038 
00039 DeviceInfo::SignalQuality * DeviceInfo::signalQuality()
00040 {
00041     memset(&_signalQuality, 0, sizeof(DeviceInfo::SignalQuality));
00042     if (!refreshNetStatus())
00043         return NULL;
00044     
00045     if ((_netStatus.rssi == 0) || (_netStatus.ber == 0))
00046         return NULL;
00047 
00048     _signalQuality.rssi = _netStatus.rssi;
00049     _signalQuality.ber = _netStatus.ber;
00050     return &_signalQuality;
00051 }
00052 
00053 bool DeviceInfo::refreshNetStatus()
00054 {
00055     return _mdm.checkNetStatus(&_netStatus);
00056 }