Comment lire un message binaire à préfixe de longueur depuis le port série en utilisant Arduino

La fonction suivante vous permet de lire un message binaire, préfixé par un seul octet length, depuis Serial :

read_length_prefixed_serial.cpp
#include <Arduino.h>

void setup() {
    Serial.begin(115200);
}

void HandleMessage(String msg) {
    // TODO : Votre code pour gérer le message va ici.
    // Voir https://techoverflow.net/2022/11/15/how-to-print-string-as-sequence-of-hex-bytes-in-arduino/
    // pour un exemple de comment imprimer le message comme une séquence d'octets hexadécimaux.
}

void ReadMessageFromSerial() {
    // Attend jusqu'à ce que l'octet de longueur soit disponible sur Serial
    while (Serial.available() == 0);

    // Lit la longueur du message
    int length = Serial.read();

    // Lit le reste du message
    String message = "";
    for (int i = 0; i < length; i++) {
      while (Serial.available() == 0);
      message += char(Serial.read());
    }

    // Gère le message
    HandleMessage(message);
}

void loop() {
    ReadMessageFromSerial();
}

Consultez les articles similaires par catégorie : Allgemein Arduino Electronics Embedded