Ejemplo n.º 1
0
    def _encode_data(self):
        buffer = bytearray()

        # variable header
        buffer.extend(MQTTUtils.encode_string(self.protocol_name))
        buffer.append(MQTTUtils.encode_byte(self.protocol_version))

        connect_flags = 0x00
        connect_flags |= 0x80 if self.has_username else 0x00
        connect_flags |= 0x40 if self.has_passwd else 0x00
        connect_flags |= 0x20 if self.will_retain else 0x00
        connect_flags |= ((self.will_qos or 0x00) << 3) & 0x18
        connect_flags |= 0x04 if self.will_flag else 0x00
        connect_flags |= 0x02 if self.clean_session else 0x00
        buffer.append(connect_flags)

        buffer.extend(MQTTUtils.encode_value(self.keep_alive))

        # payload
        buffer.extend(MQTTUtils.encode_string(self.client_uid))

        if self.will_flag:
            buffer.extend(MQTTUtils.encode_string(self.will_topic))
            buffer.extend(MQTTUtils.encode_string(self.will_message))

        if self.has_username:
            buffer.extend(MQTTUtils.encode_string(self.username))

        if self.has_passwd:
            buffer.extend(MQTTUtils.encode_string(self.passwd))

        return bytes(buffer)
Ejemplo n.º 2
0
    def _encode_data(self):
        buffer = bytearray()
        buffer.extend(MQTTUtils.encode_value(self.id))

        for intent in self.subscription_intents:
            topic, qos = intent
            buffer.extend(MQTTUtils.encode_string(topic))
            buffer.append(MQTTUtils.encode_byte(qos) & self.QOS_PART_MASK)

        return bytes(buffer)
Ejemplo n.º 3
0
    def _encode_data(self):
        buffer = bytearray()
        buffer.extend(MQTTUtils.encode_string(self.topic))

        if self.qos in [MQTTConstants.AT_LEAST_ONCE, MQTTConstants.EXACTLY_ONCE]:
            buffer.extend(MQTTUtils.encode_value(self.id))

        buffer.extend(self.payload)

        return bytes(buffer)
Ejemplo n.º 4
0
 def _encode_data(self):
     return bytes(MQTTUtils.encode_value(self.id))
Ejemplo n.º 5
0
    def _encode_data(self):
        buffer = bytearray()
        buffer.extend(MQTTUtils.encode_value(self.id))
        buffer.extend(self.payload)

        return bytes(buffer)