Commit 041e39452f8795e667572e5247268406ec65a22c

Authored by Imanol-Mikel Barba Sabariego
1 parent 1e762ea6

--no commit message

Project/applications/smartcities/callbacks.c
@@ -7,6 +7,7 @@ void dhcp_connect_result_cb(int result) @@ -7,6 +7,7 @@ void dhcp_connect_result_cb(int result)
7 { 7 {
8 libwismart_GetCurrentIP(&ip,NULL,NULL); 8 libwismart_GetCurrentIP(&ip,NULL,NULL);
9 printf("IP: %d.%d.%d.%d \r\n",ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]); 9 printf("IP: %d.%d.%d.%d \r\n",ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]);
  10 + connected = 1;
10 } 11 }
11 else if(result==LIBWISMART_DHCP_TIMEOUT) 12 else if(result==LIBWISMART_DHCP_TIMEOUT)
12 { 13 {
Project/applications/smartcities/include/callbacks.h
@@ -6,4 +6,6 @@ @@ -6,4 +6,6 @@
6 void dhcp_connect_result_cb(int result); 6 void dhcp_connect_result_cb(int result);
7 void wifi_connect_result_cb(int result); 7 void wifi_connect_result_cb(int result);
8 8
  9 +extern uint8_t connected;
  10 +
9 #endif 11 #endif
10 \ No newline at end of file 12 \ No newline at end of file
Project/applications/smartcities/include/json.h
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 #include <string.h> 9 #include <string.h>
10 #include <stdio.h> 10 #include <stdio.h>
11 #include "libwismart.h" 11 #include "libwismart.h"
  12 +#include "httpClient.h"
12 13
13 #define JSON_POST_OK 0 14 #define JSON_POST_OK 0
14 #define JSON_COMM_ERROR 1 15 #define JSON_COMM_ERROR 1
@@ -17,7 +18,7 @@ @@ -17,7 +18,7 @@
17 #define JOIN_NO_FREE 0 18 #define JOIN_NO_FREE 0
18 #define JOIN_FREE_MEM 1 19 #define JOIN_FREE_MEM 1
19 20
20 -char* prepare_json_statement(char** data, uint32_t nObservations); 21 +char* prepare_json_observation_statement(char** data, uint32_t nObservations);
21 char* prepare_json_register_statement(module mod, sensor sens); 22 char* prepare_json_register_statement(module mod, sensor sens);
22 char* prepare_observation(char* observation, uint32_t length); 23 char* prepare_observation(char* observation, uint32_t length);
23 uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sensor_ID); 24 uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sensor_ID);
Project/applications/smartcities/json.c
@@ -89,8 +89,7 @@ char* prepare_observation(char* observation, uint32_t length) @@ -89,8 +89,7 @@ char* prepare_observation(char* observation, uint32_t length)
89 uint8_t send_json(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;  
93 - int server_hostname_length = strlen(SERVER_HOSTNAME); 92 + char *URL, *PATH;
94 connectivity = libwismart_IsConnected(); 93 connectivity = libwismart_IsConnected();
95 if(connectivity != WISMART_CONNECTED) 94 if(connectivity != WISMART_CONNECTED)
96 { 95 {
@@ -98,32 +97,31 @@ uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sen @@ -98,32 +97,31 @@ uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sen
98 } 97 }
99 if(sensor_ID == NULL) //Register sensor 98 if(sensor_ID == NULL) //Register sensor
100 { 99 {
101 - URL = (char*) chHeapAlloc(NULL,17+server_hostname_length+strlen(provider_ID)); 100 + URL = (char*) chHeapAlloc(NULL,8+strlen(SERVER_HOSTNAME));
102 strcpy(URL,"http://"); 101 strcpy(URL,"http://");
103 strcpy(URL+7,SERVER_HOSTNAME); 102 strcpy(URL+7,SERVER_HOSTNAME);
104 - strcpy(URL+7+server_hostname_length,"/catalog/");  
105 - strcpy(URL+16+server_hostname_length,provider_ID); 103 + PATH = (char*) chHeapAlloc(NULL,10+strlen(provider_ID));
  104 + strcpy(PATH,"/catalog/");
  105 + strcpy(PATH+9,provider_ID);
106 } 106 }
107 else //Post data 107 else //Post data
108 { 108 {
109 - URL = (char*) chHeapAlloc(NULL,18+server_hostname_length+strlen(provider_ID)+strlen(sensor_ID)); 109 + URL = (char*) chHeapAlloc(NULL,8+strlen(SERVER_HOSTNAME));
110 strcpy(URL,"http://"); 110 strcpy(URL,"http://");
111 strcpy(URL+7,SERVER_HOSTNAME); 111 strcpy(URL+7,SERVER_HOSTNAME);
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); 112 + URL[7+strlen(SERVER_HOSTNAME)] = '\0';
  113 + PATH = (char*) chHeapAlloc(NULL,8+strlen(provider_ID)+strlen(sensor_ID));
  114 + strcpy(PATH,"/data/");
  115 + strcpy(PATH+6,provider_ID);
  116 + strcpy(PATH+6+strlen(provider_ID),sensor_ID);
  117 + PATH[7+strlen(provider_ID)+strlen(sensor_ID)] = '\0';
116 } 118 }
117 -  
118 - /* SELF-REMINDER  
119 - *  
120 - * Cambiar esto pa usar la función de Ferràn  
121 - *  
122 - * --Imanol  
123 - */  
124 -  
125 - //response_code = http_post(URL,statement,URL_length,length);  
126 - response_code = 200; //placeholder 119 + printf("%s: %d\n\r",PATH,strlen(PATH));
  120 + printf("%s: %d\n\r",URL,strlen(URL));
  121 + struct httpHeaders server = { put,PATH,strlen(PATH),URL,strlen(URL)};
  122 + response_code = httpRequest(server, statement, length);
  123 + chHeapFree(PATH);
  124 + chHeapFree(URL);
127 if(response_code == 200) 125 if(response_code == 200)
128 { 126 {
129 return JSON_POST_OK; 127 return JSON_POST_OK;
@@ -159,11 +157,8 @@ char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t @@ -159,11 +157,8 @@ char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t
159 strncat(str,str2,len2); 157 strncat(str,str2,len2);
160 if(free_mem) 158 if(free_mem)
161 { 159 {
162 - free(str1);  
163 - free(str2); 160 + chHeapFree(str1);
  161 + chHeapFree(str2);
164 } 162 }
165 return str; 163 return str;
166 -}  
167 -  
168 -//check if exists  
169 -//subscribe  
170 \ No newline at end of file 164 \ No newline at end of file
  165 +}
171 \ No newline at end of file 166 \ No newline at end of file