##// END OF EJS Templates
Testing frame without semicolon.
imanay -
r103:104
parent child
Show More
@@ -56,6 +56,16
56
56
57 typedef struct control_module_parameters cmp;
57 typedef struct control_module_parameters cmp;
58
58
59
60 char *header = NULL;
61 char *TypeOfInstrument = NULL;
62 char *iDSource = NULL;
63 char *iDDestino = NULL;
64 char *len = NULL;
65 char *cmd = NULL;
66 char *rx_data = NULL;
67 char *crc = NULL;
68
59 cmp parameters;
69 cmp parameters;
60 /*
70 /*
61 * Zona de declaracion de cabeceras.
71 * Zona de declaracion de cabeceras.
@@ -68,9 +78,12
68 void procesa_peticion(char *rx_buffer, char *tx_buffer);
78 void procesa_peticion(char *rx_buffer, char *tx_buffer);
69 int cambia_apuntamiento(char *puntero_char);
79 int cambia_apuntamiento(char *puntero_char);
70 int carga_experimento(char *nombre_archivo);
80 int carga_experimento(char *nombre_archivo);
71 int chequeo_sistema(char *filename, char *numero_muestras);
81 char *chequeo_sistema(char *filename, char *numero_muestras);
82 int chequeo_sistema2(char *filename, char *numero_muestras);
72 void recibe_experimento(char *data, char filename[]);
83 void recibe_experimento(char *data, char filename[]);
73 char* File2buffer(char *filename2, int n);
84 char* File2buffer(char *filename2, int n);
85 void SplitFrame(char *frame);
86 void procesa_peticion2(char *rx_buffer, char *tx_buffer);
74
87
75 /*
88 /*
76 *
89 *
@@ -85,7 +98,7
85 char *tx_buffer = (char *) malloc(TAM_BUFFER);
98 char *tx_buffer = (char *) malloc(TAM_BUFFER);
86 /* Inicializa parametros del modulo*/
99 /* Inicializa parametros del modulo*/
87 parameters = inicializa_modulo(parameters);
100 parameters = inicializa_modulo(parameters);
88 printf("%s%s%s%s",parameters.ID, parameters.param2, parameters.param3, parameters.param4);
101 printf("%s\n%s\n%s\n%s\n",parameters.ID, parameters.param2, parameters.param3, parameters.param4);
89 /* Inicializa red*/
102 /* Inicializa red*/
90 servSocket = inicializa_ethernet();
103 servSocket = inicializa_ethernet();
91 /* Inicializamos el puerto GPIO del sistema embebido GSBC-9260S */
104 /* Inicializamos el puerto GPIO del sistema embebido GSBC-9260S */
@@ -204,7 +217,7
204 /*
217 /*
205 * Esta funcion procesa el mensaje de peticion y genera respuesta
218 * Esta funcion procesa el mensaje de peticion y genera respuesta
206 */
219 */
207 void procesa_peticion(char *rx_buffer, char *tx_buffer){
220 void procesa_peticion2(char *rx_buffer, char *tx_buffer){
208 int n = 0;
221 int n = 0;
209 char filename1[50];
222 char filename1[50];
210 char filename2[] = "verificacion.txt";
223 char filename2[] = "verificacion.txt";
@@ -237,7 +250,7
237 }
250 }
238
251
239 else if(strcmp(cmd,"ANST") == 0){
252 else if(strcmp(cmd,"ANST") == 0){
240 n = chequeo_sistema(filename2,rx_data);
253 n = chequeo_sistema2(filename2,rx_data);
241 printf("%i\n",n);
254 printf("%i\n",n);
242 tx_data = File2buffer(filename2, n);
255 tx_data = File2buffer(filename2, n);
243 }
256 }
@@ -264,6 +277,120
264 strcat(tx_buffer,crc);
277 strcat(tx_buffer,crc);
265 strcat(tx_buffer,":");
278 strcat(tx_buffer,":");
266 strcat(tx_buffer,"quit");
279 strcat(tx_buffer,"quit");
280 }
281 }
282
283 void SplitFrame(char *frame){
284 header = malloc(4);
285 *header = *frame;
286 *(header + 1) = *(frame + 1);
287 *(header + 2) = *(frame + 2);
288 *(header + 3) = '\0';
289 TypeOfInstrument = malloc(4);
290 *TypeOfInstrument = *(frame + 3);
291 *(TypeOfInstrument + 1) = *(frame + 4);
292 *(TypeOfInstrument + 2) = *(frame + 5);
293 *(TypeOfInstrument + 3) = '\0';
294 iDSource = malloc(8);
295 *iDSource = *(frame + 6);
296 *(iDSource + 1) = *(frame + 7);
297 *(iDSource + 2) = *(frame + 8);
298 *(iDSource + 3) = *(frame + 9);
299 *(iDSource + 4) = *(frame + 10);
300 *(iDSource + 5) = *(frame + 11);
301 *(iDSource + 6) = *(frame + 12);
302 *(iDSource + 7) = '\0';
303 iDDestino = malloc(8);
304 *iDDestino = *(frame + 13);
305 *(iDDestino + 1) = *(frame + 14);
306 *(iDDestino + 2) = *(frame + 15);
307 *(iDDestino + 3) = *(frame + 16);
308 *(iDDestino + 4) = *(frame + 17);
309 *(iDDestino + 5) = *(frame + 18);
310 *(iDDestino + 6) = *(frame + 19);
311 *(iDDestino + 7) = '\0';
312 len = malloc(7);
313 *len = *(frame + 20);
314 *(len + 1) = *(frame + 21);
315 *(len + 2) = *(frame + 22);
316 *(len + 3) = *(frame + 23);
317 *(len + 4) = *(frame + 24);
318 *(len + 5) = *(frame + 25);
319 *(len + 6) = '\0';
320 cmd = malloc(5);
321 *cmd = *(frame + 26);
322 *(cmd + 1) = *(frame + 27);
323 *(cmd + 2) = *(frame + 28);
324 *(cmd + 3) = *(frame + 29);
325 *(cmd + 4) = '\0';
326
327 int l = atoi(len) - 31; //Resto del tamaΓ±o total de la trama los 31 bytes fijos
328 rx_data = malloc(l);
329 int i;
330 for (i = 30; i < 30 + l; i++)
331 *(rx_data + (i-30)) = *(frame + i);
332 *(rx_data + l) = '\0';
333 crc = malloc(2);
334 *crc = *(frame + 30 + l);
335 *(crc + 1) = '\0';
336 }
337
338 void procesa_peticion(char *rx_buffer, char *tx_buffer){
339 // int n = 0;
340 char filename1[50];
341 char filename2[] = "verificacion.txt";
342 char *tx_data = NULL;
343 SplitFrame(rx_buffer);
344 printf("Split\n");
345 printf("%s\n",header);
346 printf("%s\n",TypeOfInstrument);
347 printf("%s\n",iDSource);
348 printf("%s\n",iDDestino);
349 printf("%s\n",len);
350 printf("%s\n",cmd);
351 printf("%s\n",rx_data);
352 printf("%s\n",crc);
353 printf("Split\n");
354
355 if ((cmd == NULL) || (rx_data == NULL)){
356 ERROR("procesarPeticion: formato de mensaje incorrecto");
357 }
358 else{
359 if(strcmp(cmd,"SNDF") == 0){
360 recibe_experimento(rx_data,filename1);
361 carga_experimento(filename1);
362 cambia_apuntamiento("0");
363 tx_data = (char*)malloc(3);
364 tx_data = "OK";
365 }
366 else if(strcmp(cmd,"CHGB") == 0){
367 cambia_apuntamiento(rx_data);
368 tx_data = (char*)malloc(3);
369 tx_data = "OK";
370
371 }
372
373 else if(strcmp(cmd,"ANST") == 0){
374 /*n = chequeo_sistema(filename2,rx_data);
375 printf("%i\n",n);
376 tx_data = File2buffer(filename2, n);*/
377 tx_data = chequeo_sistema(filename2,rx_data);
378 printf("%s\n",tx_data);
379 }
380 else{
381 tx_data = (char*)malloc(6);
382 tx_data = "Error";
383 ERROR("procesa_peticion: comando no reconocido");
384 }
385
386 strcpy(tx_buffer,header); //3
387 strcat(tx_buffer,TypeOfInstrument); //3
388 strcat(tx_buffer,parameters.ID); //7
389 strcat(tx_buffer,iDSource); //7
390 strcat(tx_buffer,"00032"); //5
391 strcat(tx_buffer,cmd); //4
392 strcat(tx_buffer,tx_data); //2
393 strcat(tx_buffer,crc); //1
267
394
268 }
395 }
269
396
@@ -388,7 +515,7
388 * archivo Verificacion.
515 * archivo Verificacion.
389 */
516 */
390
517
391 int chequeo_sistema(char *filename, char *numero_muestras){
518 int chequeo_sistema2(char *filename, char *numero_muestras){
392
519
393 char valor[7];
520 char valor[7];
394 int i,cnt;
521 int i,cnt;
@@ -396,7 +523,7
396 FILE *fd;
523 FILE *fd;
397 fd=fopen(filename,"w");
524 fd=fopen(filename,"w");
398 fprintf(fd,"%s\n","Verificacion");
525 fprintf(fd,"%s\n","Verificacion");
399 fprintf(fd,"%s",parameters.ID);
526 fprintf(fd,"%s\n",parameters.ID);
400 fprintf(fd,"%s\n","------------");
527 fprintf(fd,"%s\n","------------");
401 cnt=0;
528 cnt=0;
402 do
529 do
@@ -448,12 +575,68
448 return tx_data;
575 return tx_data;
449 }
576 }
450
577
578 /*
579 * Esta funcion lee "n" veces el estado del APUNTE actual y reporta
580 * una cadena de Verificacion.
581 */
582 char* chequeo_sistema(char *filename, char *numero_muestras){
583
584 int i;
585 int cnt = 0;
586 unsigned int entradac= 0;
587
588 char page0[250];
589
590 strcpy(page0,"Verificacion\n");
591 strcat(page0,parameters.ID);
592 strcat(page0,"\n------------\n");
593
594 char page1[8];
595
596 do{
597 //Inicializando arreglo
598 for(i=0;i<6;i++)
599 page1[i]='0';
600 page1[6] = '\n';
601 page1[7] = '\0';
602 //Lectura de puerto
603 entradac= pio_in(piob,maskb_in);
604 //Dandole formato al dato
605 if (!(entradac & bit_up_2))
606 page1[0] = '1';
607 if (!(entradac & bit_up_1))
608 page1[1] = '1';
609 if (!(entradac & bit_up_0))
610 page1[2] = '1';
611 if (!(entradac & bit_dow_2))
612 page1[3] = '1';
613 if (!(entradac & bit_dow_1))
614 page1[4] = '1';
615 if (!(entradac & bit_dow_0))
616 page1[5] = '1';
617
618 strcat(page0, page1);
619 cnt=cnt+1;
620 usleep(1*1000*1000);
621
622 }while(cnt < atoi(numero_muestras));
623
624 page0[strlen(page0)] = '\0';
625
626 char *all_pages = malloc(strlen(page0)+1);
627 strcpy(all_pages, page0);
628 return all_pages;
629 }
451 cmp inicializa_modulo(cmp p){
630 cmp inicializa_modulo(cmp p){
452 FILE *fd = fopen("configuration.txt","r");
631 FILE *fd = fopen("configuration.txt","r");
453 fgets(p.ID,20,fd);
632 fgets(p.ID,20,fd);
633 p.ID[7]='\0';
454 fgets(p.param2,20,fd);
634 fgets(p.param2,20,fd);
635 p.param2[10]='\0';
455 fgets(p.param3,20,fd);
636 fgets(p.param3,20,fd);
637 p.param3[10]='\0';
456 fgets(p.param4,20,fd);
638 fgets(p.param4,20,fd);
639 p.param4[10]='\0';
457 fclose(fd);
640 fclose(fd);
458 return p;
641 return p;
459 }
642 }
General Comments 0
You need to be logged in to leave comments. Login now