diff --git a/src/net/cmd_handler.rs b/src/net/cmd_handler.rs index 9ce1014..1a0030f 100644 --- a/src/net/cmd_handler.rs +++ b/src/net/cmd_handler.rs @@ -19,12 +19,13 @@ use crate::thermostat::thermostat::{Thermostat, ThermostatSettingsSummary}; use crate::thermostat::pid_state::PidSettings::*; use crate::device::{dfu, sys_timer}; use log::info; -use crate::{DeviceSettings, State}; +use crate::{DeviceSettings, State, IpSettings}; #[derive(Deserialize, Serialize, Copy, Clone, Default, Debug)] enum DeviceCmd { #[default] Reserved, + SetIPSettings, SetActiveReportMode, GetStatusReport, GetSettingsSummary, @@ -96,6 +97,7 @@ pub struct CmdJsonObj{ data_f32: Option, data_f64: Option, temp_adc_filter: Option, + ip_settings: Option, } #[derive(Deserialize, Serialize, Copy, Clone, Debug, Default, Tree)] pub struct Cmd { @@ -185,6 +187,16 @@ pub fn execute_cmd(buffer: &mut [u8], buffer_size: usize, mut laser: LdDrive, mu info!("############ Device Command Received {:?}", cmd.json.device_cmd); match cmd.json.device_cmd { + Some(DeviceCmd::SetIPSettings) => { + match cmd.json.ip_settings { + Some(val) => { + device_settings.ip_settings = val; + } + None => { + info!("Wrong Data type is received") + } + } + } Some(DeviceCmd::Dfu) => { unsafe { dfu::set_dfu_trigger();