Index: DialityCoreCanProtocol.py =================================================================== diff -u -r4a04642902b240b68710677ed9c745d78f338ef6 -raf4e78cc8f334d92a29ce7aa2b89c15a2cca8064 --- DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision 4a04642902b240b68710677ed9c745d78f338ef6) +++ DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision af4e78cc8f334d92a29ce7aa2b89c15a2cca8064) @@ -45,16 +45,23 @@ self.__number_of_can_message_needed = math.ceil((can_message[3] + 4) / 8) self.__number_of_can_message_up_to_now = 1 - def push(self, can_message): + def push(self, can_message, first_packet=False): """ push appends the can_message to the current packet. :param can_message: 8-byte message + :param first_packet: True if it is the first packet received + :return: None if the packet is not completed, otherwise returns the complete packet """ - self.__message += can_message - self.__number_of_can_message_up_to_now += 1 + if first_packet: + self.__message = can_message + self.__number_of_can_message_needed = math.ceil((can_message[3] + 4) / 8) + self.__number_of_can_message_up_to_now = 1 + else: + self.__message += can_message + self.__number_of_can_message_up_to_now += 1 if self.__number_of_can_message_up_to_now == self.__number_of_can_message_needed: return_message = self.__message @@ -150,13 +157,17 @@ if channel_id not in self.__longPacketsBuilders.keys(): # if we don't have a builder. Create it! - self.__longPacketsBuilders[channel_id] = __LongDialityPacketBuilder(can_data) + self.__longPacketsBuilders[channel_id] = LongDialityPacketBuilder(can_data) self.__dialityPacket = None - else: # this is the continuation of a long packet. A builder must have been created + else: #if we do have a builder. This is the first time + self.__dialityPacket = self.__longPacketsBuilders[channel_id].push(can_data, first_packet=True) + + else: # this is the continuation of a long message + if channel_id in self.__longPacketsBuilders.keys(): - self.__dialityPacket = self.__longPacketBuilders[channel_id].push(can_data) + self.__dialityPacket = self.__longPacketsBuilders[channel_id].push(can_data) # At this point we have a complete (long or short) Diality Packet Index: Miscellaneous/DG_Firmware_Simulator.py =================================================================== diff -u -r605d20932add678b8e3f0f97b4c7bad21847801f -raf4e78cc8f334d92a29ce7aa2b89c15a2cca8064 --- Miscellaneous/DG_Firmware_Simulator.py (.../DG_Firmware_Simulator.py) (revision 605d20932add678b8e3f0f97b4c7bad21847801f) +++ Miscellaneous/DG_Firmware_Simulator.py (.../DG_Firmware_Simulator.py) (revision af4e78cc8f334d92a29ce7aa2b89c15a2cca8064) @@ -16,6 +16,11 @@ sync_req_id = 0x05 sync_packet = DialityPacket.buildPacket(sync_req_id, [0x06, 0x02]) +# Building Sync message +sync_req_id = 0x05 +sync_packet_2 = DialityPacket.buildPacket(sync_req_id, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) + + channel_id = 0x01 print("") @@ -38,7 +43,7 @@ # This is the main loop while True: - diality_messenger.send(channel_id, sync_packet) + diality_messenger.send(channel_id, sync_packet_2) print(".", end='', flush=True) sleep(1) Index: document/Doxyfile =================================================================== diff -u -r4a04642902b240b68710677ed9c745d78f338ef6 -raf4e78cc8f334d92a29ce7aa2b89c15a2cca8064 --- document/Doxyfile (.../Doxyfile) (revision 4a04642902b240b68710677ed9c745d78f338ef6) +++ document/Doxyfile (.../Doxyfile) (revision af4e78cc8f334d92a29ce7aa2b89c15a2cca8064) @@ -2499,5 +2499,5 @@ INPUT_FILTER = "python /usr/local/bin/doxypy.py" OPTIMIZE_OUTPUT_JAVA = YES EXTRACT_ALL = YES -FILE_PATTERNS = "*.py" +FILE_PATTERNS = *.py INPUT = "$(PROJECT_DIRECTORY)"