Expand description
§uart-proto-detector
Bibliothèque universelle no_std pour la détection et le découpage de trames
UART sur systèmes embarqués.
§Fonctionnement
Le parser accumule les octets reçus un à un, valide l’en-tête, détermine la longueur attendue selon la stratégie choisie, puis retourne la trame complète. La validation du CRC est volontairement exclue de cette bibliothèque : chaque composant implémentant son propre algorithme, cette responsabilité revient au code appelant.
§Exemple minimal
use uart_proto_detector::{GenericParser, ParserConfig, PacketLengthStrategy};
// Protocole avec en-tête [0xAA, 0x55] et longueur fixe de 8 octets
let config = ParserConfig {
header: &[0xAA, 0x55],
length_strategy: PacketLengthStrategy::Fixed(8),
};
let mut parser = GenericParser::new(config);
let stream: &[u8] = &[0xAA, 0x55, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06];
for &byte in stream {
match parser.parse_byte(byte) {
Ok(Some(packet)) => { /* traiter le paquet complet */ }
Ok(None) => { /* trame en cours d'accumulation */ }
Err(e) => { /* gérer l'erreur */ }
}
}Structs§
- Generic
Parser - Parser générique pour protocoles UART.
- Parser
Config - Configuration complète d’un protocole UART.
Enums§
- Packet
Length Strategy - Stratégie utilisée pour déterminer la longueur totale d’une trame.
- Parser
Error - Erreurs pouvant survenir lors du parsing d’une trame UART.
Constants§
- BUFFER_
SIZE - Taille du buffer d’accumulation en octets.