diff --git a/shepherd/plugins/scout/tdw.py b/shepherd/plugins/scout/tdw.py index 176a0b6..f4c8868 100644 --- a/shepherd/plugins/scout/tdw.py +++ b/shepherd/plugins/scout/tdw.py @@ -21,8 +21,11 @@ import threading import serial import re import time +import logging from enum import Enum +log = logging.getLogger(__name__) + DEFAULT = object() MAX_MSG_LEN = 128 @@ -108,7 +111,7 @@ class TXMessage(Message): # Allow single value or string as arg, convert to list if isinstance(arguments, str) or (not hasattr(arguments, "__iter__")): - arguments = list(arguments) + arguments = [arguments] # Stringify args and put in immutable tuples immutable_args = tuple([str(arg) for arg in arguments]) @@ -117,7 +120,7 @@ class TXMessage(Message): if multipart_args is not None: # Allow single value or string as arg, convert to list if isinstance(multipart_args, str) or (not hasattr(multipart_args, "__iter__")): - multipart_args = list(multipart_args) + multipart_args = [multipart_args] immutable_multipart_args = [] for arglist in multipart_args: @@ -288,7 +291,7 @@ class MessageHandler(): send_str = F"{self._tx_message.msg_type}{self._tx_message.msg_name}{argstr}\n" self.port.write(send_str.encode('utf-8')) self._tx_sent_time = time.time() - #print(F"TX: {send_str}") + log.debug(F"Msg TX: {send_str}") # Only keep the current message around if we need to track a response if not self._tx_message.needs_response: self._tx_message = None @@ -339,7 +342,7 @@ class MessageHandler(): Only called from the serial_comm thread """ - #print(F"RX: {msg_str}") + log.debug(F"Msg RX: {msg_str}") self._last_rx_time = time.time() msg_name, _, msg_args_text = msg_str.strip(' \t').partition(':') @@ -458,9 +461,11 @@ class MessageHandler(): # Serial comms is not synchronous, so need to be available to recieve characters # at any point try: + log.info(F"Connecting to serial port {self.port.port}, with baud {self.port.baudrate}...") self.port.open() while True: self._handle_serial_port() except serial.SerialException: + log.error("Could not open serial port") time.sleep(1) # If there's a serialexception, try to reopen the port