From 4c04667fdbbc8ed75088bff26c3eef8b18bf087b Mon Sep 17 00:00:00 2001 From: Eric Gallimore <egallimore@whoi.edu> Date: Tue, 20 Feb 2024 14:33:20 -0500 Subject: [PATCH] Normalize and fix shutting down nodes. Removes calls to node.close() for nodes that don't have a close() method. Log "node name shutdown" messages on node termination if shutdown occurs without RosInterruptException being raised. For acomms_driver_node.py, check that the node is still in-scope in exceptions handler. --- ros_acomms/src/acomms_driver_node.py | 4 +++- ros_acomms/src/modem_sensor_data_node.py | 3 ++- ros_acomms/src/packet_dispatch_node.py | 1 - ros_acomms/src/tdma_advanced_node.py | 5 +++-- ros_acomms/src/tdma_node.py | 2 +- ros_acomms/src/tdma_scripted_node.py | 5 +++-- ros_acomms/src/version_node.py | 2 +- ros_acomms_modeling/src/clock_generator.py | 3 ++- ros_acomms_modeling/src/modem_location_sim_node.py | 1 + ros_acomms_modeling/src/modem_sim_node.py | 5 ++--- ros_acomms_modeling/src/sim_packet_performance_node.py | 3 +-- ros_acomms_modeling/src/sim_transmission_loss_node.py | 3 +-- ros_acomms_modeling/src/simple_noise_model_node.py | 5 ++--- 13 files changed, 22 insertions(+), 20 deletions(-) diff --git a/ros_acomms/src/acomms_driver_node.py b/ros_acomms/src/acomms_driver_node.py index f8314fec..b297dbb2 100755 --- a/ros_acomms/src/acomms_driver_node.py +++ b/ros_acomms/src/acomms_driver_node.py @@ -805,6 +805,7 @@ class AcommsDriverNode(object): if __name__ == "__main__": + node = None try: node = AcommsDriverNode() @@ -819,5 +820,6 @@ if __name__ == "__main__": rospy.loginfo("Acomms node shutdown") except rospy.ROSInterruptException: - node.close() + if node is not None: + node.close() rospy.loginfo("Acomms node shutdown (interrupt)") diff --git a/ros_acomms/src/modem_sensor_data_node.py b/ros_acomms/src/modem_sensor_data_node.py index 11df4884..6e271a45 100755 --- a/ros_acomms/src/modem_sensor_data_node.py +++ b/ros_acomms/src/modem_sensor_data_node.py @@ -58,5 +58,6 @@ class ModemSensorDataNode(object): if __name__ == '__main__': try: node = ModemSensorDataNode() # This spins. + rospy.loginfo("ModemSensorDataNode shutdown") except rospy.ROSInterruptException: - rospy.loginfo("Acomms node shutdown (interrupt)") + rospy.loginfo("ModemSensorDataNode shutdown (interrupt)") diff --git a/ros_acomms/src/packet_dispatch_node.py b/ros_acomms/src/packet_dispatch_node.py index 1e49bc04..6f2523b8 100755 --- a/ros_acomms/src/packet_dispatch_node.py +++ b/ros_acomms/src/packet_dispatch_node.py @@ -169,5 +169,4 @@ if __name__ == '__main__': node = PacketDispatchNode() rospy.loginfo("Message Dispatch shutdown") except rospy.ROSInterruptException: - node.close() rospy.loginfo("Message Dispatch shutdown (interrupt)") \ No newline at end of file diff --git a/ros_acomms/src/tdma_advanced_node.py b/ros_acomms/src/tdma_advanced_node.py index 378ee5db..fde438ba 100755 --- a/ros_acomms/src/tdma_advanced_node.py +++ b/ros_acomms/src/tdma_advanced_node.py @@ -324,11 +324,12 @@ class TdmaAdvancedMacNode(TdmaMacNode): return sent_modem_pings, sent_transponder_ping, nav_ping_duration_sec + if __name__ == "__main__": try: tdma_state_node = TdmaAdvancedMacNode() - + rospy.loginfo("tdma_advanced_node shutdown") except rospy.ROSInterruptException: - rospy.loginfo("tdma_node shutdown (interrupt)") + rospy.loginfo("tdma_advanced_node shutdown (interrupt)") diff --git a/ros_acomms/src/tdma_node.py b/ros_acomms/src/tdma_node.py index 442f1226..2053a3a0 100755 --- a/ros_acomms/src/tdma_node.py +++ b/ros_acomms/src/tdma_node.py @@ -308,7 +308,7 @@ if __name__ == "__main__": import traceback try: tdma_state_node = TdmaMacNode() - + rospy.loginfo("tdma_node shutdown") except rospy.ROSInterruptException: rospy.loginfo("tdma_node shutdown (interrupt)") diff --git a/ros_acomms/src/tdma_scripted_node.py b/ros_acomms/src/tdma_scripted_node.py index 651e3717..a90c6feb 100755 --- a/ros_acomms/src/tdma_scripted_node.py +++ b/ros_acomms/src/tdma_scripted_node.py @@ -179,11 +179,12 @@ class TdmaScriptedMacNode(TdmaAdvancedMacNode): rate.sleep() continue + if __name__ == "__main__": try: tdma_state_node = TdmaScriptedMacNode() - + rospy.loginfo("tdma_scripted_node shutdown (interrupt)") except rospy.ROSInterruptException: - rospy.loginfo("tdma_node shutdown (interrupt)") + rospy.loginfo("tdma_scripted_node shutdown (interrupt)") diff --git a/ros_acomms/src/version_node.py b/ros_acomms/src/version_node.py index 483dfdbe..e9d92e22 100755 --- a/ros_acomms/src/version_node.py +++ b/ros_acomms/src/version_node.py @@ -47,6 +47,6 @@ if __name__ == "__main__": display_version_node.getAcomms() display_version_node.getLtCodecs() display_version_node.getPyAcomms() - + rospy.loginfo("version_node shutdown") except rospy.ROSInterruptException: rospy.loginfo("version_node shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/clock_generator.py b/ros_acomms_modeling/src/clock_generator.py index d7bae9d9..8cf554ab 100755 --- a/ros_acomms_modeling/src/clock_generator.py +++ b/ros_acomms_modeling/src/clock_generator.py @@ -34,5 +34,6 @@ class ClockGenerator: if __name__ == '__main__': try: ClockGenerator() + rospy.loginfo("clock_generator shutdown") except rospy.ROSInterruptException: - pass + rospy.loginfo("clock_generator shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/modem_location_sim_node.py b/ros_acomms_modeling/src/modem_location_sim_node.py index ee3eac2a..0990e409 100755 --- a/ros_acomms_modeling/src/modem_location_sim_node.py +++ b/ros_acomms_modeling/src/modem_location_sim_node.py @@ -31,5 +31,6 @@ class ModemLocationSimNode: if __name__ == '__main__': try: node = ModemLocationSimNode() + rospy.loginfo("ModemLocationSimNode shutdown") except rospy.ROSInterruptException: rospy.loginfo("ModemLocationSimNode shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/modem_sim_node.py b/ros_acomms_modeling/src/modem_sim_node.py index 08fed9b9..f9594fc0 100755 --- a/ros_acomms_modeling/src/modem_sim_node.py +++ b/ros_acomms_modeling/src/modem_sim_node.py @@ -864,7 +864,6 @@ class ModemSimNode(object): if __name__ == '__main__': try: node = ModemSimNode() - rospy.loginfo("MODEM %d: Sim Node started", node.src) - + rospy.loginfo("Modem Sim Node shutdown") except rospy.ROSInterruptException: - rospy.loginfo("MODEM: Sim Node shutdown (interrupt)") + rospy.loginfo("Modem Sim Node shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/sim_packet_performance_node.py b/ros_acomms_modeling/src/sim_packet_performance_node.py index c4e0ea50..60ea28a1 100755 --- a/ros_acomms_modeling/src/sim_packet_performance_node.py +++ b/ros_acomms_modeling/src/sim_packet_performance_node.py @@ -114,7 +114,6 @@ class SimPacketPerformanceNode(object): if __name__ == '__main__': try: node = SimPacketPerformanceNode() - + rospy.loginfo("sim_packet_performance_node shutdown") except rospy.ROSInterruptException: - node.close() rospy.loginfo("sim_packet_performance_node shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/sim_transmission_loss_node.py b/ros_acomms_modeling/src/sim_transmission_loss_node.py index cd96a8d3..4f811851 100755 --- a/ros_acomms_modeling/src/sim_transmission_loss_node.py +++ b/ros_acomms_modeling/src/sim_transmission_loss_node.py @@ -261,7 +261,6 @@ class SimTransmissionLossNode(object): if __name__ == '__main__': try: node = SimTransmissionLossNode() - + rospy.loginfo("sim_transmission_loss_node shutdown") except rospy.ROSInterruptException: - node.close() rospy.loginfo("sim_transmission_loss_node shutdown (interrupt)") diff --git a/ros_acomms_modeling/src/simple_noise_model_node.py b/ros_acomms_modeling/src/simple_noise_model_node.py index 0fbb3c3d..21d21090 100755 --- a/ros_acomms_modeling/src/simple_noise_model_node.py +++ b/ros_acomms_modeling/src/simple_noise_model_node.py @@ -30,7 +30,6 @@ class SimpleNoiseModelNode(object): if __name__ == '__main__': try: node = SimpleNoiseModelNode() - + rospy.loginfo("simple_noise_model shutdown") except rospy.ROSInterruptException: - node.close() - rospy.loginfo("sim_packet_performance_node shutdown (interrupt)") + rospy.loginfo("simple_noise_model shutdown (interrupt)") -- GitLab