dead man switch feature for non-default managed tdma namespaces under a tdma_multi_mac instance. Tested manually in sim
New Features / Improvements
-
~managed_tdma_heartbeat_timeout_secif set > 0, clients oftdma_managermust publish astd_msgs/Boolto/<platform>/<tdma_manager_name>/<managed_tdma_ns>/heartbeatat minimummanaged_tdma_heartbeat_timeout_secor thetdma_managerwill revert to the default tdma namespace - by default
~managed_tdma_heartbeat_timeout_secis set to -1 and tdma namespaces inmanaged_tdma_namespaceswill 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