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:
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?

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 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