Commit 0af9274faee8680c86d3ca578be5e4067ed6a2ef

Authored by Imanol-Mikel Barba Sabariego
1 parent b13c6408

JSON finished

Project/applications/smartcities/Makefile
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 SDK_ROOT = ../../ 10 SDK_ROOT = ../../
11 PROJECT_OUT = smartcities 11 PROJECT_OUT = smartcities
12 12
13 -USER_SRC = main.c httpClient.c callbacks.c module.c sensors.c 13 +USER_SRC = main.c httpClient.c callbacks.c module.c sensors.c json.c
14 USER_INCDIR = include/ 14 USER_INCDIR = include/
15 15
16 # if you need to add build Defines options add to USER_DEFS define 16 # if you need to add build Defines options add to USER_DEFS define
Project/applications/smartcities/include/globals.h
1 #ifndef GLOBALS_H 1 #ifndef GLOBALS_H
2 #define GLOBALS_H 2 #define GLOBALS_H
3 3
4 -#define SERVER_IP "10.0.60.241"  
5 -#define MODULE_ID_LENGTH 6 4 +#define SERVER_IP "10.0.60.241"
  5 +#define SERVER_HOSTNAME SERVER_IP
  6 +#define MODULE_ID_LENGTH 6
6 7
7 #endif 8 #endif
8 \ No newline at end of file 9 \ No newline at end of file
Project/applications/smartcities/include/json.h
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 #include "module.h" 8 #include "module.h"
9 #include <string.h> 9 #include <string.h>
10 #include <stdio.h> 10 #include <stdio.h>
  11 +#include "libwismart.h"
