Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>

Dependencies:   EthernetNetIf HTTPServer QEI_hw RPCInterface mbed

Committer:
Yo_Robot
Date:
Sun Apr 22 19:22:19 2012 +0000
Revision:
15:a1ffa32ce9d1
Parent:
14:039d070732d5
Child:
16:d50665706f21
Version 1.2  Se agrego funciones de posicion. faltan probar

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yo_Robot 4:552beeda4722 1 // GENERADOR DE FRECUENCIAS
Yo_Robot 3:8d5a9e3cd680 2
Yo_Robot 3:8d5a9e3cd680 3 #include "mbed.h"
Yo_Robot 3:8d5a9e3cd680 4 #include "setup.h"
Yo_Robot 8:958dfe5052b9 5 #include "EthernetNetIf.h"
Yo_Robot 8:958dfe5052b9 6 #include "HTTPServer.h"
Yo_Robot 8:958dfe5052b9 7 #include "RPCFunction.h"
Yo_Robot 8:958dfe5052b9 8 #include "RPCVariable.h"
Yo_Robot 8:958dfe5052b9 9 #include "SerialRPCInterface.h"
Yo_Robot 3:8d5a9e3cd680 10
Yo_Robot 13:649543aa8b1d 11 Serial pc( USBTX, USBRX );
Yo_Robot 9:6976ac1a430e 12
Yo_Robot 14:039d070732d5 13 DigitalOut pin_son( p26 ); // SON
Yo_Robot 14:039d070732d5 14 DigitalOut pin_dir( p25 ); // SIGN+
Yo_Robot 9:6976ac1a430e 15 InterruptIn pin_alm( p14 ); // ALM
Yo_Robot 9:6976ac1a430e 16 AnalogOut aout( p18 ); // 0.0 a 1.0 float
Yo_Robot 9:6976ac1a430e 17
Yo_Robot 13:649543aa8b1d 18 DigitalIn isHTTP( p21 ); // Modo Ethernet/Serial
Yo_Robot 13:649543aa8b1d 19 DigitalIn isFast( p22 ); // Serial Alta velocidad/Baja Velocidad
Yo_Robot 13:649543aa8b1d 20
Yo_Robot 8:958dfe5052b9 21 LocalFileSystem fs("webfs");
Yo_Robot 5:c5aea1eb10bb 22
Yo_Robot 8:958dfe5052b9 23 EthernetNetIf eth;
Yo_Robot 8:958dfe5052b9 24 HTTPServer svr;
Yo_Robot 8:958dfe5052b9 25
Yo_Robot 13:649543aa8b1d 26 // Anadir funciones al Protocolo RPC
Yo_Robot 12:c02b08dacc45 27 RPCFunction SetFQ (&setPTO_eth, "PTO");
Yo_Robot 12:c02b08dacc45 28 RPCFunction SetAOUT(&setAout_eth, "AOUT");
Yo_Robot 12:c02b08dacc45 29 RPCFunction SetDIR (&setDir_eth, "DIR");
Yo_Robot 12:c02b08dacc45 30 RPCFunction SetSON (&setSON_eth, "SON");
Yo_Robot 15:a1ffa32ce9d1 31 RPCFuncrion SetANG (&setANG_eth, "ANG");
Yo_Robot 15:a1ffa32ce9d1 32 RPCFuncrion SetSpd (&setSPD_eth, "VAN");
Yo_Robot 15:a1ffa32ce9d1 33 RPCFuncrion ReadSpd(&getENC_eth, "VLC");
Yo_Robot 8:958dfe5052b9 34
Yo_Robot 3:8d5a9e3cd680 35
Yo_Robot 3:8d5a9e3cd680 36 int main() {
Yo_Robot 8:958dfe5052b9 37
Yo_Robot 13:649543aa8b1d 38 if( isHTTP ) //Configura Red Ethernet
Yo_Robot 13:649543aa8b1d 39 {
Yo_Robot 13:649543aa8b1d 40 Base::add_rpc_class<AnalogIn>();
Yo_Robot 13:649543aa8b1d 41 Base::add_rpc_class<AnalogOut>();
Yo_Robot 13:649543aa8b1d 42 Base::add_rpc_class<DigitalIn>();
Yo_Robot 13:649543aa8b1d 43 Base::add_rpc_class<DigitalOut>();
Yo_Robot 13:649543aa8b1d 44 Base::add_rpc_class<DigitalInOut>();
Yo_Robot 13:649543aa8b1d 45 Base::add_rpc_class<PwmOut>();
Yo_Robot 13:649543aa8b1d 46 Base::add_rpc_class<Timer>();
Yo_Robot 13:649543aa8b1d 47 Base::add_rpc_class<BusOut>();
Yo_Robot 13:649543aa8b1d 48 Base::add_rpc_class<BusIn>();
Yo_Robot 13:649543aa8b1d 49 Base::add_rpc_class<BusInOut>();
Yo_Robot 13:649543aa8b1d 50 Base::add_rpc_class<Serial>();
Yo_Robot 13:649543aa8b1d 51
Yo_Robot 13:649543aa8b1d 52 printf("\nSetting Up...\n");
Yo_Robot 8:958dfe5052b9 53
Yo_Robot 13:649543aa8b1d 54 EthernetErr ethErr = eth.setup();
Yo_Robot 13:649543aa8b1d 55 if( ethErr )
Yo_Robot 13:649543aa8b1d 56 {
Yo_Robot 13:649543aa8b1d 57 printf( "Error %d en setup\n", ethErr );
Yo_Robot 13:649543aa8b1d 58 return -1;
Yo_Robot 13:649543aa8b1d 59 }
Yo_Robot 13:649543aa8b1d 60
Yo_Robot 13:649543aa8b1d 61 printf("Configuracion Correcta\n");
Yo_Robot 8:958dfe5052b9 62
Yo_Robot 13:649543aa8b1d 63 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
Yo_Robot 13:649543aa8b1d 64 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
Yo_Robot 13:649543aa8b1d 65
Yo_Robot 13:649543aa8b1d 66 svr.addHandler<SimpleHandler>("/hello");
Yo_Robot 13:649543aa8b1d 67 svr.addHandler<RPCHandler>("/rpc");
Yo_Robot 13:649543aa8b1d 68 svr.addHandler<FSHandler>("/files");
Yo_Robot 13:649543aa8b1d 69 svr.addHandler<FSHandler>("/"); //Default handler
Yo_Robot 13:649543aa8b1d 70 //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
Yo_Robot 13:649543aa8b1d 71
Yo_Robot 13:649543aa8b1d 72 svr.bind(80);
Yo_Robot 13:649543aa8b1d 73
Yo_Robot 13:649543aa8b1d 74 printf("Listening...\n");
Yo_Robot 13:649543aa8b1d 75 }
Yo_Robot 15:a1ffa32ce9d1 76 else // Caso Contrario Anadir modo Serial
Yo_Robot 8:958dfe5052b9 77 {
Yo_Robot 13:649543aa8b1d 78 pc.attach( &ISR_Serial );
Yo_Robot 13:649543aa8b1d 79 if( isFast ) //Configurar Serial a alta velocidad
Yo_Robot 13:649543aa8b1d 80 pc.baud( 115200 );
Yo_Robot 8:958dfe5052b9 81 }
Yo_Robot 8:958dfe5052b9 82
Yo_Robot 13:649543aa8b1d 83 setTimer2(); // Configurar PTO
Yo_Robot 13:649543aa8b1d 84 pin_son = 0; // Servo Apagado por defecto
Yo_Robot 13:649543aa8b1d 85 aout = 0.5; // Voltaje de salida 0V por defecto( +-10V! )
Yo_Robot 8:958dfe5052b9 86
Yo_Robot 14:039d070732d5 87 pin_alm.rise( &ISR_Alarm ); //Entrada de la alarma
Yo_Robot 14:039d070732d5 88
Yo_Robot 13:649543aa8b1d 89 while(1)
Yo_Robot 13:649543aa8b1d 90 {
Yo_Robot 13:649543aa8b1d 91 if( isHTTP )
Yo_Robot 15:a1ffa32ce9d1 92 Net::poll(); // Revisa la red solo si la coneccion es HTTP
Yo_Robot 13:649543aa8b1d 93 }
Yo_Robot 8:958dfe5052b9 94 }
Yo_Robot 8:958dfe5052b9 95