]> code.octet-stream.net Git - m17rt/blob - tools/m17rt-rxpacket/src/main.rs
Error handler for soundmodem components
[m17rt] / tools / m17rt-rxpacket / src / main.rs
1 use m17app::adapter::PacketAdapter;
2 use m17app::app::M17App;
3 use m17app::link_setup::LinkSetup;
4 use m17app::soundcard::Soundcard;
5 use m17app::soundmodem::{NullErrorHandler, NullOutputSink, NullPtt, Soundmodem};
6 use m17app::PacketType;
7 use std::sync::Arc;
8
9 fn main() {
10 let soundcard = Soundcard::new("plughw:CARD=Device,DEV=0").unwrap();
11 let soundmodem = Soundmodem::new(
12 soundcard.input(),
13 NullOutputSink::new(),
14 NullPtt::new(),
15 NullErrorHandler::new(),
16 );
17 let app = M17App::new(soundmodem);
18 app.add_packet_adapter(PacketPrinter).unwrap();
19 app.start().unwrap();
20
21 loop {
22 std::thread::park();
23 }
24 }
25
26 struct PacketPrinter;
27 impl PacketAdapter for PacketPrinter {
28 fn packet_received(&self, link_setup: LinkSetup, packet_type: PacketType, content: Arc<[u8]>) {
29 println!(
30 "from {} to {} type {:?} len {}",
31 link_setup.source(),
32 link_setup.destination(),
33 packet_type,
34 content.len()
35 );
36 println!("{}", String::from_utf8_lossy(&content));
37 }
38 }