11 12
12 #define JSON_POST_OK 0 13 #define JSON_POST_OK 0
13 #define JSON_COMM_ERROR 1 14 #define JSON_COMM_ERROR 1
@@ -19,7 +20,7 @@ @@ -19,7 +20,7 @@
19 char* prepare_json_statement(char** data, uint32_t nObservations); 20 char* prepare_json_statement(char** data, uint32_t nObservations);
20 char* prepare_json_register_statement(module mod, sensor sens); 21 char* prepare_json_register_statement(module mod, sensor sens);
21 char* prepare_observation(char* observation, uint32_t length); 22 char* prepare_observation(char* observation, uint32_t length);
22 -uint8_t send_observation(char* statement, uint32_t length, char* provider_ID, char* sensor_ID); 23 +uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sensor_ID);
23 uint32_t find_next_index(char* string, uint32_t length, char delimiter); 24 uint32_t find_next_index(char* string, uint32_t length, char delimiter);
24 char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t free_mem); 25 char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t free_mem);
25 26
Project/applications/smartcities/json.c
@@ -21,7 +21,7 @@ char* prepare_json_observation_statement(char** data, uint32_t nObservations) @@ -21,7 +21,7 @@ char* prepare_json_observation_statement(char** data, uint32_t nObservations)
21 21
22 char* prepare_json_register_statement(module mod, sensor sens) 22 char* prepare_json_register_statement(module mod, sensor sens)
23 { 23 {
24 - unsigned int i, length, observation_length; 24 + unsigned int length;
25 char *json_statement, *str_aux, *str_aux2; 25 char *json_statement, *str_aux, *str_aux2;
26 char ID[MODULE_ID_LENGTH+3]; 26 char ID[MODULE_ID_LENGTH+3];
27 length = 23; 27 length = 23;
@@ -46,7 +46,7 @@ char* prepare_json_register_statement(module mod, sensor sens) @@ -46,7 +46,7 @@ char* prepare_json_register_statement(module mod, sensor sens)
46 length += 10; 46 length += 10;
47 str_aux = join_strings(str_aux2,sens.unit,length,strlen(sens.unit),JOIN_NO_FREE); 47 str_aux = join_strings(str_aux2,sens.unit,length,strlen(sens.unit),JOIN_NO_FREE);
48 chHeapFree(str_aux2); 48 chHeapFree(str_aux2);
49 - length += strlen(sensor.unit); 49 + length += strlen(sens.unit);
50 str_aux2 = join_strings(str_aux,"\",\"location\":\"",length,14,JOIN_NO_FREE); 50 str_aux2 = join_strings(str_aux,"\",\"location\":\"",length,14,JOIN_NO_FREE);
51 chHeapFree(str_aux); 51 chHeapFree(str_aux);
52 length += 14; 52 length += 14;
@@ -86,32 +86,33 @@ char* prepare_observation(char* observation, uint32_t length) @@ -86,32 +86,33 @@ char* prepare_observation(char* observation, uint32_t length)
86 return json_data; 86 return json_data;
87 } 87 }
88 88
89 -uint8_t send_observation(char* statement, uint32_t length, char* provider_ID, char* sensor_ID) 89 +uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sensor_ID)
90 { 90 {
91 int connectivity, response_code; 91 int connectivity, response_code;
92 char* URL; 92 char* URL;
  93 + int server_hostname_length = strlen(SERVER_HOSTNAME);
93 connectivity = libwismart_IsConnected(); 94 connectivity = libwismart_IsConnected();
94 - if(connectivity != WISMART_CONNECT) 95 + if(connectivity != WISMART_CONNECTED)
95 { 96 {
96 return JSON_COMM_ERROR; 97 return JSON_COMM_ERROR;
97 } 98 }
98 - if(sensor_ID == NULL) 99 + if(sensor_ID == NULL) //Register sensor
99 { 100 {
100 - URL = (char*) chHeapAlloc(NULL,17+SERVER_HOSTNAME_LENGTH+strlen(provider_ID)); 101 + URL = (char*) chHeapAlloc(NULL,17+server_hostname_length+strlen(provider_ID));
101 strcpy(URL,"http://"); 102 strcpy(URL,"http://");
102 strcpy(URL+7,SERVER_HOSTNAME); 103 strcpy(URL+7,SERVER_HOSTNAME);
103 - strcpy(URL+7+SERVER_HOSTNAME_LENGTH,"/catalog/");  
104 - strcpy(URL+16+SERVER_HOSTNAME_LENGTH,provider_ID); 104 + strcpy(URL+7+server_hostname_length,"/catalog/");
  105 + strcpy(URL+16+server_hostname_length,provider_ID);
105 } 106 }
106 - else 107 + else //Post data
107 { 108 {
108 - URL = (char*) chHeapAlloc(NULL,18+SERVER_HOSTNAME_LENGTH+strlen(provider_ID)+strlen(sensor_ID)); 109 + URL = (char*) chHeapAlloc(NULL,18+server_hostname_length+strlen(provider_ID)+strlen(sensor_ID));
109 strcpy(URL,"http://"); 110 strcpy(URL,"http://");
110 strcpy(URL+7,SERVER_HOSTNAME); 111 strcpy(URL+7,SERVER_HOSTNAME);
111 - strcpy(URL+7+SERVER_HOSTNAME_LENGTH,"/data/");  
112 - strcpy(URL+16+SERVER_HOSTNAME_LENGTH,provider_ID);  
113 - strcpy(URL+16+SERVER_HOSTNAME_LENGTH+strlen(provider_ID),"/");  
114 - strcpy(URL+17+SERVER_HOSTNAME_LENGTH+strlen(provider_ID),sensor_ID); 112 + strcpy(URL+7+server_hostname_length,"/data/");
  113 + strcpy(URL+16+server_hostname_length,provider_ID);
  114 + strcpy(URL+16+server_hostname_length+strlen(provider_ID),"/");
  115 + strcpy(URL+17+server_hostname_length+strlen(provider_ID),sensor_ID);
115 } 116 }
116 117
117 /* SELF-REMINDER 118 /* SELF-REMINDER
@@ -121,8 +122,9 @@ uint8_t send_observation(char* statement, uint32_t length, char* provider_ID, ch @@ -121,8 +122,9 @@ uint8_t send_observation(char* statement, uint32_t length, char* provider_ID, ch
121 * --Imanol 122 * --Imanol
122 */ 123 */
123 124
124 - response_code = http_post(URL,statement,URL_length,length);  
125 - if(response code == 200) 125 + //response_code = http_post(URL,statement,URL_length,length);
  126 + response_code = 200; //placeholder
  127 + if(response_code == 200)
126 { 128 {
127 return JSON_POST_OK; 129 return JSON_POST_OK;
128 } 130 }