From fe46a2ab4d649f310f0ed334339c2aec6a7e7b17 Mon Sep 17 00:00:00 2001 From: ryleu <69326171+ryleu@users.noreply.github.com> Date: Mon, 23 Mar 2026 13:25:13 -0500 Subject: [PATCH] fix wrong order for initialization --- src/anchor_pkg/anchor_pkg/anchor_node.py | 66 ++++++++++++------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/anchor_pkg/anchor_pkg/anchor_node.py b/src/anchor_pkg/anchor_pkg/anchor_node.py index 741b1b4..f3dbd16 100644 --- a/src/anchor_pkg/anchor_pkg/anchor_node.py +++ b/src/anchor_pkg/anchor_pkg/anchor_node.py @@ -73,6 +73,39 @@ class Anchor(Node): ), ) + # Determine which connector to use. Options are Mock, Serial, and CAN + connector_select = ( + self.get_parameter("connector").get_parameter_value().string_value + ) + can_override = ( + self.get_parameter("can_override").get_parameter_value().string_value + ) + match connector_select: + case "serial": + logger.info("using serial connector") + self.connector = SerialConnector(logger, self.get_clock()) + case "can": + logger.info("using CAN connector") + self.connector = CANConnector(logger, self.get_clock(), can_override) + case "mock": + logger.info("using mock connector") + self.connector = MockConnector(logger, self.get_clock()) + case "auto": + logger.info("automatically determining connector") + try: + logger.info("trying CAN connector") + self.connector = CANConnector( + logger, self.get_clock(), can_override + ) + except (NoValidDeviceException, NoWorkingDeviceException, TypeError): + logger.info("CAN connector failed, trying serial connector") + self.connector = SerialConnector(logger, self.get_clock()) + case _: + logger.fatal( + f"invalid value for connector parameter: {connector_select}" + ) + exit(1) + # ROS2 Topic Setup # Publishers @@ -123,39 +156,6 @@ class Anchor(Node): 20, ) - # Determine which connector to use. Options are Mock, Serial, and CAN - connector_select = ( - self.get_parameter("connector").get_parameter_value().string_value - ) - can_override = ( - self.get_parameter("can_override").get_parameter_value().string_value - ) - match connector_select: - case "serial": - logger.info("using serial connector") - self.connector = SerialConnector(logger, self.get_clock()) - case "can": - logger.info("using CAN connector") - self.connector = CANConnector(logger, self.get_clock(), can_override) - case "mock": - logger.info("using mock connector") - self.connector = MockConnector(logger, self.get_clock()) - case "auto": - logger.info("automatically determining connector") - try: - logger.info("trying CAN connector") - self.connector = CANConnector( - logger, self.get_clock(), can_override - ) - except (NoValidDeviceException, NoWorkingDeviceException, TypeError): - logger.info("CAN connector failed, trying serial connector") - self.connector = SerialConnector(logger, self.get_clock()) - case _: - logger.fatal( - f"invalid value for connector parameter: {connector_select}" - ) - exit(1) - # Close devices on exit atexit.register(self.cleanup)