Actually show test station status
This commit is contained in:
parent
9cae0cbaa3
commit
7fa9524197
3 changed files with 14 additions and 8 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue