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

Committer:
Yo_Robot
Date:
2012-03-28
Revision:
5:c5aea1eb10bb
Parent:
4:552beeda4722
Child:
6:b4dae934e1ea

File content as of revision 5:c5aea1eb10bb:

//  GENERADOR DE FRECUENCIAS
 
#include "mbed.h"
#include "setup.h"
#include "EthernetNetIf.h"
#include "HTTPServer.h"
#include "RPCFunction.h"
#include "RPCVariable.h"
#include "SerialRPCInterface.h"

DigitalOut led1(LED1, "led1");
DigitalOut led2(LED2, "led2");
DigitalOut led3(LED3, "led3");
DigitalOut led4(LED4, "led4");

LocalFileSystem fs("webfs");

EthernetNetIf eth;  
HTTPServer svr;

void setFq( char * input, char * output );  //Cambiar frecuencia
void setPTO( char * input, char * output );          // Encender/Apagar Pulse Train Output


//Set up custom RPC
RPCFunction SetFQ(&setFq, "Frecuencia");
RPCFunction SetPTO(&setPTO, "Encender");


int main() {
    
    Base::add_rpc_class<AnalogIn>();
    Base::add_rpc_class<AnalogOut>();
    Base::add_rpc_class<DigitalIn>();
    Base::add_rpc_class<DigitalOut>();
    Base::add_rpc_class<DigitalInOut>();
    Base::add_rpc_class<PwmOut>();
    Base::add_rpc_class<Timer>();
    Base::add_rpc_class<BusOut>();
    Base::add_rpc_class<BusIn>();
    Base::add_rpc_class<BusInOut>();
    Base::add_rpc_class<Serial>();
    
    printf("\nSetting Up...\n");
    
    EthernetErr ethErr = eth.setup();
    if( ethErr )
    {
        printf( "Error %d in setup\n", ethErr );
        return -1;
    }
    
    printf("Configuracion Correcta\n");
    
    FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
    FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
  
    svr.addHandler<SimpleHandler>("/hello");
    svr.addHandler<RPCHandler>("/rpc");
    svr.addHandler<FSHandler>("/files");
    svr.addHandler<FSHandler>("/"); //Default handler
    //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
   
    svr.bind(80);
    setTimer2();
    
    printf("Listening...\n");
    
    while(1) {
        
        Net::poll();
    
     }
}


void setFq( char * input, char * output )
{
    int frequency = atoi( input );
    setMR2( getMRvalue( frequency ) );
    
    sprintf( output, "Ok, Freq = %d", frequency);
}

void setPTO( char * input, char * output )
{
    int command = atoi( input );
    
    if( command == 1)
    {
        startTimer2();
        sprintf( output, "On" );
    }
    else if( command == 0)
    {
        stopTimer2();
        sprintf( output, "Off" );
    }
    
    sprintf( output, "Error, intentelo nuevamente: %c", command );
    
        
}