Skip to content

dead man switch feature for non-default managed tdma namespaces under a tdma_multi_mac instance. Tested manually in sim

Caileigh Fitzgerald requested to merge dev/tdma_multi_mac_dead_man_switch into devel

New Features / Improvements

  • ~managed_tdma_heartbeat_timeout_sec if set > 0, clients of tdma_manager must publish a std_msgs/Bool to /<platform>/<tdma_manager_name>/<managed_tdma_ns>/heartbeat at minimum managed_tdma_heartbeat_timeout_sec or the tdma_manager will revert to the default tdma namespace
  • by default ~managed_tdma_heartbeat_timeout_sec is set to -1 and tdma namespaces in managed_tdma_namespaces will not timeout by default. This param MUST be set to a value greater than 0 to have an effect (and only on the managed tdma macs. Not the default tdma mac. The default cannot timeout)

Notes

This is manually tested in sim using test_tdma_multi_mac.launch in ros_acomms_tests. I was able to select a managed tdma ns for modem0 and if I was not publishing the heartbeat, after 30 seconds the node would revert back to the default. I started publishing to the heartbeat topic for the managed tdma node I was going to select, then selected it and saw that the managed_tdma_heartbeat_age field in the tdma_multi_mac status never got over a 5 (I was publishing it every 5 sec) so it was not reverting. When I stopped the rostopic pub to the hearbeat topic, I saw the managed_tdma_heartbeat_age field in the tdma_multi_mac status climb to 30, then the tdma_manager printed a warning and reverted to the default tdma scheme.

Edited by Caileigh Fitzgerald

Merge request reports

Loading