2017-01-09 3 views
0

Я пытался передать данные от координатора XBee к XBee в маршрутизаторе AT режиме. Оно работает.Передача данных от координатора XBee (API) к маршрутизатору XBee (AT)

Однако существует слишком большая задержка при недопустимой длительности. Как решить проблему задержки?

int led = 0; 
int ledX = 13; 
int pin = 5; 
int bs; 
String store[20]; 
void setup() { 
pinMode(led,OUTPUT); 
pinMode(pin,INPUT); 
Serial.begin(9600); 
} 

void loop() { 
// bs = digitalRead(5); 
    //if(bs == LOW){ 
    digitalWrite(led,HIGH); 
    setRemoteState(0x05); 
    delay(1000); 

    //} 
    //else if(bs == HIGH){ 
    digitalWrite(led,LOW); 
    setRemoteState(0x04); 
    delay(1000); 
    //} 

} 
void setRemoteState(char value){ 
Serial.write(0x7E); //start of the frame 
Serial.write((byte)0); // byte length 
Serial.write(0x10); //high part 16 in decimal 
Serial.write(0x17); // AT command request 
Serial.write((byte)0); // frame ID dont need any ack 
Serial.write((byte)0); 
Serial.write((byte)0); 
Serial.write((byte)0); 
Serial.write((byte)0); 
Serial.write((byte)0); 
Serial.write((byte)0); 
Serial.write(0xFF); 
Serial.write(0xFF); 

Serial.write(0xFF); 
Serial.write(0xFE); 

Serial.write(0x02); 

Serial.write('D'); 
Serial.write('3'); //change pin D3 

Serial.write(value); 

long sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '3' + value; 
Serial.write(0xFF - (sum &0xFF)); 

} 

Выше мой код, который я реализовал в моем Arduino

ответ

0

Сколько задержки вы видите? После того, как вы передадите последний байт в координатор, сколько миллисекунд истечет, прежде чем вы увидите данные на маршрутизаторе?

Какой приемлемый уровень? Это низкоскоростная (250 кбит/с) радиосеть, которая может потребоваться отсканировать ваше сообщение на нескольких узлах. Ожидание латентности до 100 мс, вероятно, нереально.

Если вы используете модули XBee со скоростью 9600 бод, увеличьте скорость передачи до 115200 бит/с, чтобы сократить время, затрачиваемое на отправку в один XBee и получение на другом.

+0

Задержка до 10 секунд, что необоснованно. Я изменил скорость передачи до 115200, но все еще не улучшился, я также загрузил свой код, вы можете сказать, посмотрев на него? – Muhammad

+0

Вы отправляете широковещательные сообщения (адрес 0x000000000000FFFF), и вам будет лучше использовать MAC-адрес маршрутизатора. Кроме того, вы отправляете каждую секунду, даже если вход не изменился. Следите за состоянием ввода-вывода и передавайте только при его изменении. Это определенно поможет. – tomlogic

Смежные вопросы