use rigctld::{Daemon, Rig};
use tokio::time::{sleep, Duration};
#[tokio::main]
async fn main() {
let daemon = Daemon::default();
println!("rigctld version: {}", daemon.get_version().await.unwrap());
let mut rigctld = daemon.spawn().await.unwrap();
sleep(Duration::from_millis(250)).await;
if !rigctld.is_running().unwrap() {
println!("Failed to start rigctld. Another instance already running?");
return;
}
let mut rig = Rig::new(daemon.get_host(), daemon.get_port());
rig.connect().await.unwrap();
let (mode, _) = rig.get_mode().await.unwrap();
println!("Rig started in mode {}", mode);
rig.set_mode(rigctld::Mode::LSB, 0).await.unwrap();
let (mode, _) = rig.get_mode().await.unwrap();
println!("Set rig to mode {}", mode);
let mut counter = 7000000;
while counter < 7200000 {
rig.set_frequency(counter).await.unwrap();
let freq = rig.get_frequency().await.unwrap();
println!("Current frequency {} Hz", freq);
counter += 10000;
sleep(Duration::from_millis(500)).await;
}
rig.disconnect();
rigctld.kill().await.unwrap();
println!("Done.");
}