Commit 7a957821e966d0c894d4e637697c82627a12ee31

Authored by Imanol-Mikel Barba Sabariego
1 parent 502f6269

--no commit message

Project/applications/smartcities/buffer.c
... ... @@ -6,7 +6,7 @@ char** put_message(char* info, char** buf,uint32_t *index, uint32_t *buf_len){
6 6 uint32_t i,len;
7 7 len=*buf_len;
8 8 if(len==*index)
9   -{
  9 +{
10 10  
11 11 char** buffer=join_buf(buf, buf_len);
12 12 buffer[*index]=chHeapAlloc(NULL,strlen(info)+1);
... ... @@ -56,12 +56,14 @@ int send(char** buf, uint32_t *index, uint32_t *size_buf, char *provider_ID, cha
56 56 { return 2; }
57 57 printf("abans del JSON\r\n");
58 58 uint8_t res=send_json(statement, size, provider_ID, sensor_ID);
  59 + chHeapFree(statement);
59 60 int i;
60 61 printf("JSON_POST_OK ? %d\r\n",res == JSON_POST_OK);
61 62 if(res==JSON_POST_OK){
62   - //for(i=0;i<*index;i++){
63   - // chHeapFree(buf[i]);
64   - //}
  63 + for(i=0;i<*index;i++)
  64 + {
  65 + chHeapFree(buf[i]);
  66 + }
65 67 printf("djfkhvldkfjhdñkfgv\r\n");
66 68 if(buf!=NULL)
67 69 chHeapFree(buf);
... ...
Project/applications/smartcities/include/buffer.h
... ... @@ -4,8 +4,8 @@
4 4 #include "libwismart.h"
5 5 #include "json.h"
6 6  
7   -#define SOFT_LIMIT 20480 /* en bytes -> 25k * 1024 */
8   -#define HARD_LIMIT 25600
  7 +#define SOFT_LIMIT 8192 /* en bytes -> 10k * 1024 */
  8 +#define HARD_LIMIT 10240
9 9 #define MEMORY_OK 0
10 10 #define SOFT_REACHED 1
11 11 #define HARD_REACHED 2
... ...
Project/applications/smartcities/json.c
1 1 #include "json.h"
  2 +#include "buffer.h"
2 3  
3 4 uint8_t register_sensor(sensor sens)
4 5 {
... ... @@ -23,15 +24,14 @@ char* prepare_json_observation_statement(char** data, uint32_t nObservations)
23 24 char *json_statement, *str_aux, *str_aux2;
24 25 length = 17;
25 26 str_aux = join_strings("{\"observations\":[","",length,0,JOIN_NO_FREE);
26   - printf("nobs=%d\r\n",nObservations);
27 27 for(i = 0; i < nObservations; i++)
28 28 {
29 29 str_aux2 = prepare_observation(data[i],strlen(data[i]));
30 30 observation_length = strlen(str_aux2);
31 31 str_aux = join_strings(str_aux,str_aux2,length,observation_length,JOIN_FREE_MEM);
32 32 length += observation_length;
33   - chHeapFree(data[i]);
34 33 printf("data=%s %d \r\n",data[i],i);
  34 + check_memory();
35 35 }
36 36 length--; //REMOVE LAST ','
37 37 json_statement = join_strings(str_aux,"]}\0",length,3,JOIN_NO_FREE);
... ...
Project/applications/smartcities/main.c
... ... @@ -8,6 +8,7 @@
8 8 #include "buffer.h"
9 9 #include "i2c.h"
10 10 #include "configServer.h"
  11 +#include "sensors.h"
11 12  
12 13 #define WIFI_MODE WIFI_MODE_CLIENT
13 14 #define NETWORK_SSID_AP "modularsens"
... ... @@ -15,7 +16,6 @@
15 16 #define NETWORK_CHANNEL_AP 1
16 17  
17 18 #define HARD_LIMIT_WAIT_TIME 10*1000 //5*60*1000
18   -#define NUMSENSORS 4
19 19  
20 20 wismart_registryKey_t geo;
21 21  
... ... @@ -124,7 +124,7 @@ int main(void)
124 124 char* data="message,0";
125 125 char* data2="message,1";
126 126 char* data3="message,2";
127   - for(i=0;i<NUMSENSORS;i++){
  127 + for(i=0;i<TOTAL_SENSORS;i++){
128 128  
129 129 printf("------------------BUFFER %d ----------------------\r\n",i);
130 130 printf("index=%d\r\n",ind[i]);
... ... @@ -138,12 +138,13 @@ int main(void)
138 138 if(res==SOFT_REACHED){
139 139 printf("--------------soft limit-------------\r\n");
140 140 int j;
141   - for(j=0;j<NUMSENSORS;j++)
  141 + for(j=0;j<TOTAL_SENSORS;j++)
142 142 {
143 143 printf(" enviant buffer %d\r\n",j);
144 144  
145 145 // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
146 146 int ok=send(buffers[j],&ind[j],&sizes[j], "bmp", "085");
  147 +
147 148 if(ok==JSON_COMM_ERROR)
148 149 {
149 150 printf("wismart is not connected\r\n");
... ... @@ -170,7 +171,7 @@ int main(void)
170 171 chThdSleepMilliseconds(HARD_LIMIT_WAIT_TIME);
171 172 }
172 173 int j;
173   - for(j=1;j<NUMSENSORS;j++)
  174 + for(j=1;j<TOTAL_SENSORS;j++)
174 175 {
175 176 printf(" enviant buffer %d\r\n",j);
176 177  
... ...