def packets(self): message_type = self.body[0:2] body_remaining = self.body[2:] + self.computed_crc_bytes() packets = [] while len(body_remaining) > 0: packet = Packet() packet.pod_address_1 = self.pod_id packet.sequence = self.start_seq + len(packets) * 2 if len(packets) == 0: packet.packet_type = Packet.PACKET_TYPE_PDM packet.pod_address_2 = self.pod_id packet.byte9 = self.byte9 packet.message_type = message_type segment_len = min(Packet.MAX_BODY_SEGMENT_LEN,len(body_remaining)) packet.body = body_remaining[:segment_len] packet.body_len = len(self.body) body_remaining = body_remaining[segment_len:] else: packet.packet_type = Packet.PACKET_TYPE_CON segment_len = min(Packet.MAX_CON_BODY_SEGMENT_LEN,len(body_remaining)) packet.body = body_remaining[:segment_len] body_remaining = body_remaining[segment_len:] packets.append(packet) return packets
def packets(self): message_type = self.body[0:2] body_remaining = self.body[2:] + self.computed_crc_bytes() packets = [] while len(body_remaining) > 0: packet = Packet() packet.pod_address_1 = self.pod_id packet.sequence = self.start_seq + len(packets) * 2 if len(packets) == 0: packet.packet_type = Packet.PACKET_TYPE_PDM packet.pod_address_2 = self.pod_id packet.byte9 = self.byte9 packet.message_type = message_type segment_len = min(Packet.MAX_BODY_SEGMENT_LEN, len(body_remaining)) packet.body = body_remaining[:segment_len] packet.body_len = len(self.body) body_remaining = body_remaining[segment_len:] else: packet.packet_type = Packet.PACKET_TYPE_CON segment_len = min(Packet.MAX_CON_BODY_SEGMENT_LEN, len(body_remaining)) packet.body = body_remaining[:segment_len] body_remaining = body_remaining[segment_len:] packets.append(packet) return packets
def packetize(self, start_sequence): body_remaining = self.body + self.computed_crc_bytes() sequence_num = start_sequence packets = [] while len(body_remaining) > 0: packet = Packet() packet.pod_address_1 = self.pod_address packet.sequence = sequence_num if len(packets) == 0: packet.packet_type = PacketType.PDM packet.pod_address_2 = self.pod_address packet.byte9 = self.byte9 segment_len = min(Packet.MAX_BODY_SEGMENT_LEN, len(body_remaining)) packet.body = body_remaining[:segment_len] packet.body_len = len(self.body) body_remaining = body_remaining[segment_len:] else: packet.packet_type = PacketType.CON segment_len = min(Packet.MAX_CON_BODY_SEGMENT_LEN, len(body_remaining)) packet.body = body_remaining[:segment_len] body_remaining = body_remaining[segment_len:] sequence_num += 2 if sequence_num > 31: sequence_num -= 32 packets.append(packet) return packets