Josimar Hernandez / Mbed 2 deprecated TELECOMANDOS

Dependencies:   mbed

Fork of 01-04EntregaPrimerCorte by ferney alberto beltran molina

main.cpp

Committer:
Yances64
Date:
2018-09-09
Revision:
2:dd42be3f7753
Parent:
1:526bdd5faa37

File content as of revision 2:dd42be3f7753:

#include "mbed.h"  //inicio programa.

#include "main.h"




Serial command(USBTX, USBRX); //cremos una clase de comunicación por USB llamada "command"



int main() {
    
    init_servo();  //llamamos a ejecutar la función "init_servo" para parametrizr los servos. Función en página mover.cpp
    init_serial(); //Lamamos a ajecurae la función "intit_servo" para parametrizr la trnsferencia de información. Función esn esta página.

    debug_m("inicio \n"); //se ejecurá la funsión "debug_m" para publicar "inicio". La función está al final de esta página.
    uint32_t read_cc; //Se crea una variable llamada "read_cc",varible de 32 bits
    
    while(1) //while infinito
    {
      read_cc=read_command(); //se le dice a "read_cc" que tome los valores obtenidos de la ejecución de la función "read_command(), claramente se ejecuta la función, función alfinal de esta página. 
        switch (read_cc) { //con el valor retornado y almacenado en la varible "read_cc" se realiza un switch para elegir qué operación se va ejecutar. 
            case  0x01: moving(); break; // en este caso solo hay una posible operación, mover un servo, se ejecuta la función "moving" al final de esta página.
            default: debug_m("error de comando. \nSe espera  0xFEF0 o 0xFFF0 \n");break ;
            }
   
    }
}



uint32_t read_command() 
{
    
    char intc=command.getc(); //creamos una variable llamada "intc" (comando de inicio) que obtiene el dato del puerto USB, este es el primer dato recibido de la cadena de caractéres enviados a la tarjeta
    
    while(intc != 0xFF) //con el valor obtenido se realiza un while, que se ejecutará mientras el primer dato de la cadena sea "FF".
        intc=command.getc(); //se lee nuevamente el puerto serial y obtenemos el segundo dato de la cadena de caractéres (tipo de operción a ejecutar)
    return command.getc(); //retornamos el valor obtenido.
}


void init_serial()
{
    command.baud(9600);    //velocidad de tranmisión
}


void moving(){
    
    debug_m("se inicia el comado mover..\n"); //se ejecuta la función "debug_m" con el dato "se inicia el comado mover.."    
    
    char nmotor=command.getc(); //se crea variable "nmotor" que es cargada con el dato obtenido del puerto serial, tercer dato de la cadena.
    char grados=command.getc(); //se crea la variable "grados" que es cargada con el dato obtenido del puerto serial, cuarto dato de la cadena.
    char endc=command.getc(); //se crea la variable "endc" que es cargada con el dato obtenido del puerto serial, quinto y últio dato de la cadena, caracter de ciere. 
    mover_ser(nmotor,grados); //se ejecuta la función "mover_ser", página "mover.cpp",esta función se ejecutará con los datos "nmotor" y "grados" obtenidos anteriormente 
    debug_m("fin del comado guardar..\n"); //se ejecuta la función "debug_m" para publicar el texto.     
    
}


void debug_m(char *s , ... ){  //función para publicar.
    #if DEBUG
    command.printf(s); //se publica el valor enviado.
    #endif  
}