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
Si cet article vous a aidé, pensez à m'offrir un café ou à faire un don via PayPal pour soutenir la recherche et la publication de nouveaux articles sur TechOverflow