-def handle_packet(packet, addr, when):
- if len(packet) < 6:
- return UNKNOWN.from_packet(0, 0, packet)
- else:
- xx, length, proto = unpack("!2sBB", packet[:4])
- crlf = packet[-2:]
- payload = packet[4:-2]
- adjust = 2 if proto == STATUS.PROTO else 4 # Weird special case
- if (
- proto
- not in (WIFI_POSITIONING.PROTO, WIFI_OFFLINE_POSITIONING.PROTO)
- and length > 1
- and len(payload) + adjust != length
- ):
- log.warning(
- "With proto %d length is %d but payload length is %d+%d",
- proto,
- length,
- len(payload),
- adjust,
- )
- if xx != b"xx" or crlf != b"\r\n":
- return UNKNOWN.from_packet(length, proto, packet) # full packet
- else:
- return make_object(length, proto, payload)
+def handle_packet(packet): # DEPRECATED
+ print("packet in frame", packet.hex())
+ if len(packet) < 6 or packet[:2] != b"xx" or packet[-2:] != b"\r\n":
+ return UNKNOWN.from_packet(len(packet), packet)
+ return parse_message(packet[2:-2])