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:55:48 2012 +0000
Revision:
9:6976ac1a430e
Parent:
8:958dfe5052b9
Child:
12:c02b08dacc45
v0.2 Eth RPC. Compilo falta probar y algunas funciones mas

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 9:6976ac1a430e 11
Yo_Robot 9:6976ac1a430e 12 DigitalOut pin_son( p30 ); // SON
Yo_Robot 9:6976ac1a430e 13 DigitalOut pin_dir( p29 ); // SIGN+
Yo_Robot 9:6976ac1a430e 14 InterruptIn pin_alm( p14 ); // ALM
Yo_Robot 9:6976ac1a430e 15 AnalogOut aout( p18 ); // 0.0 a 1.0 float
Yo_Robot 9:6976ac1a430e 16
Yo_Robot 8:958dfe5052b9 17 LocalFileSystem fs("webfs");
Yo_Robot 5:c5aea1eb10bb 18
Yo_Robot 8:958dfe5052b9 19 EthernetNetIf eth;
Yo_Robot 8:958dfe5052b9 20 HTTPServer svr;
Yo_Robot 8:958dfe5052b9 21
Yo_Robot 9:6976ac1a430e 22 void setAout_eth( char * input, char * output ); //Cambiar frecuencia
Yo_Robot 9:6976ac1a430e 23 void setPTO_eth( char * input, char * output ); // Encender/Apagar Pulse Train Output
Yo_Robot 8:958dfe5052b9 24
Yo_Robot 8:958dfe5052b9 25 //Set up custom RPC
Yo_Robot 9:6976ac1a430e 26 RPCFunction SetFQ(&setPTO_eth, "PTO");
Yo_Robot 9:6976ac1a430e 27 RPCFunction SetAout(&setAout_eth, "AOUT");
Yo_Robot 8:958dfe5052b9 28
Yo_Robot 3:8d5a9e3cd680 29
Yo_Robot 3:8d5a9e3cd680 30 int main() {
Yo_Robot 8:958dfe5052b9 31
Yo_Robot 8:958dfe5052b9 32 Base::add_rpc_class<AnalogIn>();
Yo_Robot 8:958dfe5052b9 33 Base::add_rpc_class<AnalogOut>();
Yo_Robot 8:958dfe5052b9 34 Base::add_rpc_class<DigitalIn>();
Yo_Robot 8:958dfe5052b9 35 Base::add_rpc_class<DigitalOut>();
Yo_Robot 8:958dfe5052b9 36 Base::add_rpc_class<DigitalInOut>();
Yo_Robot 8:958dfe5052b9 37 Base::add_rpc_class<PwmOut>();
Yo_Robot 8:958dfe5052b9 38 Base::add_rpc_class<Timer>();
Yo_Robot 8:958dfe5052b9 39 Base::add_rpc_class<BusOut>();
Yo_Robot 8:958dfe5052b9 40 Base::add_rpc_class<BusIn>();
Yo_Robot 8:958dfe5052b9 41 Base::add_rpc_class<BusInOut>();
Yo_Robot 8:958dfe5052b9 42 Base::add_rpc_class<Serial>();
Yo_Robot 8:958dfe5052b9 43
Yo_Robot 8:958dfe5052b9 44 printf("\nSetting Up...\n");
Yo_Robot 8:958dfe5052b9 45
Yo_Robot 8:958dfe5052b9 46 EthernetErr ethErr = eth.setup();
Yo_Robot 8:958dfe5052b9 47 if( ethErr )
Yo_Robot 8:958dfe5052b9 48 {
Yo_Robot 9:6976ac1a430e 49 printf( "Error %d en setup\n", ethErr );
Yo_Robot 8:958dfe5052b9 50 return -1;
Yo_Robot 8:958dfe5052b9 51 }
Yo_Robot 8:958dfe5052b9 52
Yo_Robot 8:958dfe5052b9 53 printf("Configuracion Correcta\n");
Yo_Robot 8:958dfe5052b9 54
Yo_Robot 8:958dfe5052b9 55 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
Yo_Robot 8:958dfe5052b9 56 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
Yo_Robot 8:958dfe5052b9 57
Yo_Robot 8:958dfe5052b9 58 svr.addHandler<SimpleHandler>("/hello");
Yo_Robot 8:958dfe5052b9 59 svr.addHandler<RPCHandler>("/rpc");
Yo_Robot 8:958dfe5052b9 60 svr.addHandler<FSHandler>("/files");
Yo_Robot 8:958dfe5052b9 61 svr.addHandler<FSHandler>("/"); //Default handler
Yo_Robot 8:958dfe5052b9 62 //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 63
Yo_Robot 8:958dfe5052b9 64 svr.bind(80);
Yo_Robot 6:b4dae934e1ea 65 setTimer2();
Yo_Robot 3:8d5a9e3cd680 66
Yo_Robot 8:958dfe5052b9 67 printf("Listening...\n");
Yo_Robot 4:552beeda4722 68
Yo_Robot 3:8d5a9e3cd680 69 while(1) {
Yo_Robot 8:958dfe5052b9 70
Yo_Robot 8:958dfe5052b9 71 Net::poll();
Yo_Robot 3:8d5a9e3cd680 72
Yo_Robot 3:8d5a9e3cd680 73 }
Yo_Robot 8:958dfe5052b9 74 }
Yo_Robot 8:958dfe5052b9 75
Yo_Robot 8:958dfe5052b9 76
Yo_Robot 9:6976ac1a430e 77 void setAout_eth( char * input, char * output )
Yo_Robot 8:958dfe5052b9 78 {
Yo_Robot 9:6976ac1a430e 79 int vout = atoi( input );
Yo_Robot 8:958dfe5052b9 80 aout = (float)( vout + 100 ) / 200;
Yo_Robot 9:6976ac1a430e 81 sprintf( output, " Ok, Aout = %f ", aout.read() );
Yo_Robot 8:958dfe5052b9 82 }
Yo_Robot 8:958dfe5052b9 83
Yo_Robot 9:6976ac1a430e 84 void setPTO_eth( char * input, char * output )
Yo_Robot 8:958dfe5052b9 85 {
Yo_Robot 8:958dfe5052b9 86 int freq = atoi( input );
Yo_Robot 8:958dfe5052b9 87
Yo_Robot 9:6976ac1a430e 88 if( freq != 0 ){
Yo_Robot 9:6976ac1a430e 89 LPC_TIM2->TC = 0x00; // Resetear Timer
Yo_Robot 9:6976ac1a430e 90 setMR2( getMRvalue( freq ) ); // Cambiar frefuencia
Yo_Robot 9:6976ac1a430e 91 startTimer2(); // Iniciar Timer
Yo_Robot 9:6976ac1a430e 92 sprintf( output, "Ok, Freq = %d", freq );
Yo_Robot 9:6976ac1a430e 93
Yo_Robot 9:6976ac1a430e 94 }else{
Yo_Robot 9:6976ac1a430e 95 stopTimer2();
Yo_Robot 8:958dfe5052b9 96 LPC_TIM2->TC = 0x00; // Resetear Timer
Yo_Robot 8:958dfe5052b9 97 sprintf( output, "Ok, ALTO" );
Yo_Robot 9:6976ac1a430e 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