peripheral
AnalogIRev2
Bases: _PeripheralBase
AnalogIRev3
Bases: _PeripheralBase
AnalogIRev4
Bases: _PeripheralBase
DeimosDaqRev5
Bases: _PeripheralBase
DeimosDaqRev6
Bases: _PeripheralBase
DeimosDaqRev7
Bases: _PeripheralBase
Software interface for a Deimos DAQ rev7 peripheral.
Modbus addresses are zero-based. Multi-register values put the most significant register first and use network byte order.
Input registers (FC04, read 0 with count 75 for a coherent snapshot):
0..1: u32 magic (0xD7000002)
2..5: u64 metrics.id (snapshot count)
6..9: i64 metrics.sent_time_ns
10..13: u64 metrics.last_input_id
14..17: i64 metrics.last_input_received_time_ns
18..21: i64 metrics.cycle_time_margin_ns
22..25: i64 sample_time_ns
26..27: f32 module_bus_current_a
28..29: f32 module_bus_voltage_v
30..31: f32 board_temperature_k
32..39: f32[4] current_4_20_a
40..45: f32[3] rtd_resistance_ohm
46..49: f32[2] thermocouple_temperature_k
50..61: f32[6] voltage_v
62..65: i64 encoder
66..69: i64 pulse_counter
70..73: f32[2] frequency_meas
74: u16 gpio (input bits 0..1)
Holding registers (FC03 reads; FC16 and FC23 write complete fields):
0..1: R/W f32 cycle_rate_hz (5..500 Hz)
2: R/W u16 loss_of_contact_limit (1..65535 cycles)
3..4: R u32 cycle_period_ns
5: R u16 loss_of_contact_counter
6..13: R/W f32[4] pwm_duty_frac (0..1)
14..21: R/W u32[4] pwm_frequency_hz (nonzero)
22..25: R/W f32[2] dac_v (0..2.5 V)
26: R/W u16 gpio (output bits 0..3)
27..30: R/W i64 period_delta_ns (persistent)
31..34: R/W i64 phase_delta_ns (one cycle)
256..330: R coherent snapshot mirror of input registers 0..74
FC23 should read address 256 with count 75 while writing one complete writable block. Partial in-range reads are valid, but a full snapshot read is required for synchronized measurements. This returns only the snapshot, not configuration registers.
For configuration readback, a separate FC23 may write one complete block and read holding registers 0..34. That read reflects its preceding write but does not return snapshot data.
HootlDriver
A way to operate a hootl driver from outside the control program.
run_with(controller)
Start the driver attached to this controller.
HootlPeripheral
Bases: _PeripheralBase
Peripheral wrapper that emits mock outputs using driver-owned state.
HootlRunHandle
HootlTransport
thread_channel()
staticmethod
A thread channel keyed by the wrapped peripheral's identity.
udp()
staticmethod
UDP transport bound to PERIPHERAL_RX_PORT.
unix_socket(name)
staticmethod
A unix socket with this name.