From 81e62479e5eb34549a1b364121dad47f09adf2de Mon Sep 17 00:00:00 2001 From: atse Date: Wed, 3 Apr 2024 11:31:34 +0800 Subject: [PATCH] Limit i_set within range of MAX1968 chip --- src/command_handler.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/command_handler.rs b/src/command_handler.rs index efea1b8..e2a5824 100644 --- a/src/command_handler.rs +++ b/src/command_handler.rs @@ -54,7 +54,8 @@ pub enum Handler { pub enum Error { ReportError, PostFilterRateError, - FlashError + FlashError, + InputOutOfRangeError, } pub type JsonBuffer = Vec; @@ -185,6 +186,10 @@ impl Handler { match pin { PwmPin::ISet => { channels.channel_state(channel).pid_engaged = false; + if -3.0 < value || value > 3.0 { + send_line(socket, b"{\"error\": \"i_set can only be in range [-3A, 3A]\"}"); + return Err(Error::InputOutOfRangeError); + } let current = ElectricCurrent::new::(value); channels.set_i(channel, current); channels.power_up(channel);