e-tipsmemo.hatenablog.com
の続きで
e-tipsmemo.hatenablog.com
ができるようになったので。
測定された時刻、電圧、電流、ワット数をserde_jsonでシリアライズして送信
Cargo.toml
serde = "1.0" serde_derive = "1.0" serde_json = "1.0"
#[derive(Serialize, Deserialize, Debug)] struct Measdata{ time: String, voltage: f32, current: f32, wattage: f32, } fn parse_data(d: Vec<u8>) -> Measdata { let t = format!("20{:02}/{:02}/{:02} {:02}:{:02}:{:02}", d[19], d[18], d[17], d[16], d[15], d[14]); let c = ((d[7] as u32) << 16)|((d[6] as u32) << 8)|((d[5] as u32)); let v = ((d[10] as u32) << 16)|((d[9] as u32) << 8)|((d[8] as u32)); let p = ((d[13] as u32) << 16)|((d[12] as u32) << 8)|((d[11] as u32)); Measdata{time:t, voltage:(v as f32)/1000.0, current:(c as f32)/128.0, wattage:(p as f32)*5.0/1000.0} }
メインループ
while running.load(Ordering::SeqCst) { match wc.request_measure() { Ok(data) => { let m = parse_data(data); let json_str = serde_json::to_string(&m).unwrap(); println!("{}", json_str); sender.send(json_str); }, Err(e) => eprintln!("{:?}", e), } thread::sleep(Duration::from_millis(2000)); }
serde_jsonは非常に便利。
OK
あとはこのjsonからグラフ化してみる予定。
Ryzenは(Ryzen5 2600Xを使用している)エンコ爆速なんだけどアイドル高めだという噂なので気になる。
PLEX 地上デジタル・BS・CS対応TVチューナー PX-W3PE4
- 出版社/メーカー: プレクス
- 発売日: 2017/04/19
- メディア: Personal Computers
- この商品を含むブログを見る
AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX
- 出版社/メーカー: AMD
- 発売日: 2018/04/19
- メディア: Personal Computers
- この商品を含むブログを見る