Index: dialin/protocols/CAN.py =================================================================== diff -u -r0d1e40ce50fa9b702ec281b6fc9c85e52a3e1490 -re6345b2585260c85432f888c296aaf899dfdd47e --- dialin/protocols/CAN.py (.../CAN.py) (revision 0d1e40ce50fa9b702ec281b6fc9c85e52a3e1490) +++ dialin/protocols/CAN.py (.../CAN.py) (revision e6345b2585260c85432f888c296aaf899dfdd47e) @@ -386,7 +386,7 @@ class LongDenaliMessageBuilder: - def __init__(self, frame: can.Message): + def __init__(self, message: can.Message): """ LongDialityMessageBuilder is a utility object that helps construct a Denali message that is longer than 8 bytes. It is only called when we don't yet have a long message @@ -400,22 +400,12 @@ message = obj.push(msg3), return the packet which is the concatenation of msg1, msg2 and msg3 - @param frame: a can frame + @param message: a CAN message """ - self.frames = [frame] - self.message_data = [b for b in frame.data] + self.message_data = [b for b in message.data] self.number_of_can_packets_needed = DenaliMessage.get_total_packets(self.message_data) self.number_of_can_packets_up_to_now = 1 - def frames(self) -> List[can.Message]: - """ - Gets the list of frames for the long Denali message - - @return: A list of CAN messages - """ - - return self.frames - def push(self, message: can.Message, first_packet=False): """ push appends the CAN message to the current list of messages @@ -428,22 +418,18 @@ """ message_data = [b for b in message.data] if first_packet: - self.frames = [message] self.message_data = message_data self.number_of_can_packets_needed = DenaliMessage.get_total_packets(message_data) self.number_of_can_packets_up_to_now = 1 else: - self.frames.append(message) self.message_data += message_data self.number_of_can_packets_up_to_now += 1 if self.number_of_can_packets_up_to_now == self.number_of_can_packets_needed: return_message = self.message_data - return_frames = self.frames self.message_data = None - self.frames = [] - return return_frames, return_message + return return_message else: return None @@ -504,32 +490,6 @@ self.run = False self.sync_response_dictionary = {} self.pending_requests = {} - - def set_callback_complete_messages(self, callback: Callable) -> bool: - """ - Sets the callback for complete Denali messages - - :param callback: a callable function that accepts a DenaliMessage as a parameter - :return: True if set is successful, False otherwise - """ - if callable(self.callback_listener_complete_messages): - return False - - self.callback_listener_complete_messages = callback - return True - - def set_callback_invalid_messages(self, callback: Callable) -> bool: - """ - Sets the callback function for invalid Denali messages - - :param callback: a callable function that accepts a DenaliMessage as a parameter - :return: True if set is successful, False otherwise - """ - if callable(self.callback_listener_invalid_messages): - return False - - self.callback_listener_invalid_messages = callback - return True def start(self): """ @@ -615,7 +575,7 @@ elif can_data[0] == DenaliMessage.START_BYTE and \ message_length <= DenaliMessage.PAYLOAD_LENGTH_FIRST_PACKET: # This is a short packet # This is the first time that we are building a message - self.messages = ([message], can_data) # deliver the packet + self.messages = can_data # deliver the packet elif can_data[0] == self.START_BYTE and \ message_length > DenaliMessage.PAYLOAD_LENGTH_FIRST_PACKET: # Long packet start @@ -635,7 +595,7 @@ if self.messages is not None: message_valid = True # assume true for now, set to false if CRC check fails below complete_dialin_message = DenaliMessage.build_basic_message(channel_id=channel_id, - message=self.messages[1]) + message=self.messages) dialin_msg_id = DenaliMessage.get_message_id(complete_dialin_message) dialin_ch_id = DenaliMessage.get_channel_id(complete_dialin_message) @@ -651,8 +611,8 @@ dialin_msg_id = None self.logger.critical( "Incorrect CRC, received message: {}, crc: {}, calculated crc: {}\n".format( - self.messages[1], DenaliMessage.get_crc(complete_dialin_message), - DenaliMessage.crc8(self.messages[1]))) + self.messages, DenaliMessage.get_crc(complete_dialin_message), + DenaliMessage.crc8(self.messages))) if message_valid: if self.console_out: @@ -678,13 +638,8 @@ self.sync_response_dictionary[dialin_ch_id][dialin_msg_id], complete_dialin_message ) - if callable(self.callback_listener_complete_messages): - self.thread_pool_executor.submit( - self.callback_listener_complete_messages(self.messages[0])) else: - if callable(self.callback_listener_invalid_messages): - self.thread_pool_executor.submit( - self.callback_listener_invalid_messages(self.messages[0])) + self.logger.critical("Invalid message: {}\n".format(self.messages)) # Done with this message, let's get the next one self.messages = None Index: requirements.txt =================================================================== diff -u -r74440c7a88f7a607b7bdeb29856c54e2a74c1c87 -re6345b2585260c85432f888c296aaf899dfdd47e --- requirements.txt (.../requirements.txt) (revision 74440c7a88f7a607b7bdeb29856c54e2a74c1c87) +++ requirements.txt (.../requirements.txt) (revision e6345b2585260c85432f888c296aaf899dfdd47e) @@ -42,5 +42,6 @@ sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.4 urllib3==1.25.9 +wheel==0.36.2 wrapt==1.12.0 zipp==3.3.1