Skip to content

hwl: Adds helpers for asynchronous stateful communication

Ghost User requested to merge hwl-async-helpers into dev-v2

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

Merge request reports