From 7fa9524197c5052fcc9d1e77f38077197d27ec8d Mon Sep 17 00:00:00 2001 From: Rahix Date: Fri, 15 Nov 2024 01:28:23 +0100 Subject: [PATCH] Actually show test station status --- src/main.rs | 7 +++++++ src/tester_io.rs | 9 ++++----- src/valve_terminal.rs | 6 +++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index b065704239c1..f03f9ca3a8ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,6 +53,13 @@ fn main() -> ! { // Ventil Zustände von den Eingängen auf die Ventilausgänge übertragen. valve_terminal.update_valve_states(tester_io.valve_states()); + if valve_terminal.is_running(&mut dp_master) { + tester_io.set_state(tester_io::TesterStatus::ValveTerminalConnected); + } else { + tester_io.set_state(tester_io::TesterStatus::Ready); + } + + let scanner_event = dp_scanner.take_last_event(); match scanner_event { Some(dp::scan::DpScanEvent::PeripheralFound(desc)) => { diff --git a/src/tester_io.rs b/src/tester_io.rs index 8cd62150908d..b8a36b1650c8 100644 --- a/src/tester_io.rs +++ b/src/tester_io.rs @@ -9,7 +9,6 @@ //! ## Ausgänge //! - Leuchtmelder "Test-Station bereit" //! - Leuchtmelder "Ventilinsel erkannt" -//! - Leuchtmelder "Fehler" use profirust::dp; @@ -20,8 +19,6 @@ pub enum TesterStatus { Ready, /// Ventilinsel erkannt und verbunden ValveTerminalConnected, - /// Fehler - Error, } pub struct TesterIo { @@ -85,6 +82,10 @@ impl TesterIo { &self.valve_states } + pub fn set_state(&mut self, state: TesterStatus) { + self.tester_status = state; + } + pub fn update(&mut self, dp_master: &mut dp::DpMaster, events: &dp::DpEvents) { let peripheral = dp_master.get_mut(self.peripheral); if peripheral.is_running() && events.cycle_completed { @@ -97,11 +98,9 @@ impl TesterIo { // Ausgänge: // - Bit 0: Leuchtmelder "Test-Station bereit" // - Bit 1: Leuchtmelder "Ventilinsel erkannt" - // - Bit 2: Leuchtmelder "Fehler" let outputs = match self.tester_status { TesterStatus::Ready => 0x01, TesterStatus::ValveTerminalConnected => 0x02, - TesterStatus::Error => 0x04, }; peripheral.pi_q_mut()[0] = outputs; } diff --git a/src/valve_terminal.rs b/src/valve_terminal.rs index 9213f88454aa..049fd4ee09c6 100644 --- a/src/valve_terminal.rs +++ b/src/valve_terminal.rs @@ -57,9 +57,9 @@ impl ValveTerminal { fail_safe: false, ..Default::default() }; - let mut buffer_inputs = vec![0u8; 0].leak(); - let mut buffer_outputs = vec![0u8; 2].leak(); - let mut buffer_diagnostics = vec![0u8; 16].leak(); + let buffer_inputs = vec![0u8; 0].leak(); + let buffer_outputs = vec![0u8; 2].leak(); + let buffer_diagnostics = vec![0u8; 16].leak(); let handle = dp_master.add( dp::Peripheral::new(default_address, options, buffer_inputs, buffer_outputs) .with_diag_buffer(buffer_diagnostics),