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