Add pp() and debug_data() helpers to config.py for readable debug output.
Dicts and lists are now formatted as indented JSON instead of single-line
repr() dumps, making payload inspection in logs much easier.
Changed files:
- config.py: added pp(), debug_data(), json import
- ble/worker.py: converted 5 payload dumps to use pp()/debug_data()
Usage in any module:
debug_print(f"payload={pp(r.payload)}")
debug_data("get_contacts result", r.payload)
This feature implements persistent storage for all incoming messages, RX log entries, and contacts with configurable retention periods. The system uses a dual-layer architecture to balance real-time UI performance with comprehensive data retention.
The ble_observe.py capture tool has been removed from the project.
Updated both NL and EN versions of the BLE explanation document:
- Rewrote intro (section 1) to focus on BLE concepts rather than captures
- Removed sections 8 (workflow), 9 (common mistakes), 10 (sequence diagram)
- Updated conclusion to remove capture references
- Renumbered remaining sections (conclusion → 8, references → 9)
Add English translation of BLE capture workflow explanation
Translated ble_capture_workflow_t_1000_e_uitleg.md to English as
ble_capture_workflow_t_1000_e_explanation.md. This companion document
covers BLE concepts, GATT services, NUS, the ownership problem, and
the capture workflow for the T1000-e on Linux.
Intended to make the documentation accessible to non-Dutch speakers
in the MeshCore community.