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 13 14:24:58 2015 +0000
Revision:
93:0acd11870c6a
Child:
94:61d44636f020
v2.1rc1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xinlei 93:0acd11870c6a 1 #include <string.h>
xinlei 93:0acd11870c6a 2 #include "b64.h"
xinlei 93:0acd11870c6a 3
xinlei 93:0acd11870c6a 4 const char* _username = NULL;
xinlei 93:0acd11870c6a 5 const char* _password = NULL;
xinlei 93:0acd11870c6a 6 char _authStr[100] = {0};
xinlei 93:0acd11870c6a 7 const char *_identifier = "com_cumulocity_MbedAgent_1.5.2";
xinlei 93:0acd11870c6a 8 const char _host[] = "developer.cumulocity.com";
xinlei 93:0acd11870c6a 9 // const char _host[] = "management.m2m-devicecloud.com"
xinlei 93:0acd11870c6a 10 const int _port = 80;
xinlei 93:0acd11870c6a 11
xinlei 93:0acd11870c6a 12 const char* getAuthStr()
xinlei 93:0acd11870c6a 13 {
xinlei 93:0acd11870c6a 14 return _authStr;
xinlei 93:0acd11870c6a 15 }
xinlei 93:0acd11870c6a 16
xinlei 93:0acd11870c6a 17 void setAuthStr(const char* p1, const char* p2)
xinlei 93:0acd11870c6a 18 {
xinlei 93:0acd11870c6a 19 memset(_authStr, 0, sizeof(_authStr));
xinlei 93:0acd11870c6a 20 size_t ul = strlen(p1);
xinlei 93:0acd11870c6a 21 size_t pl = strlen(p2);
xinlei 93:0acd11870c6a 22 unsigned char input[3], output[5];
xinlei 93:0acd11870c6a 23 int inputOffset = 0;
xinlei 93:0acd11870c6a 24
xinlei 93:0acd11870c6a 25 for (size_t i = 0; i < (ul+1+pl); i++) {
xinlei 93:0acd11870c6a 26 if (i < ul)
xinlei 93:0acd11870c6a 27 input[inputOffset++] = p1[i];
xinlei 93:0acd11870c6a 28 else if (i == ul)
xinlei 93:0acd11870c6a 29 input[inputOffset++] = ':';
xinlei 93:0acd11870c6a 30 else
xinlei 93:0acd11870c6a 31 input[inputOffset++] = p2[i-(ul+1)];
xinlei 93:0acd11870c6a 32
xinlei 93:0acd11870c6a 33 if ((inputOffset == 3) || (i == ul+pl)) {
xinlei 93:0acd11870c6a 34 b64_encode(input, inputOffset, output, 4);
xinlei 93:0acd11870c6a 35 output[4] = '\0';
xinlei 93:0acd11870c6a 36 strcat(_authStr, (char*)output);
xinlei 93:0acd11870c6a 37 inputOffset = 0;
xinlei 93:0acd11870c6a 38 }
xinlei 93:0acd11870c6a 39 }
xinlei 93:0acd11870c6a 40 }
xinlei 93:0acd11870c6a 41
xinlei 93:0acd11870c6a 42
xinlei 93:0acd11870c6a 43 const char* getIdentifier()
xinlei 93:0acd11870c6a 44 {
xinlei 93:0acd11870c6a 45 return _identifier;
xinlei 93:0acd11870c6a 46 }
xinlei 93:0acd11870c6a 47
xinlei 93:0acd11870c6a 48 void setIdentifier(const char* id)
xinlei 93:0acd11870c6a 49 {
xinlei 93:0acd11870c6a 50 if (id)
xinlei 93:0acd11870c6a 51 _identifier = id;
xinlei 93:0acd11870c6a 52 }
xinlei 93:0acd11870c6a 53
xinlei 93:0acd11870c6a 54 const char* getUsername()
xinlei 93:0acd11870c6a 55 {
xinlei 93:0acd11870c6a 56 return _username;
xinlei 93:0acd11870c6a 57 }
xinlei 93:0acd11870c6a 58
xinlei 93:0acd11870c6a 59 void setUsername(const char* username)
xinlei 93:0acd11870c6a 60 {
xinlei 93:0acd11870c6a 61 _username = username;
xinlei 93:0acd11870c6a 62 }
xinlei 93:0acd11870c6a 63
xinlei 93:0acd11870c6a 64 const char* getPassword()
xinlei 93:0acd11870c6a 65 {
xinlei 93:0acd11870c6a 66 return _password;
xinlei 93:0acd11870c6a 67 }
xinlei 93:0acd11870c6a 68
xinlei 93:0acd11870c6a 69 void setPassword(const char* password)
xinlei 93:0acd11870c6a 70 {
xinlei 93:0acd11870c6a 71 _password = password;
xinlei 93:0acd11870c6a 72 }
xinlei 93:0acd11870c6a 73
xinlei 93:0acd11870c6a 74 void setAuth(const char* username, const char* password)
xinlei 93:0acd11870c6a 75 {
xinlei 93:0acd11870c6a 76 setUsername(username);
xinlei 93:0acd11870c6a 77 setPassword(password);
xinlei 93:0acd11870c6a 78 setAuthStr(username, password);
xinlei 93:0acd11870c6a 79 }
xinlei 93:0acd11870c6a 80
xinlei 93:0acd11870c6a 81 const char* getHost()
xinlei 93:0acd11870c6a 82 {
xinlei 93:0acd11870c6a 83 return _host;
xinlei 93:0acd11870c6a 84 }
xinlei 93:0acd11870c6a 85
xinlei 93:0acd11870c6a 86 int getPort()
xinlei 93:0acd11870c6a 87 {
xinlei 93:0acd11870c6a 88 return _port;
xinlei 93:0acd11870c6a 89 }