Només falta afegir les vostres parts, a mi em falta fer la comprovació de la connexió. S'hauria de separar les classes en arxius separats per deixar-ho més net.

Dependencies:   mbed-rtos mbed Hc05 RawSerialPc

main.cpp

Committer:
jcabello7
Date:
2015-12-23
Revision:
7:723c1e609ac8
Parent:
6:c4af95f6e155

File content as of revision 7:723c1e609ac8:

#include "mbed.h"
#include "rtos.h"
#include "Hc05.h"
#include "RawSerialPc.h"


RawSerialPc pc(USBTX, USBRX);    //Per provar si funciona, no cal al programa
Hc05 bt(D8, D2);        //Crea l'objecte bt, connectat als pins D8 (TX) i D2 (RX) (és la connexió sèrie BT)

//Aquest serà el meu fil, que va llegint cada 300ms del HC-05 
void llegir_thread(void const *args) {
    while (true) {
        //Intenta llegir un string, i si el llegeix, el tracta
        if(bt.llegirString())
            bt.tractaString();      
        //Comprova la connexió (mira si ha rebut alguna cosa)
        bt.comprovaConnexio();
        //Temps del Thread que està esperant
        Thread::wait(100);
        
    }
}

//Aquest serà el programa principal
int main() {
    
    Thread thread(llegir_thread);       //Inicia el fil llegir_thread
    //char m[128];                        //Per visualitzar el mode i el timer, no es necessari
    while (true) {
        //pc.enviaString(bt.strLlegit);   //Per veure l'ultim string llegit, no es necessari
        bt.calculaMotors(); //Calcula com s'han de moure els motors
        //snprintf(m, 128, "Mode: %d | timer: %dms", bt.getMode(), bt.getTimer()); //Per visualitzar el mode i el timer, no es necessari
        //pc.enviaString(m);              //Per visualitzar el mode i el timer, no es necessari
        //pc.enviaString(bt.strPos);      //Per visualitzar la posicio on ha d'anar el robot, no es necessari
        if((bt.getMode() == 0) || (bt.getMode() == 1) || (bt.getMode() == 2)) {
            pc.enviaString(bt.strM1);       //String motor1 que s'envia a l'arduino d'en Marcel
            pc.enviaString(bt.strM2);       //String motor2 que s'envia a l'arduino d'en Marcel
            pc.enviaString(bt.strM3);       //String motor3 que s'envia a l'arduino d'en Marcel
        }
        else if (bt.getMode() == 3) {
            ;//Mode automàtic (programa Eva)
        }
        else if (bt.getMode() == 4) {
            ;//Mode mando (programa Marc)
        }
        else {
            pc.enviaString("V000FM1");       //String motor1 que s'envia a l'arduino d'en Marcel
            pc.enviaString("V000FM2");       //String motor2 que s'envia a l'arduino d'en Marcel
            pc.enviaString("V000FM3");       //String motor3 que s'envia a l'arduino d'en Marcel
        }
        Thread::wait(500);              //Temps del Thread que està esperant
    }
}