forked from M-Labs/thermostat
Limit i_set within range of MAX1968 chip
This commit is contained in:
parent
76547be90a
commit
81e62479e5
|
@ -54,7 +54,8 @@ pub enum Handler {
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
ReportError,
|
ReportError,
|
||||||
PostFilterRateError,
|
PostFilterRateError,
|
||||||
FlashError
|
FlashError,
|
||||||
|
InputOutOfRangeError,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type JsonBuffer = Vec<u8, U1024>;
|
pub type JsonBuffer = Vec<u8, U1024>;
|
||||||
|
@ -185,6 +186,10 @@ impl Handler {
|
||||||
match pin {
|
match pin {
|
||||||
PwmPin::ISet => {
|
PwmPin::ISet => {
|
||||||
channels.channel_state(channel).pid_engaged = false;
|
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::<ampere>(value);
|
let current = ElectricCurrent::new::<ampere>(value);
|
||||||
channels.set_i(channel, current);
|
channels.set_i(channel, current);
|
||||||
channels.power_up(channel);
|
channels.power_up(channel);
|
||||||
|
|
Loading…
Reference in New Issue