docs: def parse_header_part(self, data):
          """Extracts and converts the RFX common header part of all valid
          packets to a plain dictionary. RFX header part is the 4 bytes prior
          the sensor vendor specific data part.
  
          The RFX common header part contains respectively:
          - packet length
          - packet type
          - packet sub-type
          - sequence number
  
          :param data: bytearray of received data
          :type data: bytearray
  
          """
          packet_length = data[0]
          packet_type = data[1]
          packet_subtype = data[2]
          sequence_number = data[3]
          return {
              'packet_length': packet_length,
              'packet_type': packet_type,
              'packet_type_name': self.PACKET_TYPES.get(packet_type),
              'packet_subtype': packet_subtype,
              'packet_subtype_name': self.PACKET_SUBTYPES.get(packet_subtype),
              'sequence_number': sequence_number
          }