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
util/SmartRestConf.cpp@93:0acd11870c6a, 2015-04-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |