Index: dialin/protocols/CAN.py =================================================================== diff -u -ra7d070474341dfa2f6012fc0acb000e14f413979 -r583690fad2c1791648961ce927d191ff7eb421f2 --- dialin/protocols/CAN.py (.../CAN.py) (revision a7d070474341dfa2f6012fc0acb000e14f413979) +++ dialin/protocols/CAN.py (.../CAN.py) (revision 583690fad2c1791648961ce927d191ff7eb421f2) @@ -432,7 +432,7 @@ START_BYTE = DenaliMessage.START_BYTE DIALIN_MSG_RESP_TO = 0.1 # number of seconds to wait for a response to a sent command - def __init__(self, can_interface: str, logger: Logger, log_can=False, passive_mode=False): + def __init__(self, can_interface: str, logger: Logger, log_can=False, passive_mode=False, console_out=False): """ DenaliCanMessenger constructor @@ -442,12 +442,29 @@ """ super().__init__() - self.bus = can.interfaces.socketcan.SocketcanBus(channel=can_interface) self.logger = logger self.log_can = log_can + + # try to setup can bus and exit if the can bus has not ben setup to use. + try: + self.bus = can.interfaces.socketcan.SocketcanBus(channel=can_interface) + if self.bus is not None: + self.serial_listener_thread = threading.Thread(target=self.listener, daemon=True) + else: + self.serial_listener_thread = None + s = "Can connection is not valid" + self.logger.debug(s) + sys.exit(s) + self.listener_buffer = can.BufferedReader() + self.notifier = can.Notifier(self.bus, [self.listener_buffer]) + except Exception as e: + s = str(e) + self.logger.debug(s) + print(s) + sys.exit(19) + self.passive_mode = passive_mode - self.listener_buffer = can.BufferedReader() - self.notifier = can.Notifier(self.bus, [self.listener_buffer]) + self.console_out = console_out self.send_packet_request_id = -1 self.send_event = threading.Event() self.long_message_builders = {} @@ -459,13 +476,6 @@ self.run = False self.sync_response_dictionary = {} - if self.bus is not None: - self.serial_listener_thread = threading.Thread(target=self.listener, daemon=True) - - else: - self.serial_listener_thread = None - self.logger.debug("Can connection is not valid") - def start(self): """ starts listening to the can interface. @@ -563,6 +573,8 @@ DenaliMessage.crc8(self.messages))) if message_valid: + if self.console_out: + print(complete_dialin_message) # Send an ack if required if DenaliMessage.get_sequence_number(complete_dialin_message) < 0: # ACK required. Send back the received message with the sequence sign bit flipped Index: dialin/ui/hd_simulator.py =================================================================== diff -u -r96006d22aa13f0287e2697a7cac7604201633263 -r583690fad2c1791648961ce927d191ff7eb421f2 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 96006d22aa13f0287e2697a7cac7604201633263) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 583690fad2c1791648961ce927d191ff7eb421f2) @@ -727,7 +727,7 @@ self.can_interface.send(message, 0) - def cmd_set_treatment_blood_flow_rate(self, vFlowSetPt, vMeasFlow, vRotSpd, vMotSpd, vMCSpd, vMCCurr, vPWM, vSigStrngth): + def cmd_set_treatment_blood_flow_rate(self, vFlowSetPt, vMeasFlow, vRotSpd, vMotSpd, vMCSpd, vMCCurr, vPWM, vSigStrength): """ The Blood Flow Data message setter/sender method