Commit c23a8c4548e43d7a49cbd6ca399c41eb28b8b1c4

Authored by Maria Jorba Brosa
1 parent b4b1b5c4

--no commit message

Project/applications/smartcities/main2.c
... ... @@ -29,7 +29,7 @@ void initLibwismart(void)
29 29 uint8_t connected=0;
30 30 uint8_t timeout=0;
31 31 uint8_t retries=0;
32   -uint8_t total_sensors=0;
  32 +uint8_t first_sensor=0;
33 33  
34 34 void init_registry(void)
35 35 {
... ... @@ -86,55 +86,62 @@ void init_registry(void)
86 86  
87 87 }
88 88  
89   -void send_data(char** buffers[j], uint32_t ind[], uint32_t sizes[j], uint8_t sensors[]);
  89 +void send_data(char** buffers[j], uint32_t ind[], uint32_t sizes[j], uint8_t* sensors);
90 90 {
91 91 int j;
92   - for(j=0;j<total_sensors;j++)
93   - {
94   - printf(" enviant buffer %d\r\n",j);
95   -
96   - // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
97   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, sensors[j]);
98   -
99   - if(ok==JSON_COMM_ERROR)
  92 + for(j=0;j<TOTAL_SENSORS;j++)
  93 + {
  94 + if(sensors[i]!=0)
100 95 {
101   - printf("wismart is not connected\r\n");
102   - }
103   - else if( ok==JSON_OTHER_ERROR){
104   - printf("some error ocurred\r\n");
105   - }
106   - else if(ok ==JSON_POST_OK){
107   - printf(" send OK \r\n");
  96 + printf(" enviant buffer %d\r\n",j);
  97 +
  98 + // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
  99 + int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, sensors[j]);
  100 +
  101 + if(ok==JSON_COMM_ERROR)
  102 + {
  103 + printf("wismart is not connected\r\n");
  104 + }
  105 + else if( ok==JSON_OTHER_ERROR){
  106 + printf("some error ocurred\r\n");
  107 + }
  108 + else if(ok ==JSON_POST_OK){
  109 + printf(" send OK \r\n");
  110 + }
108 111 }
109 112 }
110 113 }
111 114  
112   -void put_buffers(char** buffers,uint32_t ind[],uint32_t sizes[],char** cooked){
  115 +void put_buffers(char** buffers,uint32_t ind[],uint32_t sizes[],char** cooked, uint8_t* sensors){
113 116 int i;
114   - for(i=0;i<total_sensors;i++){
115   - put_message(cooked[i], buffers[i] ,&ind[i],&sizes[i]);
116   - chHeapFree(cooked[i]);
  117 + for(i=0;i<TOTAL_SENSORS;i++){
  118 + if(sensors[i]!=0){
  119 + put_message(cooked[i], buffers[i] ,&ind[i],&sizes[i]);
  120 + chHeapFree(cooked[i]);
  121 + }
117 122 }
118 123  
119 124 }
120   -char** timestamp_datas(char* value[],unsigned long timestamp){
  125 +char** timestamp_datas(char* value[],unsigned long timestamp, uint8_t* sensors){
121 126  
122 127 char** cooked_data;
123 128 Date t=getDate(timestamp);
124 129 int i;
125   - for(i=0;i<total_sensors;i++){
126   - cooked_data[i]=timestamp_data(value[i], t);
127   - chHeapFree(value[i]);
  130 + for(i=0;i<TOTAL_SENSORS;i++){
  131 + if(sensors[i]!=0){
  132 + cooked_data[i]=timestamp_data(value[i], t);
  133 + chHeapFree(value[i]);
  134 + }
128 135 }
129 136 return cooked_data;
130 137 }
131 138  
132   -void sensor_scan(){
133   - I2C_scan(sensors);
  139 +void first_sens(uint8_t* sensors){
134 140 int i;
135   - for(i=0;i<TOTAL_SENSORS;i++){
  141 + for(i=0;i<TOTAL_SENSORS:i++){
136 142 if(sensors[i]!=0){
137   - total_sensors++;
  143 + first_sensor=i;
  144 + break;
138 145 }
139 146 }
140 147 }
... ... @@ -151,10 +158,8 @@ int main(void)
151 158  
152 159 //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
153 160 uint8_t sensors[TOTAL_SENSORS];
154   - sensor_scan();
155   - char* valueSensors[total_sensors];
  161 + char* valueSensors[TOTAL_SENSORS];
156 162 I2C_scan(sensors);
157   -
158 163 //conectar wifi
159 164 //unsigned int time = getNTPTime();
160 165 unsigned int time = getSecsSince1900();
... ... @@ -231,7 +236,7 @@ int main(void)
231 236 printf("--------------hard limit-------------\r\n");
232 237  
233 238 // fem servir 085 de prova, però haurem de fer servir sensor_id[0]
234   - while( send(buffers[0],&ind[0],&sizes[0], mod.ID, sensors[j]) != JSON_POST_OK )
  239 + while( send(buffers[first_sensor],&ind[first_sensor],&sizes[first_sensor], mod.ID, sensors[first_sensor]) != JSON_POST_OK )
235 240 {
236 241 // El servidor no ens sap dir si tenim permisos o no sense registrar una mostra.
237 242 // Intentem enviar un buffer sencer, a veure si ja podem buidar.
... ... @@ -241,22 +246,24 @@ int main(void)
241 246 chThdSleepMilliseconds(HARD_LIMIT_WAIT_TIME);
242 247 }
243 248 int j;
244   - for(j=1;j<total_sensors;j++)
245   - {
246   - printf(" enviant buffer %d\r\n",j);
247   -
248   - // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
249   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, sensors[j]);
250   - if(ok==JSON_COMM_ERROR)
251   - {
252   - printf("wismart is not connected\r\n");
253   - }
254   - else if( ok==JSON_OTHER_ERROR){
255   - printf("some error ocurred\r\n");
256   - }
257   - else if(ok ==JSON_POST_OK){
258   - printf(" send OK \r\n");
  249 + for(j=1;j<TOTAL_SENSORS;j++)
  250 + {
  251 + if(sensors[j]!=0){
  252 + printf(" enviant buffer %d\r\n",j);
  253 + // fem servir 085 de prova, però haurem de fer servir sensor_id[j]
  254 + int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, sensors[j]);
  255 + if(ok==JSON_COMM_ERROR)
  256 + {
  257 + printf("wismart is not connected\r\n");
  258 + }
  259 + else if( ok==JSON_OTHER_ERROR){
  260 + printf("some error ocurred\r\n");
  261 + }
  262 + else if(ok ==JSON_POST_OK){
  263 + printf(" send OK \r\n");
  264 + }
259 265 }
  266 +
260 267 }
261 268 }
262 269 time += getElapsedTime(delay);
... ...