improved the logtool, but not quite there yet?
This commit is contained in:
29
logtool/debug-notes.md
Normal file
29
logtool/debug-notes.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Logtool Debug Notes — 16 MAR 2026
|
||||
|
||||
## Problem
|
||||
`storage-16MAR2026-1728.bin` not parsing correctly.
|
||||
|
||||
## Root Cause (SOLVED)
|
||||
Two issues in `parser.py`:
|
||||
|
||||
### 1. Unrecognized file format
|
||||
The file format is `[4B tail BE][4B head BE][raw log data]` — no JSON header.
|
||||
- `head - tail == file_size - 8` (the raw log data is exactly the flash region from tail to head)
|
||||
- The old HTTP format was: `[4B json_len BE][json][4B tail BE][4B head BE][raw log data]`
|
||||
- The parser's autodetect only recognized the old HTTP format (and required json_len < 8192)
|
||||
- **Fix:** Added detection for bare tail+head format in `autodetect_and_parse()`
|
||||
|
||||
### 2. Type-first vs type-last detection failure
|
||||
The log entries use **type-first** format: `[len][type][payload]`
|
||||
But `_try_detect_type_first()` returned False because:
|
||||
- First entry had type=0x00 at both positions (ambiguous)
|
||||
- Timestamp was near-zero (RTC not yet set), so timestamp sanity check failed
|
||||
- Function gave up after only 1 entry (`break` at end of loop)
|
||||
- **Fix:** Loop over multiple entries (up to 200), added voltage sanity check (0.5-60V)
|
||||
|
||||
## Verification
|
||||
- 54,831 entries parsed successfully
|
||||
- FSM states: IDLE (51169), JACK_UP (1078), DRIVE (994), etc.
|
||||
- Voltages: 3.3V–13.3V (reasonable for 3S LiPo system)
|
||||
- Timestamps: Jan 13 – Feb 6, 2026 (after RTC set)
|
||||
- Old HTTP-format .bin files still parse correctly
|
||||
Reference in New Issue
Block a user