Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>
Dependencies: EthernetNetIf HTTPServer QEI_hw RPCInterface mbed
Diff: setup.cpp
- Revision:
- 20:4b154134ab20
- Parent:
- 19:c26cf8a48986
- Child:
- 21:353b0fe8fc54
diff -r c26cf8a48986 -r 4b154134ab20 setup.cpp --- a/setup.cpp Wed May 23 17:09:28 2012 +0000 +++ b/setup.cpp Wed Jun 06 03:08:27 2012 +0000 @@ -1,7 +1,7 @@ /** - * @brief Tren de impulsos con Timer2 * @file setup.cpp * @author Ernesto Palacios + * @brief Codigo Fuente de las funciones para el deslizador. * * Created on 25 de Marzo de 2012 * @@ -23,111 +23,10 @@ extern InterruptIn pin_alm; // ALM extern AnalogOut aout; // +-10V + int fq_posicion = 10000; // Variable global donde se almacenara // la velocidad de posicionamiento en Hz - -EthernetNetIf configurarEthernet() -{ - //____________ *** ARCHIVO DE CONFIGURACION ***_______________________ // - - printf("\n *** CONFIGURACION ETHERNET DE MBED ***\n"); - printf("Leyendo archivo de configuracion...\n\n"); - - FILE *fp = fopen("/local/config.txt", "r"); // Abre el archivo y lo guarda en fp - - if(!fp) // En caso de no encontrarse el archivo - { - printf("\nEl archivo /mbed/config.txt no puede ser abierto!\n"); - exit(1); - - } - else - { - // Cadenas de caracteres desde el Archivo config.txt - char isDHCP [15]; //Modo Automatico o Manual - char empty [2]; // Linea vacia - char ip [40]; // Direccion IP - char mask [40]; // Mascara de Subred - char gate [40]; // Puerta de enlace - char dns [40]; // Direccion DNS - - // Valores 'int' para agregar a la configuracion manual - int DHCP; - int n_ip[4]; - int n_mask[4]; - int n_gate[4]; - int n_dns[4]; - - - // Leer linea a linea el archivo - fgets( isDHCP, 15, fp ); - fgets( empty, 2, fp ); - fgets( ip, 40, fp ); - fgets( mask, 40, fp ); - fgets( gate, 40, fp ); - fgets( dns, 40, fp ); - - printf("Cerrando archivo...\n"); - fclose(fp); - - // Extraer los valores numericos - sscanf( isDHCP,"%*s %d",&DHCP ); - - sscanf( ip,"%*s %d.%d.%d.%d",&n_ip[0],&n_ip[1],&n_ip[2],&n_ip[3] ); - sscanf( mask,"%*s %d.%d.%d.%d",&n_mask[0],&n_mask[1],&n_mask[2],&n_mask[3] ); - sscanf( gate,"%*s %d.%d.%d.%d",&n_gate[0],&n_gate[1],&n_gate[2],&n_gate[3] ); - sscanf( dns,"%*s %d.%d.%d.%d",&n_dns[0],&n_dns[1],&n_dns[2],&n_dns[3] ); - - - if(DHCP) //En caso de modo DHCP - { - printf("\n Configurar red de manera automatica\n"); - EthernetNetIf eth; //Crea la interfaz - EthernetErr ethErr = eth.setup(); - if( ethErr ) - { - printf( "Error %d en la configuracion\n", ethErr ); - exit(1); - } - - printf("Configuracion Correcta\n\n"); - return eth; - } - else - { - sscanf( ip,"%*s %d.%d.%d.%d",&n_ip[0], &n_ip[1], &n_ip[2], &n_ip[3] ); - sscanf( mask,"%*s %d.%d.%d.%d",&n_mask[0],&n_mask[1],&n_mask[2],&n_mask[3] ); - sscanf( gate,"%*s %d.%d.%d.%d",&n_gate[0],&n_gate[1],&n_gate[2],&n_gate[3] ); - sscanf( dns,"%*s %d.%d.%d.%d",&n_dns[0], &n_dns[1], &n_dns[2], &n_dns[3] ); - printf(" %s %s %s %s %s\n " , isDHCP, ip, mask, gate, dns ); - - printf("\n Configurar red de manera manual\n"); - EthernetNetIf eth( - IpAddr( n_ip[0], n_ip[1], n_ip[2], n_ip[3]), //IP Address - IpAddr( n_mask[0],n_mask[1],n_mask[2],n_mask[3]), //Network Mask - IpAddr( n_gate[0],n_gate[1],n_gate[2],n_gate[3]), //Gateway - IpAddr( n_dns[0], n_dns[1], n_dns[2], n_dns[3] ) //DNS - ); - - EthernetErr ethErr = eth.setup(); - if( ethErr ) - { - printf( "Error %d en la configuracion\n", ethErr ); - exit(1); - } - - printf("Configuracion Correcta\n\n"); - return eth; - } - - } - - EthernetNetIf eth; - return eth; -} - - void setTimer2() { // Encender Timer2 (PCONP[22]) @@ -376,11 +275,57 @@ } +int configurarBaudios() +{ + int baudios = 115200; //Valor por defecto + + //____________ *** ARCHIVO DE CONFIGURACION ***_______________________ // + + printf("\n\n *** CONFIGURACION DE MBED ***\n"); + printf(" Leyendo archivo de configuracion...\n\n"); + + FILE *fp = fopen("/local/config.mbd", "r"); // Abre el archivo y lo guarda en fp + + if(!fp) // En caso de no encontrarse el archivo + { + printf("\nEl archivo /mbed/config.txt no puede ser abierto!\n"); + exit(1); + + } + else + { + // Cadenas de caracteres desde el Archivo config.txt + char notstr [04]; // linea vacia + char baud [40]; // Direccion DNS + + + // Leer linea a linea el archivo + // cuatro primeras lineas no sirven + fgets( notstr, 4, fp ); + fgets( notstr, 4, fp ); + fgets( notstr, 4, fp ); + fgets( notstr, 4, fp ); + + fgets( baud, 40, fp ); + + printf("Cerrando archivo...\n"); + fclose(fp); + + + // Extraer los valores numericos + sscanf( baud,"%*s %d",&baudios ); + + + } + + return baudios; +} /* LEGACY FUNCTIONS * - * El codigo actual no hace referencia a estas funciones - * sin embargo no hay problema en definirlas. + * El siguiente codigo no es utilizado por el + * programa. Sin embargo pueden servir como + * futuras referencias. */ void setMR3( int newValue ) { @@ -392,3 +337,104 @@ { LPC_TIM2->PR = newValue; } + + +EthernetNetIf configurarEthernet() +{ + //____________ *** ARCHIVO DE CONFIGURACION ***_______________________ // + + printf("\n *** CONFIGURACION ETHERNET DE MBED ***\n"); + printf("Leyendo archivo de configuracion...\n\n"); + + FILE *fp = fopen("/local/config.txt", "r"); // Abre el archivo y lo guarda en fp + + if(!fp) // En caso de no encontrarse el archivo + { + printf("\nEl archivo /mbed/config.txt no puede ser abierto!\n"); + exit(1); + + } + else + { + // Cadenas de caracteres desde el Archivo config.txt + char isDHCP [15]; //Modo Automatico o Manual + char empty [2]; // Linea vacia + char ip [40]; // Direccion IP + char mask [40]; // Mascara de Subred + char gate [40]; // Puerta de enlace + char dns [40]; // Direccion DNS + + // Valores 'int' para agregar a la configuracion manual + int DHCP; + int n_ip[4]; + int n_mask[4]; + int n_gate[4]; + int n_dns[4]; + + + // Leer linea a linea el archivo + fgets( isDHCP, 15, fp ); + fgets( empty, 2, fp ); + fgets( ip, 40, fp ); + fgets( mask, 40, fp ); + fgets( gate, 40, fp ); + fgets( dns, 40, fp ); + + printf("Cerrando archivo...\n"); + fclose(fp); + + // Extraer los valores numericos + sscanf( isDHCP,"%*s %d",&DHCP ); + + sscanf( ip,"%*s %d.%d.%d.%d",&n_ip[0],&n_ip[1],&n_ip[2],&n_ip[3] ); + sscanf( mask,"%*s %d.%d.%d.%d",&n_mask[0],&n_mask[1],&n_mask[2],&n_mask[3] ); + sscanf( gate,"%*s %d.%d.%d.%d",&n_gate[0],&n_gate[1],&n_gate[2],&n_gate[3] ); + sscanf( dns,"%*s %d.%d.%d.%d",&n_dns[0],&n_dns[1],&n_dns[2],&n_dns[3] ); + + + if(DHCP) //En caso de modo DHCP + { + printf("\n Configurar red de manera automatica\n"); + EthernetNetIf eth; //Crea la interfaz + EthernetErr ethErr = eth.setup(); + if( ethErr ) + { + printf( "Error %d en la configuracion\n", ethErr ); + exit(1); + } + + printf("Configuracion Correcta\n\n"); + return eth; + } + else + { + sscanf( ip,"%*s %d.%d.%d.%d",&n_ip[0], &n_ip[1], &n_ip[2], &n_ip[3] ); + sscanf( mask,"%*s %d.%d.%d.%d",&n_mask[0],&n_mask[1],&n_mask[2],&n_mask[3] ); + sscanf( gate,"%*s %d.%d.%d.%d",&n_gate[0],&n_gate[1],&n_gate[2],&n_gate[3] ); + sscanf( dns,"%*s %d.%d.%d.%d",&n_dns[0], &n_dns[1], &n_dns[2], &n_dns[3] ); + printf(" %s %s %s %s %s\n " , isDHCP, ip, mask, gate, dns ); + + printf("\n Configurar red de manera manual\n"); + EthernetNetIf eth( + IpAddr( n_ip[0], n_ip[1], n_ip[2], n_ip[3]), //IP Address + IpAddr( n_mask[0],n_mask[1],n_mask[2],n_mask[3]), //Network Mask + IpAddr( n_gate[0],n_gate[1],n_gate[2],n_gate[3]), //Gateway + IpAddr( n_dns[0], n_dns[1], n_dns[2], n_dns[3] ) //DNS + ); + + EthernetErr ethErr = eth.setup(); + if( ethErr ) + { + printf( "Error %d en la configuracion\n", ethErr ); + exit(1); + } + + printf("Configuracion Correcta\n\n"); + return eth; + } + + } + + EthernetNetIf eth; + return eth; +} \ No newline at end of file