twinleaf_tools/cli/
simulate.rs1use clap::Parser;
2
3use super::nonneg_f64;
4
5#[derive(Parser, Debug)]
6#[command(version, about = "Simulate a Twinleaf device over UDP")]
7pub struct SimulateCli {
8 #[arg(
10 long = "samplerate",
11 alias = "sample-rate",
12 default_value = "1000",
13 value_parser = clap::value_parser!(u32).range(1..)
14 )]
15 pub(crate) samplerate: u32,
16
17 #[arg(long = "frequency", default_value = "10", value_parser = nonneg_f64)]
19 pub(crate) frequency: f64,
20
21 #[arg(long = "amplitude", default_value = "1", value_parser = nonneg_f64)]
23 pub(crate) amplitude: f64,
24
25 #[arg(long = "noise", default_value = ".01", value_parser = nonneg_f64)]
27 pub(crate) noise: f64,
28
29 #[arg(
31 long = "segment-seconds",
32 default_value = "10",
33 value_parser = clap::value_parser!(u32).range(1..)
34 )]
35 pub(crate) segment_seconds: u32,
36
37 #[arg(long = "port", default_value = "7855")]
39 pub(crate) port: u16,
40}