diff --git a/src/args.rs b/src/args.rs index b3b9a2a..22569b4 100644 --- a/src/args.rs +++ b/src/args.rs @@ -113,6 +113,7 @@ pub enum GetCommands { MaxStationNum, /// Fetch device version. DeviceVersion, + SmsParameterInfo, } #[derive(Subcommand, Debug)] diff --git a/src/main.rs b/src/main.rs index a929964..1f13817 100644 --- a/src/main.rs +++ b/src/main.rs @@ -49,6 +49,7 @@ async fn main() -> EyreResult<()> { GetCommands::SystemStatus => router.system_status().await?, GetCommands::MaxStationNum => router.show::().await?, GetCommands::DeviceVersion => router.show::().await?, + GetCommands::SmsParameterInfo => router.show::().await?, }, TopLevelCommands::Post { command } => match command { PostCommands::Reboot => router.reboot().await?, diff --git a/src/proc_get.rs b/src/proc_get.rs index a0f85f1..42b33a0 100644 --- a/src/proc_get.rs +++ b/src/proc_get.rs @@ -1023,3 +1023,36 @@ impl ProcGet for DeviceVersion { Ok(()) } } +#[derive(Debug, Deserialize)] +pub struct SmsParameterInfo { + pub sms_para_sca: BoxStr, + pub sms_para_mem_store: BoxStr, + pub sms_para_validity_period: BoxStr, + pub sms_para_status_report: BoxStr, + pub sendfail_retry: BoxStr, + pub outdate_delete: BoxStr, + pub default_store: BoxStr, +} + +impl ProcGet for SmsParameterInfo { + const CMD: &str = "sms_parameter_info"; + type Params = (); + + fn print_table(&self) -> EyreResult<()> { + let mut table = create_table(); + + table + .set_header(["SMS Parameter", "Value"]) + .add_row(["Service Center Address", &self.sms_para_sca]) + .add_row(["Memory store", &self.sms_para_mem_store]) + .add_row(["Validity period", &self.sms_para_validity_period]) + .add_row(["Status report", &self.sms_para_status_report]) + .add_row(["Should retry", &self.sendfail_retry]) + .add_row(["Should delete outdated", &self.outdate_delete]) + .add_row(["Default storage location", &self.default_store]); + + println!("{table}"); + + Ok(()) + } +}