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:
Mon Apr 27 13:02:50 2015 +0000
Revision:
97:ea056f6be2e8
Parent:
94:61d44636f020
Child:
98:9f2de96941c4
MDMSerial now singleton

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vwochnik 67:c360a2b2c948 1 #include <stdlib.h>
vwochnik 67:c360a2b2c948 2 #include <stdio.h>
vwochnik 67:c360a2b2c948 3 #include <string.h>
xinlei 97:ea056f6be2e8 4 #include "MDM.h"
xinlei 97:ea056f6be2e8 5 #include "DeviceMemory.h"
vwochnik 67:c360a2b2c948 6
vwochnik 67:c360a2b2c948 7 #define PLATFORM_CREDENTIALS_FILE "001_CREDENTIALS"
vwochnik 68:0dc778a16d0d 8 #define CONFIGURATION_FILE "002_CONFIGURATION"
xinlei 97:ea056f6be2e8 9 extern MDMSerial *pMdm;
vwochnik 67:c360a2b2c948 10
vwochnik 67:c360a2b2c948 11 bool DeviceMemory::loadPlatformCredentials(char *username, char *password, size_t len)
vwochnik 67:c360a2b2c948 12 {
xinlei 94:61d44636f020 13 char buffer[len*2+3];
xinlei 97:ea056f6be2e8 14 int res = pMdm->readFile(PLATFORM_CREDENTIALS_FILE, buffer, sizeof(buffer));
xinlei 94:61d44636f020 15 if (res < 0)
vwochnik 67:c360a2b2c948 16 return false;
vwochnik 69:237c01eb36c2 17
vwochnik 67:c360a2b2c948 18 buffer[(size_t)res] = '\0';
xinlei 94:61d44636f020 19 int len2=0;
vwochnik 67:c360a2b2c948 20 sscanf(buffer, "%s\n%s\n%n", username, password, &len2);
vwochnik 67:c360a2b2c948 21 return res == len2;
vwochnik 67:c360a2b2c948 22 }
vwochnik 67:c360a2b2c948 23
vwochnik 67:c360a2b2c948 24 bool DeviceMemory::savePlatformCredentials(char *username, char *password, size_t len)
vwochnik 67:c360a2b2c948 25 {
xinlei 94:61d44636f020 26 char buffer[len*2+3];
xinlei 94:61d44636f020 27 int res = snprintf(buffer, sizeof(buffer), "%s\n%s\n", username, password);
xinlei 94:61d44636f020 28 if (res<0 || res>=sizeof(buffer))
vwochnik 67:c360a2b2c948 29 return false;
vwochnik 67:c360a2b2c948 30
xinlei 97:ea056f6be2e8 31 return ((resetPlatformCredentials()) && (res == pMdm->writeFile(PLATFORM_CREDENTIALS_FILE, buffer, res)));
vwochnik 67:c360a2b2c948 32 }
vwochnik 67:c360a2b2c948 33
vwochnik 67:c360a2b2c948 34 bool DeviceMemory::resetPlatformCredentials()
vwochnik 67:c360a2b2c948 35 {
xinlei 97:ea056f6be2e8 36 return pMdm->delFile(PLATFORM_CREDENTIALS_FILE);
vwochnik 67:c360a2b2c948 37 }
vwochnik 68:0dc778a16d0d 38
vwochnik 68:0dc778a16d0d 39
vwochnik 68:0dc778a16d0d 40 bool DeviceMemory::loadConfiguration(char *cfg, size_t len)
vwochnik 68:0dc778a16d0d 41 {
xinlei 97:ea056f6be2e8 42 int res = pMdm->readFile(CONFIGURATION_FILE, cfg, len);
xinlei 94:61d44636f020 43 if (res < 0)
vwochnik 68:0dc778a16d0d 44 return false;
vwochnik 68:0dc778a16d0d 45
vwochnik 68:0dc778a16d0d 46 cfg[(size_t)res] = '\0';
vwochnik 68:0dc778a16d0d 47 return true;
vwochnik 68:0dc778a16d0d 48 }
vwochnik 68:0dc778a16d0d 49
vwochnik 68:0dc778a16d0d 50 bool DeviceMemory::saveConfiguration(char *cfg)
vwochnik 68:0dc778a16d0d 51 {
xinlei 94:61d44636f020 52 size_t len = strlen(cfg);
xinlei 97:ea056f6be2e8 53 return ((resetConfiguration()) && (pMdm->writeFile(CONFIGURATION_FILE, cfg, len) == len));
vwochnik 68:0dc778a16d0d 54 }
vwochnik 68:0dc778a16d0d 55
vwochnik 68:0dc778a16d0d 56 bool DeviceMemory::resetConfiguration()
vwochnik 68:0dc778a16d0d 57 {
xinlei 97:ea056f6be2e8 58 return pMdm->delFile(CONFIGURATION_FILE);
vwochnik 68:0dc778a16d0d 59 }