Commit 8f7e33bb4c8ab2eaa7af4082474834070f5773a5
1 parent
410c7b66
Más refactoring
Showing
5 changed files
with
46 additions
and
31 deletions
Project/applications/smartcities/Makefile
Project/applications/smartcities/httpClient.c
... | ... | @@ -42,8 +42,8 @@ int httpRequest(struct httpHeaders head, char* content, int content_size) |
42 | 42 | int request_size = head_size + content_size + 2*(sizeof ENDL) + sizeof '\0'; |
43 | 43 | /* WARNING |
44 | 44 | * |
45 | - * 1. Te has olvidado el free de liberar memoria. Es SÚPER IMPORTANTE no dejar memoria sin liberar por que genera memory leaks y no vamos sobraos de ram | |
46 | - * 2. Recuerda cambiarlo luego a chHeapAlloc y chHeapFree, yo suelo hacerme unos .c's aparte en mi carpeta para no mezclar código de prueba con código de la repo, pero mientras luego lo cambies cap problema | |
45 | + * 1. Te has olvidado el free de liberar memoria. Es SÚPER IMPORTANTE no dejar memoria sin liberar por que genera memory leaks y no vamos sobraos de ram. Pa más infor sobre memory leaks, consulte al Manol más cercano. | |
46 | + * 2. Recuerda cambiarlo luego a chHeapAlloc y chHeapFree, yo suelo hacerme unos .c's aparte en mi carpeta para no mezclar código de prueba con código de la repo, pero mientras luego lo cambies cap problema. | |
47 | 47 | * |
48 | 48 | * --Imanol |
49 | 49 | */ | ... | ... |
Project/applications/smartcities/include/module.h
Project/applications/smartcities/json.c
... | ... | @@ -21,8 +21,26 @@ char* prepare_json_observation_statement(char** data, uint32_t nObservations) |
21 | 21 | |
22 | 22 | char* prepare_json_register_statement(char* module_ID, uint8_t sensor_type) |
23 | 23 | { |
24 | + //id, desc, type, unit | |
25 | + | |
26 | + unsigned int i, length, observation_length; | |
27 | + char *json_statement, *str_aux, *str_aux2; | |
28 | + length = 17; | |
29 | + str_aux = join_strings("{\"observations\":[","",length,0,JOIN_NO_FREE); | |
30 | + for(i = 0; i < nObservations; i++) | |
31 | + { | |
32 | + str_aux2 = prepare_observation(data[i],strlen(data[i])); | |
33 | + observation_length = strlen(str_aux2); | |
34 | + str_aux = join_strings(str_aux,str_aux2,length,observation_length,JOIN_FREE_MEM); | |
35 | + length += observation_length; | |
36 | + } | |
37 | + length--; //REMOVE LAST ',' | |
38 | + json_statement = join_strings(str_aux,"]}",length,2,JOIN_NO_FREE); | |
39 | + chHeapFree(str_aux); | |
40 | + return json_statement; | |
41 | + | |
24 | 42 | char *json_data, *str_aux, *str_aux2; |
25 | - int value_length = find_next_index(observation,length,','); //EXPECTS FORMATTING!!! | |
43 | + int value_length = find_next_index(observation,length,','); | |
26 | 44 | int timestamp_length = length - (value_length + 1); |
27 | 45 | char *value = (char*) chHeapAlloc(NULL,value_length+1); |
28 | 46 | char *timestamp = (char*) chHeapAlloc(NULL,timestamp_length+1); |
... | ... | @@ -43,6 +61,13 @@ char* prepare_json_register_statement(char* module_ID, uint8_t sensor_type) |
43 | 61 | char* prepare_observation(char* observation, uint32_t length) |
44 | 62 | { |
45 | 63 | char *json_data, *str_aux, *str_aux2; |
64 | + /* TOPKEK | |
65 | + * | |
66 | + * ¿Gestión de errores? | |
67 | + * ¿PA QUÉ? | |
68 | + * | |
69 | + * --le trole | |
70 | + */ | |
46 | 71 | int value_length = find_next_index(observation,length,','); //EXPECTS FORMATTING!!! |
47 | 72 | int timestamp_length = length - (value_length + 1); |
48 | 73 | char *value = (char*) chHeapAlloc(NULL,value_length+1); |
... | ... | @@ -88,6 +113,14 @@ uint8_t send_observation(char* statement, uint32_t length, char* provider_ID, ch |
88 | 113 | strcpy(URL+16+SERVER_HOSTNAME_LENGTH+strlen(provider_ID),"/"); |
89 | 114 | strcpy(URL+17+SERVER_HOSTNAME_LENGTH+strlen(provider_ID),sensor_ID); |
90 | 115 | } |
116 | + | |
117 | + /* SELF-REMINDER | |
118 | + * | |
119 | + * Cambiar esto pa usar la función de Ferràn | |
120 | + * | |
121 | + * --Imanol | |
122 | + */ | |
123 | + | |
91 | 124 | response_code = http_post(URL,statement,URL_length,length); |
92 | 125 | if(response code == 200) |
93 | 126 | { |
... | ... | @@ -128,6 +161,4 @@ char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t |
128 | 161 | free(str2); |
129 | 162 | } |
130 | 163 | return str; |
131 | -} | |
132 | - | |
133 | -//id, desc, type, unit | |
134 | 164 | \ No newline at end of file |
165 | +} | |
135 | 166 | \ No newline at end of file | ... | ... |
Project/applications/smartcities/main.c
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | #include "lwip/inet.h" |
4 | 4 | #include "globals.h" |
5 | 5 | #include "httpClient.h" |
6 | +#include "callbacks.h" | |
6 | 7 | |
7 | 8 | #define WIFI_MODE WIFI_MODE_CLIENT |
8 | 9 | #define NETWORK_SSID "linksys" |
... | ... | @@ -16,29 +17,12 @@ void initLibwismart(void) |
16 | 17 | libwismart_Init(hwif); |
17 | 18 | } |
18 | 19 | |
19 | -void dhcp_connect_result_cb(int result) | |
20 | -{ | |
21 | - libwismart_ip_addr_t ip; | |
22 | - if(result==LIBWISMART_DHCP_ADDRESS_ASSIGNED) | |
23 | - { | |
24 | - libwismart_GetCurrentIP(&ip,NULL,NULL); | |
25 | - printf("IP: %d.%d.%d.%d \r\n",ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]); | |
26 | - } | |
27 | - else if(result==LIBWISMART_DHCP_TIMEOUT) | |
28 | - { | |
29 | - printf("DHCP timeout\r\n"); | |
30 | - } | |
31 | - else | |
32 | - { | |
33 | - printf("DHCP error\r\n"); | |
34 | - } | |
35 | - | |
36 | -} | |
37 | - | |
38 | -void wifi_connect_result_cb(int result) | |
39 | -{ | |
40 | - printf("WiFi Connect indication: %s\r\n", (result == WISMART_WIFI_CONNECTED) ? "Connected": "Failed\r\n"); | |
41 | -} | |
20 | +/* erase me | |
21 | + * | |
22 | + * He movido los callbacks a un .c y .h aparte para mayor modularidad, conveniéntemente llamados callbacks.c y callbacks.h | |
23 | + * | |
24 | + * --Imanol | |
25 | + */ | |
42 | 26 | |
43 | 27 | int main(void) |
44 | 28 | { | ... | ... |