]> code.octet-stream.net Git - m17rt/blob - tools/m17rt-mod/src/main.rs
Error handler for soundmodem components
[m17rt] / tools / m17rt-mod / src / main.rs
1 use m17app::app::M17App;
2 use m17app::link_setup::M17Address;
3 use m17app::serial::{PttPin, SerialPtt};
4 use m17app::soundcard::Soundcard;
5 use m17app::soundmodem::{NullErrorHandler, Soundmodem};
6 use m17codec2::WavePlayer;
7 use std::path::PathBuf;
8
9 pub fn mod_test() {
10 let soundcard = Soundcard::new("plughw:CARD=Device,DEV=0").unwrap();
11 soundcard.set_tx_inverted(true);
12 let ptt = SerialPtt::new("/dev/ttyUSB0", PttPin::Rts).unwrap();
13 let soundmodem = Soundmodem::new(
14 soundcard.input(),
15 soundcard.output(),
16 ptt,
17 NullErrorHandler::new(),
18 );
19 let app = M17App::new(soundmodem);
20 app.start().unwrap();
21 std::thread::sleep(std::time::Duration::from_secs(1));
22 println!("Beginning playback...");
23 WavePlayer::play(
24 PathBuf::from("../../../Data/test_vk7xt_8k.wav"),
25 app.tx(),
26 &M17Address::from_callsign("VK7XT-1").unwrap(),
27 &M17Address::new_broadcast(),
28 0,
29 );
30 println!("Playback complete.");
31 std::thread::sleep(std::time::Duration::from_secs(1));
32 app.close().unwrap();
33 }
34
35 fn main() {
36 env_logger::builder()
37 .format_timestamp(Some(env_logger::TimestampPrecision::Millis))
38 .init();
39 mod_test();
40 }