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@8:958dfe5052b9, 2012-04-03 (annotated)
- Committer:
- Yo_Robot
- Date:
- Tue Apr 03 00:31:03 2012 +0000
- Revision:
- 8:958dfe5052b9
- Parent:
- 7:d9aca501126f
- Child:
- 9:6976ac1a430e
v0.2 Eth RPC. Solucionado Bug, faltan funciones
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 | 8:958dfe5052b9 | 11 | LocalFileSystem fs("webfs"); |
Yo_Robot | 5:c5aea1eb10bb | 12 | |
Yo_Robot | 8:958dfe5052b9 | 13 | EthernetNetIf eth; |
Yo_Robot | 8:958dfe5052b9 | 14 | HTTPServer svr; |
Yo_Robot | 8:958dfe5052b9 | 15 | |
Yo_Robot | 8:958dfe5052b9 | 16 | void setFq( char * input, char * output ); //Cambiar frecuencia |
Yo_Robot | 8:958dfe5052b9 | 17 | void setPTO( char * input, char * output ); // Encender/Apagar Pulse Train Output |
Yo_Robot | 8:958dfe5052b9 | 18 | |
Yo_Robot | 8:958dfe5052b9 | 19 | |
Yo_Robot | 8:958dfe5052b9 | 20 | //Set up custom RPC |
Yo_Robot | 8:958dfe5052b9 | 21 | RPCFunction SetFQ(&setPTO, "PTO"); |
Yo_Robot | 8:958dfe5052b9 | 22 | RPCFunction SetAout(&setAOUT, "AOUT"); |
Yo_Robot | 8:958dfe5052b9 | 23 | |
Yo_Robot | 3:8d5a9e3cd680 | 24 | |
Yo_Robot | 3:8d5a9e3cd680 | 25 | int main() { |
Yo_Robot | 8:958dfe5052b9 | 26 | |
Yo_Robot | 8:958dfe5052b9 | 27 | Base::add_rpc_class<AnalogIn>(); |
Yo_Robot | 8:958dfe5052b9 | 28 | Base::add_rpc_class<AnalogOut>(); |
Yo_Robot | 8:958dfe5052b9 | 29 | Base::add_rpc_class<DigitalIn>(); |
Yo_Robot | 8:958dfe5052b9 | 30 | Base::add_rpc_class<DigitalOut>(); |
Yo_Robot | 8:958dfe5052b9 | 31 | Base::add_rpc_class<DigitalInOut>(); |
Yo_Robot | 8:958dfe5052b9 | 32 | Base::add_rpc_class<PwmOut>(); |
Yo_Robot | 8:958dfe5052b9 | 33 | Base::add_rpc_class<Timer>(); |
Yo_Robot | 8:958dfe5052b9 | 34 | Base::add_rpc_class<BusOut>(); |
Yo_Robot | 8:958dfe5052b9 | 35 | Base::add_rpc_class<BusIn>(); |
Yo_Robot | 8:958dfe5052b9 | 36 | Base::add_rpc_class<BusInOut>(); |
Yo_Robot | 8:958dfe5052b9 | 37 | Base::add_rpc_class<Serial>(); |
Yo_Robot | 8:958dfe5052b9 | 38 | |
Yo_Robot | 8:958dfe5052b9 | 39 | printf("\nSetting Up...\n"); |
Yo_Robot | 8:958dfe5052b9 | 40 | |
Yo_Robot | 8:958dfe5052b9 | 41 | EthernetErr ethErr = eth.setup(); |
Yo_Robot | 8:958dfe5052b9 | 42 | if( ethErr ) |
Yo_Robot | 8:958dfe5052b9 | 43 | { |
Yo_Robot | 8:958dfe5052b9 | 44 | printf( "Error %d in setup\n", ethErr ); |
Yo_Robot | 8:958dfe5052b9 | 45 | return -1; |
Yo_Robot | 8:958dfe5052b9 | 46 | } |
Yo_Robot | 8:958dfe5052b9 | 47 | |
Yo_Robot | 8:958dfe5052b9 | 48 | printf("Configuracion Correcta\n"); |
Yo_Robot | 8:958dfe5052b9 | 49 | |
Yo_Robot | 8:958dfe5052b9 | 50 | FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path |
Yo_Robot | 8:958dfe5052b9 | 51 | FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path |
Yo_Robot | 8:958dfe5052b9 | 52 | |
Yo_Robot | 8:958dfe5052b9 | 53 | svr.addHandler<SimpleHandler>("/hello"); |
Yo_Robot | 8:958dfe5052b9 | 54 | svr.addHandler<RPCHandler>("/rpc"); |
Yo_Robot | 8:958dfe5052b9 | 55 | svr.addHandler<FSHandler>("/files"); |
Yo_Robot | 8:958dfe5052b9 | 56 | svr.addHandler<FSHandler>("/"); //Default handler |
Yo_Robot | 8:958dfe5052b9 | 57 | //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm |
Yo_Robot | 8:958dfe5052b9 | 58 | |
Yo_Robot | 8:958dfe5052b9 | 59 | svr.bind(80); |
Yo_Robot | 6:b4dae934e1ea | 60 | setTimer2(); |
Yo_Robot | 3:8d5a9e3cd680 | 61 | |
Yo_Robot | 8:958dfe5052b9 | 62 | printf("Listening...\n"); |
Yo_Robot | 4:552beeda4722 | 63 | |
Yo_Robot | 3:8d5a9e3cd680 | 64 | while(1) { |
Yo_Robot | 8:958dfe5052b9 | 65 | |
Yo_Robot | 8:958dfe5052b9 | 66 | Net::poll(); |
Yo_Robot | 3:8d5a9e3cd680 | 67 | |
Yo_Robot | 3:8d5a9e3cd680 | 68 | } |
Yo_Robot | 8:958dfe5052b9 | 69 | } |
Yo_Robot | 8:958dfe5052b9 | 70 | |
Yo_Robot | 8:958dfe5052b9 | 71 | |
Yo_Robot | 8:958dfe5052b9 | 72 | void setAOUT( char * input, char * output ) |
Yo_Robot | 8:958dfe5052b9 | 73 | { |
Yo_Robot | 8:958dfe5052b9 | 74 | int vout = atoi( input ); |
Yo_Robot | 8:958dfe5052b9 | 75 | |
Yo_Robot | 8:958dfe5052b9 | 76 | aout = (float)( vout + 100 ) / 200; |
Yo_Robot | 8:958dfe5052b9 | 77 | |
Yo_Robot | 8:958dfe5052b9 | 78 | sprintf(" Ok, Aout = %f ", aout.read() ); |
Yo_Robot | 8:958dfe5052b9 | 79 | |
Yo_Robot | 8:958dfe5052b9 | 80 | } |
Yo_Robot | 8:958dfe5052b9 | 81 | |
Yo_Robot | 8:958dfe5052b9 | 82 | void setPTO( char * input, char * output ) |
Yo_Robot | 8:958dfe5052b9 | 83 | { |
Yo_Robot | 8:958dfe5052b9 | 84 | int freq = atoi( input ); |
Yo_Robot | 8:958dfe5052b9 | 85 | |
Yo_Robot | 8:958dfe5052b9 | 86 | if( freq != 0 ) |
Yo_Robot | 8:958dfe5052b9 | 87 | { |
Yo_Robot | 8:958dfe5052b9 | 88 | LPC_TIM2->TC = 0x00; // Resetear Timer |
Yo_Robot | 8:958dfe5052b9 | 89 | setMR2( getMRvalue( frequency ) ); //Cambiar frefuencia |
Yo_Robot | 8:958dfe5052b9 | 90 | startTimer2(); |
Yo_Robot | 8:958dfe5052b9 | 91 | sprintf( output, "Ok, Freq = %d", frequency); |
Yo_Robot | 8:958dfe5052b9 | 92 | } else { |
Yo_Robot | 8:958dfe5052b9 | 93 | |
Yo_Robot | 8:958dfe5052b9 | 94 | LPC_TIM2->TC = 0x00; // Resetear Timer |
Yo_Robot | 8:958dfe5052b9 | 95 | stopTimer2(); |
Yo_Robot | 8:958dfe5052b9 | 96 | sprintf( output, "Ok, ALTO" ); |
Yo_Robot | 8:958dfe5052b9 | 97 | } |
Yo_Robot | 8:958dfe5052b9 | 98 | |
Yo_Robot | 8:958dfe5052b9 | 99 | } |
Yo_Robot | 8:958dfe5052b9 | 100 | |
Yo_Robot | 8:958dfe5052b9 | 101 | |
Yo_Robot | 8:958dfe5052b9 | 102 | |
Yo_Robot | 8:958dfe5052b9 | 103 |