Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>
Dependencies: EthernetNetIf HTTPServer QEI_hw RPCInterface mbed
main.cpp
- Committer:
- Yo_Robot
- Date:
- 2012-04-26
- Revision:
- 16:d50665706f21
- Parent:
- 15:a1ffa32ce9d1
- Child:
- 17:a4f380bc2516
File content as of revision 16:d50665706f21:
// GENERADOR DE FRECUENCIAS #include "mbed.h" #include "setup.h" #include "EthernetNetIf.h" #include "HTTPServer.h" #include "RPCFunction.h" #include "RPCVariable.h" #include "SerialRPCInterface.h" Serial pc( USBTX, USBRX ); DigitalOut pin_son( p26 ); // SON DigitalOut pin_dir( p25 ); // SIGN+ InterruptIn pin_alm( p8 ); // ALM AnalogOut aout( p18 ); // 0.0 a 1.0 float DigitalIn isHTTP( p15 ); // Modo Ethernet/Serial DigitalIn isFast( p16 ); // Serial Alta velocidad/Baja Velocidad LocalFileSystem fs("webfs"); EthernetNetIf eth; HTTPServer svr; // Anadir funciones al Protocolo RPC RPCFunction SetFQ (&setPTO_eth, "PTO"); RPCFunction SetAOUT(&setAout_eth, "AOUT"); RPCFunction SetDIR (&setDir_eth, "DIR"); RPCFunction SetSON (&setSON_eth, "SON"); RPCFunction SetANG (&setANG_eth, "ANG"); RPCFunction SetSpd (&setSPD_eth, "VAN"); RPCFunction ReadSpd(&getENC_eth, "VLC"); int main() { if( isHTTP ) //Configura Red Ethernet { Base::add_rpc_class<AnalogIn>(); Base::add_rpc_class<AnalogOut>(); Base::add_rpc_class<DigitalIn>(); Base::add_rpc_class<DigitalOut>(); Base::add_rpc_class<DigitalInOut>(); Base::add_rpc_class<PwmOut>(); Base::add_rpc_class<Timer>(); Base::add_rpc_class<BusOut>(); Base::add_rpc_class<BusIn>(); Base::add_rpc_class<BusInOut>(); Base::add_rpc_class<Serial>(); printf("\nSetting Up...\n"); EthernetErr ethErr = eth.setup(); if( ethErr ) { printf( "Error %d en setup\n", ethErr ); return -1; } printf("Configuracion Correcta\n"); FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path svr.addHandler<SimpleHandler>("/hello"); svr.addHandler<RPCHandler>("/rpc"); svr.addHandler<FSHandler>("/files"); svr.addHandler<FSHandler>("/"); //Default handler //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm svr.bind(80); printf("Listening...\n"); } else // Caso Contrario Anadir modo Serial { pc.attach( &ISR_Serial ); if( isFast ) //Configurar Serial a alta velocidad pc.baud( 115200 ); } setTimer2(); // Configurar PTO pin_son = 0; // Servo Apagado por defecto aout = 0.5; // Voltaje de salida 0V por defecto( +-10V! ) pin_alm.rise( &ISR_Alarm ); //Entrada de la alarma while(1) { if( isHTTP ) Net::poll(); // Revisa la red solo si la coneccion es HTTP } }