hackdose-sml-parser 0.10.0

a parser for the smart message language spoken by smart meters
Documentation
use hackdose_sml_parser::message_stream::sml_message_stream;
use tokio::io::AsyncRead;
use tokio_serial::SerialStream;
use tokio_stream::StreamExt;

pub(crate) fn uart_ir_sensor_data_stream() -> impl AsyncRead {
    let ttys_location = "/dev/ttyS0";
    let serial = tokio_serial::new(ttys_location, 9600);
    let stream = SerialStream::open(&serial).unwrap();
    stream
}

#[tokio::main(worker_threads = 2)]
async fn main() {
    let uart = uart_ir_sensor_data_stream();
    let mut stream = sml_message_stream(uart);
    while let Some(event) = stream.next().await {
        println!("Event: {:?}", event);
    }
}