Skip to content

Commit 3c71773

Browse files
author
brentru
committed
add QoS, topic length
1 parent dcce712 commit 3c71773

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

adafruit_minimqtt/adafruit_minimqtt.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ def connect(self, clean_session=True):
305305
fixed_header = bytearray()
306306
fixed_header.append(0x10)
307307

308-
# NOTE: Variable header is
308+
# NOTE: Variable header is
309309
# MQTT_HDR_CONNECT = bytearray(b"\x04MQTT\x04\x02\0\0")
310310
# because final 4 bytes are 4, 2, 0, 0
311311
# Variable Header
@@ -446,21 +446,25 @@ def publish(self, topic, msg, retain=False, qos=0):
446446
raise MMQTTException("Message size larger than %db." % MQTT_MSG_MAX_SZ)
447447
self._check_qos(qos)
448448

449-
pub_hdr_fixed = bytearray()
450-
pub_hdr_fixed.append(0x30)
451-
#pub_hdr_var[0] |= qos << 1 | retain
449+
pub_hdr_fixed = bytearray(b"\x30")
450+
451+
pub_hdr_fixed[0] |= qos << 1 | retain
452+
pub_hdr_fixed.append(len(msg))
452453

453-
# pub_hdr_var = bytearray(b"\x03\x61\x2F\x62\0\0")
454454
pub_hdr_var = bytearray()
455-
pub_hdr_var.append(0x03)
455+
pub_hdr_var.extend(b"\x00\x17")
456+
456457

457-
remaining_length = 4 + len(topic)
458+
print(len(topic))
459+
print(len(msg))
460+
remaining_length = 7 + len(msg)
458461

459462
if qos > 0:
460463
remaining_length += 2 + len(qos)
461464

462465
assert remaining_length < 2097152 # TODO: need a more descriptive error thrown here!
463466

467+
"""
464468
# Remaining length calculation
465469
large_rel_length = False
466470
if remaining_length > 0x7f:
@@ -479,12 +483,16 @@ def publish(self, topic, msg, retain=False, qos=0):
479483
pub_hdr_fixed.append(remaining_length)
480484
pub_hdr_fixed.append(0x00)
481485
print(pub_hdr_fixed)
486+
"""
487+
488+
489+
482490

483491
self._sock.send(pub_hdr_fixed)
484492
self._sock.send(pub_hdr_var)
493+
# UP TO HERE!!
485494
self._send_str(topic)
486-
self._sock.send(b"\0\0")
487-
self._sock.send(msg)
495+
# self._sock.send(msg)
488496

489497
def subscribe(self, topic, qos=0):
490498
"""Subscribes to a topic on the MQTT Broker.
@@ -813,4 +821,4 @@ def set_logger_level(self, log_level):
813821
elif log_level == "ERROR":
814822
self.logger.setLevel(logging.CRITICIAL)
815823
else:
816-
raise MMQTTException("Incorrect logging level provided!")
824+
raise MMQTTException("Incorrect logging level provided!")

0 commit comments

Comments
 (0)