hwl: Adds helpers for asynchronous stateful communication
Fixes several bugs in the hwl module, adds helpers for stateful communication via asynchronous bus variables.
New Features
- [hwl]:
- variables: Added AutoState to track the value of a variable via asynchronous communication / stateful
- variables: Added AutoTransfer implementation for automatic retries / transfers on asynchronous variables
- testing: Added FakeBusDriver to fake a BusDriver in unit tests
- [core]: CycleTimer: Adds setCycles() method to reset cycles after construction
Bug Fixes
- [hwl]:
- components/esd: Fixed return value of delegateTransfer() of the esd EtherCAT CAN gateway
- components/esd: Fixed errors related to wrk counter checking on overflow / transaction number overflow
- components/esd: Fixed behavior of ESDCANTxQueue: Don't expect device to ack TX counter after one cycle
- Fixes scope of processDevice() method / testing framework
- Use std::mutex for QNX versions < 7.1: shared_timed_mutex is very slow on write operations
Breaking Changes
- [hwl]: New testing API for BusDeviceTest/BusGatewayTest
Edited by Ghost User