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@15:a1ffa32ce9d1, 2012-04-22 (annotated)
- 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?
User | Revision | Line number | New 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 |