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_sec
if set > 0, clients oftdma_manager
must publish astd_msgs/Bool
to/<platform>/<tdma_manager_name>/<managed_tdma_ns>/heartbeat
at minimummanaged_tdma_heartbeat_timeout_sec
or thetdma_manager
will revert to the default tdma namespace - by default
~managed_tdma_heartbeat_timeout_sec
is set to -1 and tdma namespaces inmanaged_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.