Оценка задержки для Xbee

Я объясню свою задачу в упрощенном виде. Я общаюсь между 3 Xbee.

Прилагаемый код предназначен для отправителя Xbee. Этот Xbee фактически отправляет несколько значений value1 (здесь для упрощения я присвоил ему постоянное значение 10). Для нахождения значения1 он также выполняет некоторые другие вычисления, а затем присваивает его.

Но я нахожу, что если я уменьшу или удалю задержку(100) В итоге я получаю неправильные значения. Я предполагаю, что задержка дает буферное время для передачи данных, но мой вопрос в том, как рассчитать минимальную задержку или как можно обосновать, что это необходимая задержка ?

Надеюсь, вы понимаете мой вопрос. Если нет, пожалуйста, прокомментируйте, я расскажу еще несколько важных деталей.

  // Отправитель Xbee
    void setup()
    {
    Serial.begin(9600);
    }
    void loop()
    {
    int value1 = 10; //  некоторые жестко закодированные значения для отправки
    Serial.print('H'); // уникальный заголовок для идентификации начала сообщения
    Serial.print(value1,DEC);
    Serial.print(","); // обратите внимание, что после последнего поля ставится запятая
    Serial.print('\n'); // отправить cr/lf
    delay(100);
    }

, 👍2

Обсуждение

Если время имеет решающее значение (и при условии, что вы не хотите потерять какое-либо сообщение), вам, вероятно, потребуется некоторое уведомление о том, что сообщение было получено правильно (возможно, со значением контрольной суммы)., @Michel Keijzers


1 ответ


1

Основываясь на моем опыте работы с Xbee, я бы сказал, что предел составляет 50 мс, так как Xbee может выполнять самую низкую частоту дискретизации 50 мс.

,