refactor: implement packet parsing heuristics and introduce device-level state caching to throttle database writes and vitals updates

This commit is contained in:
2026-07-11 14:24:14 +05:30
parent a4972b3251
commit 84b8acc904
32 changed files with 3499 additions and 180 deletions
@@ -0,0 +1,32 @@
import sys
filepath = "/home/prathiyuman/Prathiyuman/ContecMonitor/fiveparaminte-main/scratch/raw_contec_stream.bin"
try:
with open(filepath, "rb") as f:
f.seek(0, 2)
size = f.tell()
# Read the last 2000 bytes
f.seek(max(0, size - 2000))
data = f.read()
except Exception as e:
print(f"Error reading file: {e}")
sys.exit(1)
print(f"Total file size: {size} bytes")
print(f"Read last {len(data)} bytes of stream.")
# Let's search for potential packet headers in the last 2000 bytes.
# Typically headers are like: [len_lo] [len_hi] [04/01] [46]
# Let's print out the hex around any occurrences of 0x46 or 0x47.
print("\nScanning for potential 0x46 or 0x47 headers...")
for i in range(len(data) - 4):
b0, b1, b2, b3 = data[i], data[i+1], data[i+2], data[i+3]
if b3 == 0x46:
pkt_len = b0 | (b1 << 8)
print(f"Index {i} (absolute {size - 2000 + i}): Header match! Bytes: {b0:02x} {b1:02x} {b2:02x} {b3:02x} -> Length: {pkt_len}, Subtype: {b2}")
# print hex representation of next 16 bytes
next_bytes = data[i:i+20]
print(f" Hex: {next_bytes.hex()}")
elif b3 == 0x47:
print(f"Index {i} (absolute {size - 2000 + i}): End-marker? Bytes: {b0:02x} {b1:02x} {b2:02x} {b3:02x}")