From 6f0acc73b8d720003f90575810854df8c98e6877 Mon Sep 17 00:00:00 2001 From: atse Date: Thu, 10 Aug 2023 16:41:08 +0800 Subject: [PATCH] Update LED L3 for PID status on every cycle Check if PID is engaged on any channel every cycle, and match the status with LED L3. --- src/command_handler.rs | 5 ----- src/main.rs | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/command_handler.rs b/src/command_handler.rs index a0cca45..5726c93 100644 --- a/src/command_handler.rs +++ b/src/command_handler.rs @@ -178,7 +178,6 @@ impl Handler { fn engage_pid (socket: &mut TcpSocket, channels: &mut Channels, leds: &mut Leds, channel: usize) -> Result { channels.channel_state(channel).pid_engaged = true; - leds.g3.on(); send_line(socket, b"{}"); Ok(Handler::Handled) } @@ -187,10 +186,6 @@ impl Handler { match pin { PwmPin::ISet => { channels.channel_state(channel).pid_engaged = false; - // Only turn off LED when PID is disengaged on all channels - if !channels.pid_engaged() { - leds.g3.off(); - } let current = ElectricCurrent::new::(value); channels.set_i(channel, current); channels.power_up(channel); diff --git a/src/main.rs b/src/main.rs index 639f356..d1c788b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -188,6 +188,12 @@ fn main() -> ! { fan_ctrl.cycle(channels.current_abs_max_tec_i() as f32); + if channels.pid_engaged() { + leds.g3.on(); + } else { + leds.g3.off(); + } + let instant = Instant::from_millis(i64::from(timer::now())); cortex_m::interrupt::free(net::clear_pending); server.poll(instant)