Index: trunk/absroot/source/absc/Control_Module/.cproject
===================================================================
diff --git a/trunk/absroot/source/absc/Control_Module/.cproject b/trunk/absroot/source/absc/Control_Module/.cproject
--- a/trunk/absroot/source/absc/Control_Module/.cproject (revision 45)
+++ b/trunk/absroot/source/absc/Control_Module/.cproject (revision 46)
@@ -15,7 +15,7 @@
-
+
@@ -35,6 +35,7 @@
+
@@ -44,6 +45,11 @@
+
+
+
+
+
@@ -210,7 +216,6 @@
-
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
deleted file mode 10644
--- a/trunk/absroot/source/absc/Control_Module/ServidorTCP.c (revision 45)
+++ /dev/null (revision 46)
@@ -1,324 +0,0 @@
-/*
- * Servidor.c
- *
- * Created on: Nov 3, 2009
- * Author: Jose Francisco Quenta
- *
- * Se implementa:
- * -Carga en memoria los apuntes contenidos en un archivo de experimentos: apunte0 -> GPIO
- * -Cambio de apunte.
- * -Lectura del estado actual del apunte y grabado del mismo en un archivo
- */
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include "./Librerias/AT91gpio_Funciones.h"
-#include "./Librerias/Mensajes.h"
-
-#define PUERTO_SERVIDOR 5500
-#define TAM_BUFFER 100
-
-#define maskc_out PC30+PC28+PC26+PC24+PC22+PC20 //MSB-UP-LSB MSB-DOWN-LSB //APUNTE
-
-#define maskb_in PB16+PB18+PB20+PB30+PB24+PB22 //MSB-UP-LSB MSB-DOWN-LSB //VERIFICACION
-
-#define bit_up_2 0x00010000 //Mascara de cada bit a revisar: bit_up_2 es MSB
-#define bit_up_1 0x00040000
-#define bit_up_0 0x00100000
-#define bit_dow_2 0x40000000
-#define bit_dow_1 0x01000000
-#define bit_dow_0 0x00400000
-
-#define MyID 11
-
-char *buff_experimento= NULL;
-
-AT91S_PIO *pioc;
-AT91S_PIO *piob;
-
-/*
- * Zona de declaracion de cabeceras.
- */
-void inicializa_gpio();
-int procesa_peticion(char *buff_peticion);
-int cambia_apuntamiento(char *puntero_char);
-int carga_experimento(char *nombre_archivo);
-int chequeo_sistema(char *numero_muestras);
-
-/*
- *
- */
-int main(){
-
- int conexion_servidorFd;
- struct sockaddr_in inf_servidor;
- struct sockaddr_storage inf_cliente;
- int resultado;
- int numbytes_recibidos;
- int rpta;
-
- char *buff_peticion = (char *) malloc(TAM_BUFFER);
-
- size_t addr_len;
-
- memset(&inf_servidor, 0, sizeof(inf_servidor));
- inf_servidor.sin_family= AF_INET;
- inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
- inf_servidor.sin_addr.s_addr= INADDR_ANY;
-
- /* Se establece el socket */
- conexion_servidorFd = socket(AF_INET,SOCK_DGRAM,0);
- if (conexion_servidorFd == -1){
- ERROR_FATAL("No se establecio correctamente el socket: socket()");
- }
-
- /* Se asocia el socket a un puerto y una IP */
- resultado = bind(conexion_servidorFd,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
- if (resultado== -1){
- ERROR_FATAL("No se establecio correctamente el socket: bind()");
- }
-
- /* Inicializamos el puerto GPIO del sistema embebido GSBC-9260S */
- inicializa_gpio();
-
- while(1){
- LOG_SERVIDOR("Esperando solicitud de cliente...\n");
-
- /* Se espera hasta que un cliente se conecte */
- addr_len = sizeof(inf_cliente);
- numbytes_recibidos = recvfrom(conexion_servidorFd, buff_peticion, TAM_BUFFER-1, 0, (struct sockaddr *)&inf_cliente, &addr_len);
- if (numbytes_recibidos == -1){
- ERROR_FATAL("Error en la recepcion de datos: recvfrom()");
- }
-
- /* Se procede a procesar los datos recibidos */
- buff_peticion[numbytes_recibidos]= '\0';
-
- /* procesamiento de la peticion */
- rpta = procesa_peticion(buff_peticion);
-
- //Respuesta del modulo de control
- //
-
-
- }
-}
-
-
-
-/*
- * Esta funcion incializa el puerto GPIO
- */
-void inicializa_gpio(){
-
- // Configuracion de los pines de APUNTE
- pioc = pio_map(PIOC_BASE);
- pio_enable(pioc, maskc_out);
- pio_disable_irq(pioc, maskc_out);
- pio_disable_multiple_driver(pioc, maskc_out);
- pio_disable_pull_ups(pioc, maskc_out);
- pio_synchronous_data_output(pioc, maskc_out);
- pio_output_enable(pioc, maskc_out);
-
- // Configuracion de los pines de VERIFICACION
- piob = pio_map(PIOB_BASE);
- pio_enable(piob, maskb_in);
- pio_disable_irq(piob, maskb_in);
- pio_disable_multiple_driver(piob, maskb_in);
- pio_disable_pull_ups(piob, maskb_in);
- pio_input_enable(piob, maskb_in);
-
-}
-
-/*
- * Esta funcion procesa el mensaje de peticion y genera respuesta
- */
-int procesa_peticion(char *buff_peticion){
- int rpta;
-// char *header = strtok(buff_peticion, ":");
-// char *ipSource = strtok(buff_peticion, ":");
-// char *ipDestino = strtok(buff_peticion, ":");
- char *comando = strtok(buff_peticion, ":");
- char *valor = strtok(NULL, ":");
-
- if ((comando == NULL) || (valor == NULL)){
- ERROR("procesarPeticion: formato de mensaje incorrecto");
- }
- else{
- if(strcmp(comando,"CARGA") == 0)
- rpta = carga_experimento(valor);
- else if(strcmp(comando,"CAMBIA") == 0)
- rpta = cambia_apuntamiento(valor);
- else if(strcmp(comando,"CHEQUEO") == 0)
- rpta = chequeo_sistema(valor);
- else
- ERROR("procesa_peticion: comando no reconocido");
- }
-
- return rpta;
-}
-
-
-/*
- * Esta funcion carga un archivo en un buffer que esta ubicado en memoria, luego
- * este buffer es usado en la funcion "cambia_apuntamiento" para obtener el dato
- * que sera usado en el cambio de apuntamiento.
- */
-int carga_experimento(char *nombre_archivo){
-
- FILE *Archivo_Fd;
-
- char *cadena = (char *) malloc(25);
-
- int longitud_cadena;
- int num_bytes= 0;
- int num_filas= 0;
-
- char ruta_archivo[50]; // Se crea la ruta para abrir el archivo
- strcpy(ruta_archivo,"/mnt/sd/archivos/");
- strcat(ruta_archivo,nombre_archivo);
-
- Archivo_Fd = fopen(ruta_archivo,"r"); // Se procede a abrir el archivo, segun la ruta especificada
- if(!Archivo_Fd){
- ERROR("carga_archivo: No se pudo abrir el archivo!!! --> fopen()\n");
- return -1;
- }else{
-
- while(!feof(Archivo_Fd)){ // Se procede a calcular la longitud del archivo para separar memoria
- fgets(cadena,20,Archivo_Fd);
- longitud_cadena= strlen(cadena);
- cadena[longitud_cadena-1] = '\0';
- num_bytes = num_bytes + longitud_cadena;
- num_filas++;
- }
-
- rewind(Archivo_Fd); // Se reinicia el puntero del archivo
-
- char *buffer_temporal = (char *) malloc(num_bytes+1); // Se separa espacio de memoria segun
- // la longitud del archivo
- fread(buffer_temporal, sizeof(char), num_bytes, Archivo_Fd);
-
- char *puntero= strstr(buffer_temporal,".abs"); // Se procede a eliminar la cabecera del archivo
- puntero= puntero + 12;
-
- buff_experimento = (char *) malloc(7*(num_filas-3)); // num_bytes_fila*(num_filas-3);
- strncpy(buff_experimento,puntero,7*(num_filas-3)); // Se carga en memoria la informacion del archivo
-
- fclose(Archivo_Fd);
-
- cambia_apuntamiento("0"); // Se apunta a la direccion 0
-
- return 1;
- }
-}
-
-/*
- * Esta funcion recibe un numero en formato char, el dato se transforma a su equivalente en
- * un numero entero, que sera usado para sacar un dato del buffer "buff_experimento", esta
- * dato es el valor que se enviara al sistema de conmutacion RF para el cambio de apunte a
- * traves del puerto GPIO.
- */
-int cambia_apuntamiento(char *puntero_char){
-
- /*MSB-UP-LSB MSB-DOWN-LSB*/
- int desplazamiento[6]={30,28,26,24,22,20}; // Defino los dezplazamientos que se aplicara
- // al dato que ingresa para formar el número
- // entero que se le pasara al puerto GPIO
- // Estos números son los pines del puerto GPIO
- // que se estan usando para el control
-
- int puntero= atoi(puntero_char); // Se convierte a entero la direccion del puntero
-
- int base= 7*puntero; // base= cantidad_bytes del dato x puntero
- // cantidad de bytes es el numero de bytes que
- printf("%i\n",puntero); // contiene cada dato, para este caso es 7
- // porque es 6 bits de datos + 1 bit del cambio
- // de linea.
- char valor_char;
- unsigned long valor;
- unsigned long acumulado_ceros=0;
- unsigned long acumulado_unos=0;
-
- int offset; // Defino offset para el desplazamiento a traves
- for(offset=0;offset<6;offset++){ // de cada dato que se obtiene del "buff_experimento"
-
- valor_char= buff_experimento[base+offset]; // Obtengo el dato
-
- if (valor_char == '0'){ // Obtengo el número acumulado segun sea un cero o un uno
- valor= 0;
- acumulado_ceros= acumulado_ceros + (1 << desplazamiento[offset]);
- }else{
- valor= 1;
- acumulado_unos= acumulado_unos + (1 << desplazamiento[offset]);
- }
-
- }
-
- pio_out(pioc, maskc_out, acumulado_unos, 1);
- pio_out(pioc, maskc_out, acumulado_ceros, 0);
-
- return 1;
-
-}
-
-/*
- * Esta funcion lee "n" veces el estado del APUNTE actual y lo guarda en el
- * archivo Verificacion.
- */
-
-int chequeo_sistema(char *numero_muestras){
-
- char valor[7];
- int i,cnt;
- unsigned int entradac= 0;
- FILE *fd;
- fd=fopen("/mnt/sd/archivos/Verificacion","w");
- fprintf(fd,"%s\n","Verificacion");
- fprintf(fd,"%s\n","------------");
- cnt=0;
- do
- {
- //Inicializando arreglo
- for(i=0;i<6;i++)
- valor[i]='0';
-
- valor[6]='\0';
-
- //Lectura de puerto
- entradac= pio_in(piob,maskb_in);
-
- //Dandole formato al dato
- if (!(entradac & bit_up_2))
- valor[0] = '1';
- if (!(entradac & bit_up_1))
- valor[1] = '1';
- if (!(entradac & bit_up_0))
- valor[2] = '1';
- if (!(entradac & bit_dow_2))
- valor[3] = '1';
- if (!(entradac & bit_dow_1))
- valor[4] = '1';
- if (!(entradac & bit_dow_0))
- valor[5] = '1';
-
- //Escribiendo en archivo
- fprintf(fd,"%s\n",valor);
- cnt=cnt+1;
- usleep(1*1000*1000);
-
- }while(cnt < atoi(numero_muestras));
-
- fclose(fd);
-
- return 1;
-}
Index: trunk/absroot/source/absc/Control_Module/ServidorTCP.txt
===================================================================
diff --git a/trunk/absroot/source/absc/Control_Module/ServidorTCP.txt b/trunk/absroot/source/absc/Control_Module/ServidorTCP.txt
new file mode 10644
--- /dev/null (revision 0)
+++ b/trunk/absroot/source/absc/Control_Module/ServidorTCP.txt (revision 46)
@@ -0,0 +1,324 @@
+/*
+ * Servidor.c
+ *
+ * Created on: Nov 3, 2009
+ * Author: Jose Francisco Quenta
+ *
+ * Se implementa:
+ * -Carga en memoria los apuntes contenidos en un archivo de experimentos: apunte0 -> GPIO
+ * -Cambio de apunte.
+ * -Lectura del estado actual del apunte y grabado del mismo en un archivo
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "./Librerias/AT91gpio_Funciones.h"
+#include "./Librerias/Mensajes.h"
+
+#define PUERTO_SERVIDOR 5500
+#define TAM_BUFFER 100
+
+#define maskc_out PC30+PC28+PC26+PC24+PC22+PC20 //MSB-UP-LSB MSB-DOWN-LSB //APUNTE
+
+#define maskb_in PB16+PB18+PB20+PB30+PB24+PB22 //MSB-UP-LSB MSB-DOWN-LSB //VERIFICACION
+
+#define bit_up_2 0x00010000 //Mascara de cada bit a revisar: bit_up_2 es MSB
+#define bit_up_1 0x00040000
+#define bit_up_0 0x00100000
+#define bit_dow_2 0x40000000
+#define bit_dow_1 0x01000000
+#define bit_dow_0 0x00400000
+
+#define MyID 11
+
+char *buff_experimento= NULL;
+
+AT91S_PIO *pioc;
+AT91S_PIO *piob;
+
+/*
+ * Zona de declaracion de cabeceras.
+ */
+void inicializa_gpio();
+int procesa_peticion(char *buff_peticion);
+int cambia_apuntamiento(char *puntero_char);
+int carga_experimento(char *nombre_archivo);
+int chequeo_sistema(char *numero_muestras);
+
+/*
+ *
+ */
+int main(){
+
+ int conexion_servidorFd;
+ struct sockaddr_in inf_servidor;
+ struct sockaddr_storage inf_cliente;
+ int resultado;
+ int numbytes_recibidos;
+ int rpta;
+
+ char *buff_peticion = (char *) malloc(TAM_BUFFER);
+
+ size_t addr_len;
+
+ memset(&inf_servidor, 0, sizeof(inf_servidor));
+ inf_servidor.sin_family= AF_INET;
+ inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
+ inf_servidor.sin_addr.s_addr= INADDR_ANY;
+
+ /* Se establece el socket */
+ conexion_servidorFd = socket(AF_INET,SOCK_DGRAM,0);
+ if (conexion_servidorFd == -1){
+ ERROR_FATAL("No se establecio correctamente el socket: socket()");
+ }
+
+ /* Se asocia el socket a un puerto y una IP */
+ resultado = bind(conexion_servidorFd,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
+ if (resultado== -1){
+ ERROR_FATAL("No se establecio correctamente el socket: bind()");
+ }
+
+ /* Inicializamos el puerto GPIO del sistema embebido GSBC-9260S */
+ inicializa_gpio();
+
+ while(1){
+ LOG_SERVIDOR("Esperando solicitud de cliente...\n");
+
+ /* Se espera hasta que un cliente se conecte */
+ addr_len = sizeof(inf_cliente);
+ numbytes_recibidos = recvfrom(conexion_servidorFd, buff_peticion, TAM_BUFFER-1, 0, (struct sockaddr *)&inf_cliente, &addr_len);
+ if (numbytes_recibidos == -1){
+ ERROR_FATAL("Error en la recepcion de datos: recvfrom()");
+ }
+
+ /* Se procede a procesar los datos recibidos */
+ buff_peticion[numbytes_recibidos]= '\0';
+
+ /* procesamiento de la peticion */
+ rpta = procesa_peticion(buff_peticion);
+
+ //Respuesta del modulo de control
+ //
+
+
+ }
+}
+
+
+
+/*
+ * Esta funcion incializa el puerto GPIO
+ */
+void inicializa_gpio(){
+
+ // Configuracion de los pines de APUNTE
+ pioc = pio_map(PIOC_BASE);
+ pio_enable(pioc, maskc_out);
+ pio_disable_irq(pioc, maskc_out);
+ pio_disable_multiple_driver(pioc, maskc_out);
+ pio_disable_pull_ups(pioc, maskc_out);
+ pio_synchronous_data_output(pioc, maskc_out);
+ pio_output_enable(pioc, maskc_out);
+
+ // Configuracion de los pines de VERIFICACION
+ piob = pio_map(PIOB_BASE);
+ pio_enable(piob, maskb_in);
+ pio_disable_irq(piob, maskb_in);
+ pio_disable_multiple_driver(piob, maskb_in);
+ pio_disable_pull_ups(piob, maskb_in);
+ pio_input_enable(piob, maskb_in);
+
+}
+
+/*
+ * Esta funcion procesa el mensaje de peticion y genera respuesta
+ */
+int procesa_peticion(char *buff_peticion){
+ int rpta;
+// char *header = strtok(buff_peticion, ":");
+// char *ipSource = strtok(buff_peticion, ":");
+// char *ipDestino = strtok(buff_peticion, ":");
+ char *comando = strtok(buff_peticion, ":");
+ char *valor = strtok(NULL, ":");
+
+ if ((comando == NULL) || (valor == NULL)){
+ ERROR("procesarPeticion: formato de mensaje incorrecto");
+ }
+ else{
+ if(strcmp(comando,"CARGA") == 0)
+ rpta = carga_experimento(valor);
+ else if(strcmp(comando,"CAMBIA") == 0)
+ rpta = cambia_apuntamiento(valor);
+ else if(strcmp(comando,"CHEQUEO") == 0)
+ rpta = chequeo_sistema(valor);
+ else
+ ERROR("procesa_peticion: comando no reconocido");
+ }
+
+ return rpta;
+}
+
+
+/*
+ * Esta funcion carga un archivo en un buffer que esta ubicado en memoria, luego
+ * este buffer es usado en la funcion "cambia_apuntamiento" para obtener el dato
+ * que sera usado en el cambio de apuntamiento.
+ */
+int carga_experimento(char *nombre_archivo){
+
+ FILE *Archivo_Fd;
+
+ char *cadena = (char *) malloc(25);
+
+ int longitud_cadena;
+ int num_bytes= 0;
+ int num_filas= 0;
+
+ char ruta_archivo[50]; // Se crea la ruta para abrir el archivo
+ strcpy(ruta_archivo,"/mnt/sd/archivos/");
+ strcat(ruta_archivo,nombre_archivo);
+
+ Archivo_Fd = fopen(ruta_archivo,"r"); // Se procede a abrir el archivo, segun la ruta especificada
+ if(!Archivo_Fd){
+ ERROR("carga_archivo: No se pudo abrir el archivo!!! --> fopen()\n");
+ return -1;
+ }else{
+
+ while(!feof(Archivo_Fd)){ // Se procede a calcular la longitud del archivo para separar memoria
+ fgets(cadena,20,Archivo_Fd);
+ longitud_cadena= strlen(cadena);
+ cadena[longitud_cadena-1] = '\0';
+ num_bytes = num_bytes + longitud_cadena;
+ num_filas++;
+ }
+
+ rewind(Archivo_Fd); // Se reinicia el puntero del archivo
+
+ char *buffer_temporal = (char *) malloc(num_bytes+1); // Se separa espacio de memoria segun
+ // la longitud del archivo
+ fread(buffer_temporal, sizeof(char), num_bytes, Archivo_Fd);
+
+ char *puntero= strstr(buffer_temporal,".abs"); // Se procede a eliminar la cabecera del archivo
+ puntero= puntero + 12;
+
+ buff_experimento = (char *) malloc(7*(num_filas-3)); // num_bytes_fila*(num_filas-3);
+ strncpy(buff_experimento,puntero,7*(num_filas-3)); // Se carga en memoria la informacion del archivo
+
+ fclose(Archivo_Fd);
+
+ cambia_apuntamiento("0"); // Se apunta a la direccion 0
+
+ return 1;
+ }
+}
+
+/*
+ * Esta funcion recibe un numero en formato char, el dato se transforma a su equivalente en
+ * un numero entero, que sera usado para sacar un dato del buffer "buff_experimento", esta
+ * dato es el valor que se enviara al sistema de conmutacion RF para el cambio de apunte a
+ * traves del puerto GPIO.
+ */
+int cambia_apuntamiento(char *puntero_char){
+
+ /*MSB-UP-LSB MSB-DOWN-LSB*/
+ int desplazamiento[6]={30,28,26,24,22,20}; // Defino los dezplazamientos que se aplicara
+ // al dato que ingresa para formar el número
+ // entero que se le pasara al puerto GPIO
+ // Estos números son los pines del puerto GPIO
+ // que se estan usando para el control
+
+ int puntero= atoi(puntero_char); // Se convierte a entero la direccion del puntero
+
+ int base= 7*puntero; // base= cantidad_bytes del dato x puntero
+ // cantidad de bytes es el numero de bytes que
+ printf("%i\n",puntero); // contiene cada dato, para este caso es 7
+ // porque es 6 bits de datos + 1 bit del cambio
+ // de linea.
+ char valor_char;
+ unsigned long valor;
+ unsigned long acumulado_ceros=0;
+ unsigned long acumulado_unos=0;
+
+ int offset; // Defino offset para el desplazamiento a traves
+ for(offset=0;offset<6;offset++){ // de cada dato que se obtiene del "buff_experimento"
+
+ valor_char= buff_experimento[base+offset]; // Obtengo el dato
+
+ if (valor_char == '0'){ // Obtengo el número acumulado segun sea un cero o un uno
+ valor= 0;
+ acumulado_ceros= acumulado_ceros + (1 << desplazamiento[offset]);
+ }else{
+ valor= 1;
+ acumulado_unos= acumulado_unos + (1 << desplazamiento[offset]);
+ }
+
+ }
+
+ pio_out(pioc, maskc_out, acumulado_unos, 1);
+ pio_out(pioc, maskc_out, acumulado_ceros, 0);
+
+ return 1;
+
+}
+
+/*
+ * Esta funcion lee "n" veces el estado del APUNTE actual y lo guarda en el
+ * archivo Verificacion.
+ */
+
+int chequeo_sistema(char *numero_muestras){
+
+ char valor[7];
+ int i,cnt;
+ unsigned int entradac= 0;
+ FILE *fd;
+ fd=fopen("/mnt/sd/archivos/Verificacion","w");
+ fprintf(fd,"%s\n","Verificacion");
+ fprintf(fd,"%s\n","------------");
+ cnt=0;
+ do
+ {
+ //Inicializando arreglo
+ for(i=0;i<6;i++)
+ valor[i]='0';
+
+ valor[6]='\0';
+
+ //Lectura de puerto
+ entradac= pio_in(piob,maskb_in);
+
+ //Dandole formato al dato
+ if (!(entradac & bit_up_2))
+ valor[0] = '1';
+ if (!(entradac & bit_up_1))
+ valor[1] = '1';
+ if (!(entradac & bit_up_0))
+ valor[2] = '1';
+ if (!(entradac & bit_dow_2))
+ valor[3] = '1';
+ if (!(entradac & bit_dow_1))
+ valor[4] = '1';
+ if (!(entradac & bit_dow_0))
+ valor[5] = '1';
+
+ //Escribiendo en archivo
+ fprintf(fd,"%s\n",valor);
+ cnt=cnt+1;
+ usleep(1*1000*1000);
+
+ }while(cnt < atoi(numero_muestras));
+
+ fclose(fd);
+
+ return 1;
+}
Index: trunk/absroot/source/absc/Control_Module/ServidorUDP.c
===================================================================
diff --git a/trunk/absroot/source/absc/Control_Module/ServidorUDP.c b/trunk/absroot/source/absc/Control_Module/ServidorUDP.c
--- a/trunk/absroot/source/absc/Control_Module/ServidorUDP.c (revision 45)
+++ b/trunk/absroot/source/absc/Control_Module/ServidorUDP.c (revision 46)
@@ -50,10 +50,14 @@
* Zona de declaracion de cabeceras.
*/
void inicializa_gpio();
-int procesa_peticion(char *buff_peticion);
-int cambia_apuntamiento(char *puntero_char);
-int carga_experimento(char *nombre_archivo);
-int chequeo_sistema(char *numero_muestras);
+//int procesa_peticion(char *buff_peticion);
+void procesa_peticion(char *buff_peticion);
+//int cambia_apuntamiento(char *puntero_char);
+void cambia_apuntamiento(char *puntero_char);
+//int carga_experimento(char *nombre_archivo);
+void carga_experimento(char *nombre_archivo);
+//int chequeo_sistema(char *numero_muestras);
+void chequeo_sistema(char *numero_muestras);
/*
*
@@ -65,7 +69,7 @@
struct sockaddr_storage inf_cliente;
int resultado;
int numbytes_recibidos;
- int rpta;
+ //int rpta;
char *buff_peticion = (char *) malloc(TAM_BUFFER);
@@ -99,13 +103,16 @@
numbytes_recibidos = recvfrom(conexion_servidorFd, buff_peticion, TAM_BUFFER-1, 0, (struct sockaddr *)&inf_cliente, &addr_len);
if (numbytes_recibidos == -1){
ERROR_FATAL("Error en la recepcion de datos: recvfrom()");
- }
+ }else
+ printf("Recibidos: %i\n",numbytes_recibidos);
/* Se procede a procesar los datos recibidos */
buff_peticion[numbytes_recibidos]= '\0';
+ printf("%s\n",buff_peticion);
/* procesamiento de la peticion */
- rpta = procesa_peticion(buff_peticion);
+ //rpta = procesa_peticion(buff_peticion);
+ procesa_peticion(buff_peticion);
//Respuesta del modulo de control
//
@@ -141,29 +148,35 @@
/*
* Esta funcion procesa el mensaje de peticion y genera respuesta
*/
-int procesa_peticion(char *buff_peticion){
- int rpta;
+//int procesa_peticion(char *buff_peticion){
+void procesa_peticion(char *buff_peticion){
+ //int rpta = 0;
+
// char *header = strtok(buff_peticion, ":");
// char *ipSource = strtok(buff_peticion, ":");
// char *ipDestino = strtok(buff_peticion, ":");
char *comando = strtok(buff_peticion, ":");
char *valor = strtok(NULL, ":");
+ printf("Testpoint_1\n");
if ((comando == NULL) || (valor == NULL)){
ERROR("procesarPeticion: formato de mensaje incorrecto");
}
else{
if(strcmp(comando,"CARGA") == 0)
- rpta = carga_experimento(valor);
+ //rpta = carga_experimento(valor);
+ carga_experimento(valor);
else if(strcmp(comando,"CAMBIA") == 0)
- rpta = cambia_apuntamiento(valor);
+ //rpta = cambia_apuntamiento(valor);
+ cambia_apuntamiento(valor);
else if(strcmp(comando,"CHEQUEO") == 0)
- rpta = chequeo_sistema(valor);
+ //rpta = chequeo_sistema(valor);
+ chequeo_sistema(valor);
else
ERROR("procesa_peticion: comando no reconocido");
}
- return rpta;
+ //return rpta;
}
@@ -172,7 +185,8 @@
* este buffer es usado en la funcion "cambia_apuntamiento" para obtener el dato
* que sera usado en el cambio de apuntamiento.
*/
-int carga_experimento(char *nombre_archivo){
+//int carga_experimento(char *nombre_archivo){
+void carga_experimento(char *nombre_archivo){
FILE *Archivo_Fd;
@@ -189,9 +203,9 @@
Archivo_Fd = fopen(ruta_archivo,"r"); // Se procede a abrir el archivo, segun la ruta especificada
if(!Archivo_Fd){
ERROR("carga_archivo: No se pudo abrir el archivo!!! --> fopen()\n");
- return -1;
+// return -1;
}else{
-
+ printf("Testpoint_2\n");
while(!feof(Archivo_Fd)){ // Se procede a calcular la longitud del archivo para separar memoria
fgets(cadena,20,Archivo_Fd);
longitud_cadena= strlen(cadena);
@@ -206,7 +220,8 @@
// la longitud del archivo
fread(buffer_temporal, sizeof(char), num_bytes, Archivo_Fd);
- char *puntero= strstr(buffer_temporal,".abs"); // Se procede a eliminar la cabecera del archivo
+ printf("Testpoint_3\n");
+ char *puntero= strstr(buffer_temporal,".ab1"); // Se procede a eliminar la cabecera del archivo
puntero= puntero + 12;
buff_experimento = (char *) malloc(7*(num_filas-3)); // num_bytes_fila*(num_filas-3);
@@ -214,9 +229,9 @@
fclose(Archivo_Fd);
- cambia_apuntamiento("0"); // Se apunta a la direccion 0
-
- return 1;
+ //cambia_apuntamiento("0"); // Se apunta a la direccion 0
+
+// return 1;
}
}
@@ -226,7 +241,8 @@
* dato es el valor que se enviara al sistema de conmutacion RF para el cambio de apunte a
* traves del puerto GPIO.
*/
-int cambia_apuntamiento(char *puntero_char){
+//int cambia_apuntamiento(char *puntero_char){
+void cambia_apuntamiento(char *puntero_char){
/*MSB-UP-LSB MSB-DOWN-LSB*/
int desplazamiento[6]={30,28,26,24,22,20}; // Defino los dezplazamientos que se aplicara
@@ -265,7 +281,7 @@
pio_out(pioc, maskc_out, acumulado_unos, 1);
pio_out(pioc, maskc_out, acumulado_ceros, 0);
- return 1;
+ //return 1;
}
@@ -274,7 +290,8 @@
* archivo Verificacion.
*/
-int chequeo_sistema(char *numero_muestras){
+//int chequeo_sistema(char *numero_muestras){
+void chequeo_sistema(char *numero_muestras){
char valor[7];
int i,cnt;
@@ -314,9 +331,9 @@
cnt=cnt+1;
usleep(1*1000*1000);
- }while(cnt < atoi(numero_muestras));
+ }while(cnt < (atoi(numero_muestras)+1));
fclose(fd);
- return 1;
-}
+ //return 1;
+}