Offline
Newbie
Karma: 0
Posts: 17
|
 |
« on: November 16, 2012, 09:36:25 am » |
Olá pessoal, tudo bem?
Sou novo no Arduino e to passando mals pedaços com ele tentando fazer comunicação Xbee em 2 hops. Gostaria muito da colaboração de vocês para eu conseguir terminar meu projeto final. Ficarei muito grato pela atenção e ajuda galera!
Então, o que eu estou tentando fazer é enviar pacote de um arduino para o outro estaticamente em hops. São no total de 3 arduinos. Estou tendo problemas na comunicação dos 2 primeiros, se conseguir resolver isso, o 3º hop acho que fica fácil. Note que todos os 3 arduinos tem uma identificação, no caso (1), (2), (3). Em poucas palavras, to tentando enviar um pacote de um arduino com XbeeShield (todos possuem) neste formato (2#1#0#) -> (Hostdestino, HostOrigem, hop).
Mas, como disse to tendo problema em um método da minha biblioteca chamado recebeBeacon, que está abaixo:
Beacon Service::recebeBeacon(short id) {
Beacon beacon; String msg; while(Serial.available() > 0) { byte temp = Serial.read(); msg = msg + (char) temp; } Serial.flush(); if (msg.length() > 0) { beacon = converteStringParaBeacon(msg); delay(1000); Serial.flush(); if (verificaMensagemBeacon(beacon,id)) { return beacon; } } return beacon; }
Meu arduino (1) envia o pacote com (2#1#0#), ta ok! void loop() { //Send beacon com Dest(2), Source(1), Hop(0) beacon = Beacon(2,1,0); service.enviaBeacon(beacon); delay(2000); } Mas, quando o arduino (2) pega a mensagem, além da mensagem vir, vem um monte de lixo. Olhem a figura anexada para vocês terem uma ideia.
recebendo... void loop() { recebe = service.recebeBeacon(1); delay(2000);
//recebe.getDhost(), recebe.getShost(), recebe.getSALTO() são do tipo short, não sei se o problema ta aqui!!!
beacon = Beacon(recebe.getDhost(), recebe.getShost(), recebe.getSALTO()); Serial.println(service.converteBeaconParaString(beacon)); delay(2000); }
Fui claro pessoal? O que vocês acham?
Muito obrigado pela atenção!!!
|