quinta-feira, 14 de outubro de 2010

Comunição - Parte II

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