2019-11-24 14:54:36 +00:00
|
|
|
mod service_specific;
|
2019-11-22 10:24:12 +00:00
|
|
|
|
2022-07-15 17:08:22 +00:00
|
|
|
use anyhow::Result;
|
2019-11-24 14:54:36 +00:00
|
|
|
use service_specific::*;
|
2019-11-22 10:24:12 +00:00
|
|
|
|
2022-07-15 17:08:22 +00:00
|
|
|
fn main() -> Result<()> {
|
2019-11-24 14:54:36 +00:00
|
|
|
let mut port = Port::open(SerialPortSettings {
|
2019-11-24 07:10:54 +00:00
|
|
|
baud_rate: 9600,
|
|
|
|
data_bits: DataBits::Eight,
|
|
|
|
parity: Parity::None,
|
|
|
|
stop_bits: StopBits::One,
|
|
|
|
flow_control: FlowControl::None,
|
|
|
|
timeout: Duration::from_millis(2500),
|
2019-11-24 14:54:36 +00:00
|
|
|
})?;
|
2019-11-23 22:31:21 +00:00
|
|
|
|
2019-11-24 14:54:36 +00:00
|
|
|
let mut message_builder = MessageBuilder::default();
|
2019-11-23 22:31:21 +00:00
|
|
|
|
|
|
|
loop {
|
2019-11-24 11:41:15 +00:00
|
|
|
match port.read()? {
|
2019-11-24 14:54:36 +00:00
|
|
|
SerialReadResult::Message(msg) => {
|
|
|
|
if let Some(remaining) = message_builder.check(msg) {
|
|
|
|
assert!(message_builder.is_complete());
|
|
|
|
|
|
|
|
println!("{}", message_builder.message());
|
|
|
|
|
|
|
|
message_builder = MessageBuilder::default();
|
|
|
|
}
|
|
|
|
}
|
2019-11-24 11:41:15 +00:00
|
|
|
SerialReadResult::Timeout => (),
|
2019-11-23 22:31:21 +00:00
|
|
|
}
|
|
|
|
}
|
2019-11-22 10:24:12 +00:00
|
|
|
}
|