# SVN changeset patch # User imanay # Date 2013-10-02 19:38:15.948248 # Revision 247 Index: trunk/absroot/source/absc/Control_Module/ServidorTCP.c =================================================================== diff --git a/trunk/absroot/source/absc/Control_Module/ServidorTCP.c b/trunk/absroot/source/absc/Control_Module/ServidorTCP.c --- a/trunk/absroot/source/absc/Control_Module/ServidorTCP.c (revision 246) +++ b/trunk/absroot/source/absc/Control_Module/ServidorTCP.c (revision 247) @@ -77,6 +77,8 @@ char *buff_experimento= NULL; +//char *cbeam = malloc(7); +char *cbeam = NULL; AT91S_PIO *pioc; AT91S_PIO *piob; @@ -116,6 +118,7 @@ int cambia_apuntamiento(char *puntero_char); int carga_experimento(char *nombre_archivo); char *chequeo_sistema(char *filename, char *numero_muestras); +char *chequeo_sistema2(); void escribe_experimento(char *data, char filename[]); char *Lee_experimento(char *filename); void consigue_nombre_experimento(char *rx_data, char filename[]); @@ -422,6 +425,51 @@ strcpy(tx_data,parameters.ID); printf("%s\n",tx_data); } + else if(strcmp(cmd,"MNTR") == 0){ + if(strcmp(rx_data,"0") == 0){ + //Only current beam is requested + tx_data = malloc(50); + strcpy(tx_data,parameters.ID); + strcat(tx_data,"\n-------\n"); + strcat(tx_data,cbeam); + printf("%s\n",tx_data); + } + else if(strcmp(rx_data,"1") == 0){ + //Only relay status is requested + tx_data = malloc(50); + strcpy(tx_data,parameters.ID); + strcat(tx_data,"\n-------\n"); + strcat(tx_data,chequeo_sistema2()); + printf("%s\n",tx_data); + } + else if(strcmp(rx_data,"2") == 0){ + //Only phase is requested + tx_data = malloc(100); + strcpy(tx_data,parameters.ID); + strcat(tx_data,"\n-------\n"); + strcat(tx_data,ABS_monitoreo(1, 0, 50, 10)); + printf("%s\n",tx_data); + } + else if(strcmp(rx_data,"3") == 0){ + //Current beam and relay status is requested + tx_data = malloc(100); + strcpy(tx_data,parameters.ID); + strcat(tx_data,"\n-------\n"); + strcat(tx_data,cbeam); + strcat(tx_data,chequeo_sistema2()); + printf("%s\n",tx_data); + } + else{ + //Current beam, relays status and phase is requested + tx_data = malloc(100); + strcpy(tx_data,parameters.ID); + strcat(tx_data,"\n-------\n"); + strcat(tx_data,cbeam); + strcat(tx_data,chequeo_sistema2()); + strcat(tx_data,ABS_monitoreo(1, 0, 50, 10)); + printf("%s\n",tx_data); + } + } else{ tx_data = (char*)malloc(6); tx_data = "Error"; @@ -559,7 +607,7 @@ int base= 7*puntero; // base= cantidad_bytes del dato x puntero // cantidad de bytes es el numero de bytes que - printf("%s\n",puntero_char); // contiene cada dato, para este caso es 7 + // contiene cada dato, para este caso es 7 // porque es 6 bits de datos + 1 bit del cambio // de linea. char valor_char; @@ -580,6 +628,13 @@ acumulado_unos= acumulado_unos + (1 << desplazamiento[offset]); } } + // + + char cero = '\0'; + char enter = '\n'; + cbeam = malloc(8); + sprintf(cbeam,"%c%c%c%c%c%c%c%c",buff_experimento[base],buff_experimento[base+1],buff_experimento[base+2],buff_experimento[base+3],buff_experimento[base+4],buff_experimento[base+5],enter,cero); + printf("Beam: %s : %s\n",puntero_char,cbeam); pio_out(pioc, maskc_out_beam, acumulado_unos, 1); pio_out(pioc, maskc_out_beam, acumulado_ceros, 0); @@ -641,6 +696,40 @@ return all_pages; } +char* chequeo_sistema2(){ + + int i; + unsigned int entradac= 0; + char page1[8]; + + //Inicializando arreglo + for(i=0;i<6;i++) + page1[i]='0'; + page1[6] = '\n'; + page1[7] = '\0'; + //Lectura de puerto + entradac= pio_in(piob,maskb_in); + //Dandole formato al dato + if (!(entradac & bit_up_2)) + page1[0] = '1'; + if (!(entradac & bit_up_1)) + page1[1] = '1'; + if (!(entradac & bit_up_0)) + page1[2] = '1'; + if (!(entradac & bit_dow_2)) + page1[3] = '1'; + if (!(entradac & bit_dow_1)) + page1[4] = '1'; + if (!(entradac & bit_dow_0)) + page1[5] = '1'; + + char *all_pages = malloc(strlen(page1)+1); + strcpy(all_pages, page1); + + return all_pages; +} + + int update_app(char *filename, char *ip_number){ char cmd[80]; @@ -745,7 +834,7 @@ FILE *archivo; float phase1; float phase2; - char page0[30]; + //char page0[30]; char page1[20]; int cnt = 0; @@ -896,14 +985,16 @@ sleep(1); - strcpy(page0,parameters.ID); - strcat(page0,"\n-------\n"); +// strcpy(page0,parameters.ID); +// strcat(page0,"\n-------\n"); //sprintf(page1,"UP:%1.2f DW:%1.2f\n",phase1, phase2); - sprintf(page1,"%1.2f %1.2f\n",phase1, phase2); - strcat(page0,page1); - char *all_pages = malloc(strlen(page0)+1); - strcpy(all_pages, page0); + sprintf(page1,"%1.2f\n%1.2f\n",phase1, phase2); + page1[strlen(page1)]='\0'; +// strcat(page0,page1); +// char *all_pages = malloc(strlen(page0)+1); + char *all_pages = malloc(strlen(page1)+1); + strcpy(all_pages, page1); return all_pages; // }