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
io/DeviceMemory.cpp@97:ea056f6be2e8, 2015-04-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |