Commit 60c50eb4d147a39e39d0c42bd1c143462e96bf21

Authored by Maria Jorba Brosa
1 parent c99ad75c

--no commit message

Project/applications/smartcities/main2.c
... ... @@ -31,7 +31,7 @@ void initLibwismart(void)
31 31 uint8_t connected=0;
32 32 uint8_t timeout=0;
33 33 uint8_t retries=0;
34   -uint8_t first_sensor=0;
  34 +uint8_t sensors_length=0;
35 35  
36 36 void init_registry(void)
37 37 {
... ... @@ -91,64 +91,50 @@ void init_registry(void)
91 91 void send_data(char** buffers[], uint32_t ind[], uint32_t sizes[], uint8_t sensors[])
92 92 {
93 93 int j;
94   - for(j=0;j<TOTAL_SENSORS;j++)
  94 + for(j=0;j<sensors_length;j++)
95 95 {
96   - if(sensors[j]!=0)
97   - {
98   - printf(" enviant buffer %d\r\n",j);
99   -
100   - // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
101   - char id[3];
102   - sprintf(id,"%x",sensors[j]);
103   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
  96 + printf(" enviant buffer %d\r\n",j);
  97 +
  98 + // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
  99 + char id[3];
  100 + sprintf(id,"%x",sensors[j]);
  101 + int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
104 102  
105   - if(ok==JSON_COMM_ERROR)
106   - {
107   - printf("wismart is not connected\r\n");
108   - }
109   - else if( ok==JSON_OTHER_ERROR){
110   - printf("some error ocurred\r\n");
111   - }
112   - else if(ok ==JSON_POST_OK){
113   - printf(" send OK \r\n");
114   - }
  103 + if(ok==JSON_COMM_ERROR)
  104 + {
  105 + printf("wismart is not connected\r\n");
  106 + }
  107 + else if( ok==JSON_OTHER_ERROR){
  108 + printf("some error ocurred\r\n");
  109 + }
  110 + else if(ok ==JSON_POST_OK){
  111 + printf(" send OK \r\n");
115 112 }
116 113 }
117 114 }
118 115  
119 116 void put_buffers(char** buffers[],uint32_t ind[],uint32_t sizes[],char** cooked, uint8_t* sensors){
120 117 int i;
121   - for(i=0;i<TOTAL_SENSORS;i++){
122   - if(sensors[i]!=0){
123   - put_message(cooked[i], buffers[i] ,&ind[i],&sizes[i]);
124   - chHeapFree(cooked[i]);
125   - }
  118 + for(i=0;i<sensors_length;i++){
  119 + put_message(cooked[i], buffers[i] ,&ind[i],&sizes[i]);
  120 + chHeapFree(cooked[i]);
126 121 }
127 122  
128 123 }
129 124 char** timestamp_datas(char* value[],unsigned long timestamp, uint8_t* sensors){
130 125 char** cooked_data;
131   - cooked_data = (char**) chHeapAlloc(NULL,TOTAL_SENSORS * sizeof(char*));
  126 + cooked_data = (char**) chHeapAlloc(NULL,sensors_length * sizeof(char*));
132 127 Date t=getDate(timestamp);
133 128 int i;
134   - for(i=0;i<TOTAL_SENSORS;i++){
135   - if(sensors[i]!=0){
136   - cooked_data[i]=timestamp_data(value[i], t);
137   - chHeapFree(value[i]);
138   - }
  129 + for(i=0;i<sensors_length;i++){
  130 +
  131 + cooked_data[i]=timestamp_data(value[i], t);
  132 + chHeapFree(value[i]);
  133 +
139 134 }
140 135 return cooked_data;
141 136 }
142 137  
143   -void first_sens(uint8_t* sensors){
144   - int i;
145   - for(i=0;i<TOTAL_SENSORS;i++){
146   - if(sensors[i]!=0){
147   - first_sensor=i;
148   - break;
149   - }
150   - }
151   -}
152 138  
153 139 void wifi_connect(void)
154 140 {
... ... @@ -185,10 +171,11 @@ int main(void)
185 171 libwismart_EnableBsdSocketAPI();
186 172  
187 173 //Escanea los sensores -> retorna un vector con las direcciones en cada posición del vector, si la posición del vector retorna un cero -> no existe el sensor
  174 +
188 175 uint8_t sensors[TOTAL_SENSORS];
189 176 char* valueSensors[TOTAL_SENSORS];
190 177 I2C_scan(sensors);
191   - first_sens(sensors);
  178 + sensors_length=strlen(sensors);
192 179 //registrar sensores
193 180 //Esta funcion esta mas arriba para no repetir código luego -- Imanol
194 181 wifi_connect();
... ... @@ -202,9 +189,9 @@ int main(void)
202 189 unsigned long delay2 = 0;
203 190 sleep_thread(SHORT_PERIOD - time%SHORT_PERIOD);
204 191  
205   - uint32_t ind[TOTAL_SENSORS]={0};
206   - char** buffers[TOTAL_SENSORS];
207   - uint32_t sizes[TOTAL_SENSORS]={0};
  192 + uint32_t ind[sensors_length]={0};
  193 + char** buffers[sensors_length];
  194 + uint32_t sizes[sensors_length]={0};
208 195 //char* cooked_data[TOTAL_SENSORS];
209 196 int i = 1;
210 197  
... ... @@ -261,8 +248,8 @@ int main(void)
261 248 wifi_connect();
262 249 // fem servir 085 de prova, però haurem de fer servir sensor_id[0]
263 250 char id_0[3];
264   - sprintf(id_0,"%x",sensors[first_sensor]);
265   - while( send(buffers[first_sensor],&ind[first_sensor],&sizes[first_sensor], mod.ID, id_0) != JSON_POST_OK )
  251 + sprintf(id_0,"%x",sensors[0]);
  252 + while( send(buffers[0],&ind[0],&sizes[0], mod.ID, id_0) != JSON_POST_OK )
266 253 {
267 254 // El servidor no ens sap dir si tenim permisos o no sense registrar una mostra.
268 255 // Intentem enviar un buffer sencer, a veure si ja podem buidar.
... ... @@ -272,25 +259,25 @@ int main(void)
272 259 chThdSleepMilliseconds(HARD_LIMIT_WAIT_TIME);
273 260 }
274 261 int j;
275   - for(j=first_sensor;j<TOTAL_SENSORS;j++)
  262 + for(j=1;j<sensors_length;j++)
276 263 {
277   - if(sensors[j]!=0){
278   - printf(" enviant buffer %d\r\n",j);
279   - // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
280   - char id[3];
281   - sprintf(id,"%x",sensors[j]);
282   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
283   - if(ok==JSON_COMM_ERROR)
284   - {
285   - printf("wismart is not connected\r\n");
286   - }
287   - else if( ok==JSON_OTHER_ERROR){
288   - printf("some error ocurred\r\n");
289   - }
290   - else if(ok ==JSON_POST_OK){
291   - printf(" send OK \r\n");
292   - }
  264 +
  265 + printf(" enviant buffer %d\r\n",j);
  266 + // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
  267 + char id[3];
  268 + sprintf(id,"%x",sensors[j]);
  269 + int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
  270 + if(ok==JSON_COMM_ERROR)
  271 + {
  272 + printf("wismart is not connected\r\n");
  273 + }
  274 + else if( ok==JSON_OTHER_ERROR){
  275 + printf("some error ocurred\r\n");
293 276 }
  277 + else if(ok ==JSON_POST_OK){
  278 + printf(" send OK \r\n");
  279 + }
  280 +
294 281 }
295 282 wifi_disconnect();
296 283 }
... ...