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