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@5:c5aea1eb10bb, 2012-03-28 (annotated)
- Committer:
- Yo_Robot
- Date:
- Wed Mar 28 23:13:53 2012 +0000
- Revision:
- 5:c5aea1eb10bb
- Parent:
- 4:552beeda4722
- Child:
- 6:b4dae934e1ea
First RPC Version, seems to work ok....
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 | 5:c5aea1eb10bb | 5 | #include "EthernetNetIf.h" |
Yo_Robot | 5:c5aea1eb10bb | 6 | #include "HTTPServer.h" |
Yo_Robot | 5:c5aea1eb10bb | 7 | #include "RPCFunction.h" |
Yo_Robot | 5:c5aea1eb10bb | 8 | #include "RPCVariable.h" |
Yo_Robot | 5:c5aea1eb10bb | 9 | #include "SerialRPCInterface.h" |
Yo_Robot | 3:8d5a9e3cd680 | 10 | |
Yo_Robot | 5:c5aea1eb10bb | 11 | DigitalOut led1(LED1, "led1"); |
Yo_Robot | 5:c5aea1eb10bb | 12 | DigitalOut led2(LED2, "led2"); |
Yo_Robot | 5:c5aea1eb10bb | 13 | DigitalOut led3(LED3, "led3"); |
Yo_Robot | 5:c5aea1eb10bb | 14 | DigitalOut led4(LED4, "led4"); |
Yo_Robot | 5:c5aea1eb10bb | 15 | |
Yo_Robot | 5:c5aea1eb10bb | 16 | LocalFileSystem fs("webfs"); |
Yo_Robot | 5:c5aea1eb10bb | 17 | |
Yo_Robot | 5:c5aea1eb10bb | 18 | EthernetNetIf eth; |
Yo_Robot | 5:c5aea1eb10bb | 19 | HTTPServer svr; |
Yo_Robot | 5:c5aea1eb10bb | 20 | |
Yo_Robot | 5:c5aea1eb10bb | 21 | void setFq( char * input, char * output ); //Cambiar frecuencia |
Yo_Robot | 5:c5aea1eb10bb | 22 | void setPTO( char * input, char * output ); // Encender/Apagar Pulse Train Output |
Yo_Robot | 5:c5aea1eb10bb | 23 | |
Yo_Robot | 5:c5aea1eb10bb | 24 | |
Yo_Robot | 5:c5aea1eb10bb | 25 | //Set up custom RPC |
Yo_Robot | 5:c5aea1eb10bb | 26 | RPCFunction SetFQ(&setFq, "Frecuencia"); |
Yo_Robot | 5:c5aea1eb10bb | 27 | RPCFunction SetPTO(&setPTO, "Encender"); |
Yo_Robot | 5:c5aea1eb10bb | 28 | |
Yo_Robot | 3:8d5a9e3cd680 | 29 | |
Yo_Robot | 3:8d5a9e3cd680 | 30 | int main() { |
Yo_Robot | 3:8d5a9e3cd680 | 31 | |
Yo_Robot | 5:c5aea1eb10bb | 32 | Base::add_rpc_class<AnalogIn>(); |
Yo_Robot | 5:c5aea1eb10bb | 33 | Base::add_rpc_class<AnalogOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 34 | Base::add_rpc_class<DigitalIn>(); |
Yo_Robot | 5:c5aea1eb10bb | 35 | Base::add_rpc_class<DigitalOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 36 | Base::add_rpc_class<DigitalInOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 37 | Base::add_rpc_class<PwmOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 38 | Base::add_rpc_class<Timer>(); |
Yo_Robot | 5:c5aea1eb10bb | 39 | Base::add_rpc_class<BusOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 40 | Base::add_rpc_class<BusIn>(); |
Yo_Robot | 5:c5aea1eb10bb | 41 | Base::add_rpc_class<BusInOut>(); |
Yo_Robot | 5:c5aea1eb10bb | 42 | Base::add_rpc_class<Serial>(); |
Yo_Robot | 4:552beeda4722 | 43 | |
Yo_Robot | 5:c5aea1eb10bb | 44 | printf("\nSetting Up...\n"); |
Yo_Robot | 3:8d5a9e3cd680 | 45 | |
Yo_Robot | 5:c5aea1eb10bb | 46 | EthernetErr ethErr = eth.setup(); |
Yo_Robot | 5:c5aea1eb10bb | 47 | if( ethErr ) |
Yo_Robot | 5:c5aea1eb10bb | 48 | { |
Yo_Robot | 5:c5aea1eb10bb | 49 | printf( "Error %d in setup\n", ethErr ); |
Yo_Robot | 5:c5aea1eb10bb | 50 | return -1; |
Yo_Robot | 5:c5aea1eb10bb | 51 | } |
Yo_Robot | 5:c5aea1eb10bb | 52 | |
Yo_Robot | 5:c5aea1eb10bb | 53 | printf("Configuracion Correcta\n"); |
Yo_Robot | 4:552beeda4722 | 54 | |
Yo_Robot | 5:c5aea1eb10bb | 55 | FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path |
Yo_Robot | 5:c5aea1eb10bb | 56 | FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path |
Yo_Robot | 5:c5aea1eb10bb | 57 | |
Yo_Robot | 5:c5aea1eb10bb | 58 | svr.addHandler<SimpleHandler>("/hello"); |
Yo_Robot | 5:c5aea1eb10bb | 59 | svr.addHandler<RPCHandler>("/rpc"); |
Yo_Robot | 5:c5aea1eb10bb | 60 | svr.addHandler<FSHandler>("/files"); |
Yo_Robot | 5:c5aea1eb10bb | 61 | svr.addHandler<FSHandler>("/"); //Default handler |
Yo_Robot | 5:c5aea1eb10bb | 62 | //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm |
Yo_Robot | 5:c5aea1eb10bb | 63 | |
Yo_Robot | 5:c5aea1eb10bb | 64 | svr.bind(80); |
Yo_Robot | 5:c5aea1eb10bb | 65 | setTimer2(); |
Yo_Robot | 4:552beeda4722 | 66 | |
Yo_Robot | 5:c5aea1eb10bb | 67 | printf("Listening...\n"); |
Yo_Robot | 4:552beeda4722 | 68 | |
Yo_Robot | 3:8d5a9e3cd680 | 69 | while(1) { |
Yo_Robot | 5:c5aea1eb10bb | 70 | |
Yo_Robot | 5:c5aea1eb10bb | 71 | Net::poll(); |
Yo_Robot | 3:8d5a9e3cd680 | 72 | |
Yo_Robot | 3:8d5a9e3cd680 | 73 | } |
Yo_Robot | 5:c5aea1eb10bb | 74 | } |
Yo_Robot | 5:c5aea1eb10bb | 75 | |
Yo_Robot | 5:c5aea1eb10bb | 76 | |
Yo_Robot | 5:c5aea1eb10bb | 77 | void setFq( char * input, char * output ) |
Yo_Robot | 5:c5aea1eb10bb | 78 | { |
Yo_Robot | 5:c5aea1eb10bb | 79 | int frequency = atoi( input ); |
Yo_Robot | 5:c5aea1eb10bb | 80 | setMR2( getMRvalue( frequency ) ); |
Yo_Robot | 5:c5aea1eb10bb | 81 | |
Yo_Robot | 5:c5aea1eb10bb | 82 | sprintf( output, "Ok, Freq = %d", frequency); |
Yo_Robot | 5:c5aea1eb10bb | 83 | } |
Yo_Robot | 5:c5aea1eb10bb | 84 | |
Yo_Robot | 5:c5aea1eb10bb | 85 | void setPTO( char * input, char * output ) |
Yo_Robot | 5:c5aea1eb10bb | 86 | { |
Yo_Robot | 5:c5aea1eb10bb | 87 | int command = atoi( input ); |
Yo_Robot | 5:c5aea1eb10bb | 88 | |
Yo_Robot | 5:c5aea1eb10bb | 89 | if( command == 1) |
Yo_Robot | 5:c5aea1eb10bb | 90 | { |
Yo_Robot | 5:c5aea1eb10bb | 91 | startTimer2(); |
Yo_Robot | 5:c5aea1eb10bb | 92 | sprintf( output, "On" ); |
Yo_Robot | 5:c5aea1eb10bb | 93 | } |
Yo_Robot | 5:c5aea1eb10bb | 94 | else if( command == 0) |
Yo_Robot | 5:c5aea1eb10bb | 95 | { |
Yo_Robot | 5:c5aea1eb10bb | 96 | stopTimer2(); |
Yo_Robot | 5:c5aea1eb10bb | 97 | sprintf( output, "Off" ); |
Yo_Robot | 5:c5aea1eb10bb | 98 | } |
Yo_Robot | 5:c5aea1eb10bb | 99 | |
Yo_Robot | 5:c5aea1eb10bb | 100 | sprintf( output, "Error, intentelo nuevamente: %c", command ); |
Yo_Robot | 5:c5aea1eb10bb | 101 | |
Yo_Robot | 5:c5aea1eb10bb | 102 | |
Yo_Robot | 5:c5aea1eb10bb | 103 | } |
Yo_Robot | 5:c5aea1eb10bb | 104 | |
Yo_Robot | 5:c5aea1eb10bb | 105 | |
Yo_Robot | 5:c5aea1eb10bb | 106 | |
Yo_Robot | 5:c5aea1eb10bb | 107 |