Actually show test station status

main
rahix 1 year ago
parent 9cae0cbaa3
commit 7fa9524197

@ -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)) => {

@ -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;
}

@ -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),

Loading…
Cancel
Save