Files
daqbuffer/archapp/src/test.rs
2021-12-17 18:24:44 +01:00

56 lines
1.7 KiB
Rust

use crate::unescape_archapp_msg;
use err::Error;
use netpod::log::*;
use protobuf::Message;
pub fn read_pb_dummy() -> Result<(), Error> {
Ok(())
}
#[cfg(feature = "devread")]
#[test]
fn read_pb_00() -> Result<(), Error> {
use std::path::PathBuf;
let block1 = async move {
let homedir = std::env::var("HOME").unwrap();
let path = PathBuf::from(homedir)
.join("archappdata")
.join("lts")
.join("ArchiverStore")
.join("SARUN16")
.join("MQUA080")
.join("X:2021_01.pb");
let f1 = tokio::fs::read(path).await?;
let mut j1 = 0;
// TODO assert more
loop {
let mut i2 = usize::MAX;
for (i1, &k) in f1[j1..].iter().enumerate() {
if k == 0xa {
i2 = j1 + i1;
break;
}
}
if i2 != usize::MAX {
debug!("got NL {} .. {}", j1, i2);
let m = unescape_archapp_msg(&f1[j1..i2], vec![])?;
if j1 == 0 {
let payload_info = crate::generated::EPICSEvent::PayloadInfo::parse_from_bytes(&m).unwrap();
debug!("got payload_info: {:?}", payload_info);
} else {
let scalar_double = crate::generated::EPICSEvent::ScalarDouble::parse_from_bytes(&m).unwrap();
debug!("got scalar_double: {:?}", scalar_double);
}
} else {
debug!("no more packets");
break;
}
j1 = i2 + 1;
}
Ok::<_, Error>(())
};
taskrun::run(block1)?;
Ok(())
}