]> code.octet-stream.net Git - m17rt/blob - tools/m17rt-txpacket/src/main.rs
Error handler for soundmodem components
[m17rt] / tools / m17rt-txpacket / src / main.rs
1 use m17app::app::M17App;
2 use m17app::link_setup::{LinkSetup, M17Address};
3 use m17app::serial::{PttPin, SerialPtt};
4 use m17app::soundcard::Soundcard;
5 use m17app::soundmodem::{NullErrorHandler, Soundmodem};
6 use m17core::protocol::PacketType;
7
8 fn main() {
9 let soundcard = Soundcard::new("plughw:CARD=Device,DEV=0").unwrap();
10 soundcard.set_tx_inverted(true);
11 let ptt = SerialPtt::new("/dev/ttyUSB0", PttPin::Rts).unwrap();
12 let soundmodem = Soundmodem::new(
13 soundcard.input(),
14 soundcard.output(),
15 ptt,
16 NullErrorHandler::new(),
17 );
18 let app = M17App::new(soundmodem);
19
20 app.start().unwrap();
21
22 println!("Transmitting packet...");
23 let source = M17Address::from_callsign("VK7XT-1").unwrap();
24 let destination = M17Address::new_broadcast();
25 let link_setup = LinkSetup::new_packet(&source, &destination);
26 let payload = b"Hello, world!";
27 app.tx()
28 .transmit_packet(&link_setup, PacketType::Sms, payload)
29 .unwrap();
30
31 std::thread::sleep(std::time::Duration::from_secs(1));
32 app.close().unwrap();
33 }