backend field. This determines which driver is used at runtime. Switching backends requires only a TOML change — test code is unaffected.
CAN backends
virtual
In-process simulation. No hardware or OS dependencies. Frames are passed through an in-memory queue.
socketcan
Linux SocketCAN. Uses the python-can SocketCAN interface. Requires the CAN interface to be configured in the OS before connecting:
peak
PEAK PCAN adapters (PCAN-USB, PCAN-PCI). Uses the python-can PCAN interface.
Custom backend (module path)
Any Python class implementingAbstractCANBackend can be loaded by specifying its fully-qualified module path:
importlib. The class must implement:
DoIP backends
virtual
In-process DoIP simulation. Responds to entity discovery and routing activation without network hardware.
python-doip
Real DoIP transport using the python-doip library. Requires an actual DoIP gateway on the network.
SOME/IP backends
python-someip
SOME/IP Events and Fields using the python-someip library. Phase 0 scope: Events and Fields only (Methods are Phase 1).
virtual
In-process SOME/IP simulation. Used in the virtual rig.
Power backends
virtual_power
In-process power simulation. Tracks on/off state in memory. No hardware dependency.
gpio_relay
Controls power via a GPIO output pin. Typically used with a relay board connected to a GPIO header.
bench_psu
Controls a bench power supply over serial. Supported instruments include Keysight E3631A and compatible.
Custom power backend
AbstractPowerBackend:
GPIO backends
virtual_gpio
In-process GPIO simulation. Default for all GPIO pins in virtual mode.
rpi_gpio
Raspberry Pi GPIO via the RPi.GPIO library. For GPIO control boards running Raspberry Pi OS.
Custom GPIO backend
AbstractGPIOBackend:
Backend selection summary
| Interface | Development / CI | Linux bench | Windows bench | Custom HW |
|---|---|---|---|---|
| CAN | virtual | socketcan | peak | module path |
| DoIP | virtual | python-doip | python-doip | module path |
| SOME/IP | python-someip | python-someip | python-someip | — |
| Power | virtual_power | gpio_relay or bench_psu | bench_psu | module path |
| GPIO | virtual_gpio | rpi_gpio | — | module path |
See also
- Rig Configuration Overview
crucihil scaffold --adapter— generate custom backend stubs