e-tipsmemo

ごった煮

Ryzen 録画サーバー 電力測定③ (Rust serialport ②)

e-tipsmemo.hatenablog.com
e-tipsmemo.hatenablog.com

とりあえずRustでWattChecker-REXのサンプルコードと同じことができるようになった

fn main() {
    println!("Hello, world!");
    let mut wc = WattChecker::default();
    wc.init();
    wc.start_measure();

    let running = Arc::new(AtomicBool::new(true));
    let r = running.clone();
    ctrlc::set_handler(move || {
        r.store(false, Ordering::SeqCst);
    }).expect("Error setting Ctrl-C handler");

    while running.load(Ordering::SeqCst)
    {
        match wc.request_measure() {
            Ok(cmd) => disp_data(cmd),
            Err(e) => eprintln!("{:?}", e),
        }

        thread::sleep(Duration::from_millis(2000));
    }

    println!("stop measuring");
    wc.stop_measure();
}

本当はportをcloneして別スレッドで動かすことで、
WriteとReadのスレッドを分けることもできるがそれは後で。

f:id:katakanan:20181123180256p:plain
せっかくリアルタイムで測定してくれているので
これをWeb画面から表示できるようにしてみたい。