Skip to main content

Crate uart_proto_detector

Crate uart_proto_detector 

Source
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§

GenericParser
Parser générique pour protocoles UART.
ParserConfig
Configuration complète d’un protocole UART.

Enums§

PacketLengthStrategy
Stratégie utilisée pour déterminer la longueur totale d’une trame.
ParserError
Erreurs pouvant survenir lors du parsing d’une trame UART.

Constants§

BUFFER_SIZE
Taille du buffer d’accumulation en octets.