Wie sollten ACKs für ein 10-Byte-Paket gehandhabt werden, das ausgehend von einem JS-Client (BLE → UART → MCU → UART → BC++

Programme in C++. Entwicklerforum
Anonymous
 Wie sollten ACKs für ein 10-Byte-Paket gehandhabt werden, das ausgehend von einem JS-Client (BLE → UART → MCU → UART → B

Post by Anonymous »

Architektur:
React/Ionic → BLE → ESP32 → UART → PIC16F (autoritatives ACK)
→ UART → ESP32 → BLE → React/Ionic
Problem:
Ich verwende derzeit exponentielles Backoff für die meisten Befehle, was für die Prüfsummenvalidierung zuverlässig war über diese Kette hinweg. Allerdings muss sich eine Funktion (B) nahezu in Echtzeit verhalten, und ein exponentielles Backoff wird inakzeptabel.
Optimistische UI ist keine Option, Sockets sind hier nicht praktikabel und die nachgeschaltete MCU ist die alleinige Autorität für die Akzeptanz – ACKs können nicht früher in der Kette generiert werden.
Die Round-Trip-Zeit im besten Fall beträgt ~1,67 ms. Wenn eine Kollision auftritt, kann der exponentielle Backoff die Bestätigung auf 2–4 Sekunden verzögern, was für (B) nicht akzeptabel ist.
Aktuelle Baudraten (aus Hardware-Kompatibilitätsgründen festgehalten):
BLE ↔ Telefon: 115200
UART ↔ MCU: 9600

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post