Changed returned types of TCP request API to bool from void, to capture unsuccessful connection to device and use those boolean on upper level APIs to take any action.
Added configurable TCP connection retries using tcp_max_request_retries rosparam on initialization, if the device does not respond with max retries, the node exits cleanly with a ROS msg.
On a successful connection, user has option to enable/disable udp packet monitoring using udp_connection_monitor rosparam, If enabled it will keep monitoring the udp packets that device is broadcasting for also configurable by watchdog time of udp_connection_monitor_watchdog_timeout_ms rosparam, when no udp packet is received for configured amount of time, the driver would go to reinitialize state and follow same sequence as described in point 1. When the connection is re-established and we receive a response to TCP packets the node resumes with normal operation.
Added Connection Status field in GeneralSystemStateMsg.msg to have the device status reflected on the /diagnostics topic.
Changed launch files to use config params loaded as yaml file to make it more readable and easy to maintain.
What is changed
tcp_max_request_retries
rosparam on initialization, if the device does not respond with max retries, the node exits cleanly with a ROS msg.udp_connection_monitor
rosparam, If enabled it will keep monitoring the udp packets that device is broadcasting for also configurable by watchdog time ofudp_connection_monitor_watchdog_timeout_ms
rosparam, when no udp packet is received for configured amount of time, the driver would go to reinitialize state and follow same sequence as described in point 1. When the connection is re-established and we receive a response to TCP packets the node resumes with normal operation.Connection Status
field inGeneralSystemStateMsg.msg
to have the device status reflected on the /diagnostics topic.