#client #structures #traits #send #no-std #values

no-std svisual

SVisual客户端的基本Rust结构和特性

5个不稳定版本

0.4.1 2021年12月4日
0.4.0 2021年12月4日
0.3.0 2021年5月5日
0.2.4 2019年7月15日
0.2.3 2019年7月15日

#1532 in 嵌入式开发

Download history 10/week @ 2024-03-28 1/week @ 2024-04-04 122/week @ 2024-06-06 16/week @ 2024-06-13

每月138次下载

MIT/Apache

11KB
233 代码行

crates.io crates.io

SVisual-rs

SVisual客户端提供的基本Rust结构和特性。

例如,实现示例请见svisual-stm32f1

使用方法

让我们测量两个变量,每个100毫秒,并在测量15个值后发送它们。

    let (mut tx, _) = Serial::usart3(
        p.USART3,
        (tx, rx),
        &mut afio.mapr,
        Config::default().baudrate(9600.bps()),
        clocks,
        &mut rcc.apb1,
    )
    .split();

    let mut delay = Delay::new(cp.SYST, clocks);

    // Create new map with not more than 2 different signals and 15 values in package
    let mut sv_map = SVMap::<2, 15>::new();

    loop {
        for i in 0..30 {
            // Set value of first signal of integers
            sv_map.set("temp", 15 + i).ok();
            // Set value of second signal of floats
            sv_map.set("temp2", 14. - (i as f32) / 2.).ok();
            // Use next value cell
            sv_map.next(|s| {
                // if package is full, send package with module name
                block!(tx.send_package("TempMod", s)).ok();
            });
            // Wait
            delay.delay_ms(100u16);
        }
    }

依赖项

~715KB
~13K SLoC