修bug
This commit is contained in:
@@ -151,9 +151,6 @@ class LoRaMeshUartPassthroughManager:
|
||||
log(f"LoRa: 提取的包: {packet.hex()}。剩余缓冲区 (长度 {len(self._rx_buffer)}): {self._rx_buffer.hex()}")
|
||||
|
||||
# --- 包结构解析 ---
|
||||
# 根据代码 `chunk_data = packet[6:-2]` 推断,包结构为:
|
||||
# 1 (帧头) + 1 (长度) + 2 (目标地址) + 1 (总分片) + 1 (当前分片) + N (数据) + 2 (源地址)
|
||||
# 因此,一个合法的包至少需要 1+1+2+1+1+2 = 8个字节
|
||||
if len(packet) < 8:
|
||||
log(f"LoRa: 包长度 {len(packet)} 小于协议最小长度8, 判定为坏包,已丢弃。")
|
||||
continue
|
||||
@@ -161,8 +158,8 @@ class LoRaMeshUartPassthroughManager:
|
||||
addr = int.from_bytes(packet[2:4], 'big')
|
||||
total_chunks = packet[4]
|
||||
current_chunk = packet[5]
|
||||
# 提取数据块,排除末尾的2字节源地址
|
||||
chunk_data = packet[6:-2]
|
||||
# 提取数据块
|
||||
chunk_data = packet[6:]
|
||||
source_addr = int.from_bytes(packet[-2:], 'big')
|
||||
log(f"LoRa: 解析包: 源地址={source_addr}, 目标地址={addr}, 总分片={total_chunks}, 当前分片={current_chunk}, 数据块长度={len(chunk_data)}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user