]> git.tnoah.ca Git - lora-radio.git/commitdiff
Add support for retrieving packet length on implicit header
authorjacob.eva <x00010@disroot.org>
Thu, 5 Sep 2024 12:10:11 +0000 (13:10 +0100)
committerjacob.eva <x00010@disroot.org>
Thu, 5 Sep 2024 12:10:11 +0000 (13:10 +0100)
Radio.cpp

index 6b2557fb47858ac8db38c473ca4da6122c0322d4..b252cbea1a3af2b40fbccd122824b9ba47aa974c 100644 (file)
--- a/Radio.cpp
+++ b/Radio.cpp
@@ -2576,8 +2576,17 @@ void sx128x::handleDio0Rise()
 
         uint8_t rxbuf[2] = {0};
         executeOpcodeRead(OP_RX_BUFFER_STATUS_8X, rxbuf, 2);
-        _rxPacketLength = rxbuf[0];
+
+        // If implicit header mode is enabled, read packet length as payload length instead.
+        // See SX1280 datasheet v3.2, page 92
+        if (_implicitHeaderMode == 0x80) {
+            _rxPacketLength = _payloadLength;
+        } else {
+            _rxPacketLength = rxbuf[0];
+        }
+
         _fifo_rx_addr_ptr = rxbuf[1];
+
         readBuffer(_packet, _rxPacketLength);
 
         if (_onReceive) {