Conforme dito na postagem de terça-feira, 28 de setembro, segue o programa que faz a comunicação Bluetooth (escravo e mestre). Trata-se apenas de um teste da interface dos dois aplicativos.
Segue!
Codigo do Mestre
#include "NXCDefs.h"
#define INBOX 1
#define OUTBOX 5
sub BTCheck(int conn){
if (!BluetoothStatus(conn)==NO_ERR){
TextOut(5,LCD_LINE2,"Erro");
Wait(1000);
Stop(true);
}
}
task main(){
//Definindo sensores
SetSensor(IN_1,SENSOR_TOUCH);
string in,out="START";
BTCheck(1); // Verifica conexão
TextOut(10,LCD_LINE1,out);
SendRemoteString(1,OUTBOX,out);
while (1){
OnFwd(OUT_AB, 100);
//Se sensor de toque ativado, envia mensagem escravo
if (SENSOR_1 == 1) {
out = "GIRE!";
SendRemoteString(1,OUTBOX,out);
while(in != "GIRO COMPLETO"){
ReceiveRemoteString(INBOX, TRUE, in);
Wait(100);
}
in = "";
OnRev(OUT_AB, 75);
Wait(1000);
OnFwd(OUT_A, 75);
OnRev(OUT_B, 75);
Wait(500);
}
}
}
Codigo do Escravo
#define INBOX 5
#define OUTBOX 1
sub BTCheck(int conn){
if (!BluetoothStatus(conn)==NO_ERR){
TextOut(5,LCD_LINE2,"Erro");
Wait(1000);
Stop(true);
}
}
task main(){
string in,out="OK!";
BTCheck(0); //Verifica conexão
while (in != "START"){
Wait(100);
TextOut(10,LCD_LINE1,"ESPERANDO START MESTRE");
ReceiveRemoteString(INBOX, true, in);
}
out = "OK";
SendResponseString(OUTBOX, out);
TextOut(10,LCD_LINE1,"START MESTRE OK");
while(1){
TextOut(10,LCD_LINE1,"ANDANDO FRENTE");
OnFwd(OUT_AB, 100);
ReceiveRemoteString(INBOX, TRUE, in);
if (in == "GIRE!"){
TextOut(10,LCD_LINE1,"GIRANDO");
OnRev(OUT_AB, 75);
Wait(1000);
OnFwd(OUT_A, 75);
OnRev(OUT_B, 75);
Wait(500);
in = "";
out = "GIRO COMPLETO";
TextOut(10,LCD_LINE1,"GIRO COMPLETO);
SendResponseString(OUTBOX, out);
}
}
}
Nenhum comentário:
Postar um comentário