Jakub
327e659d51
feat(ui): add on-device diagnostics screen (Tools > Diagnostics)
...
Shows packet counts by category (RX/TX), radio noise floor/RSSI/SNR,
packet-pool free count and outbound queue length, uptime, and heap/stack
headroom on a single scrollable screen.
Adds generic per-payload-type RX/TX counters to Dispatcher (mesh layer),
plus pool-free/queue-length getters, and a new DeviceDiag helper for
nRF52 heap (linker-symbol + sbrk) and stack (FreeRTOS high-water-mark)
stats — the only platform needed for the 3 in-scope boards (Wio Tracker
L1 OLED/Eink, GAT562 30S), all nRF52840.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 22:34:52 +02:00
ripplebiz
cf0cc851d4
Merge pull request #1297 from ViezeVingertjes/feature/duty-cycle-token-bucket
...
Implement token bucket duty cycle enforcement
2026-03-08 23:54:32 +11:00
Scott Powell
45564bad9b
* Dispatcher bug fixes
2026-02-23 23:51:30 +11:00
Scott Powell
3e76161e9c
* refactor of Contact/Client out_path_len (stored in files), from signed to unsigned byte (+2 squashed commits)
...
Squashed commits:
[f326e25] * misc
[fa5152e] * new 'path mode' parsing in Dispatcher
2026-02-21 19:35:51 +11:00
ViezeVingertjes
519b97a90a
Updated the Dispatcher logic to replace hardcoded values with defined constants for minimum TX budget reserve and airtime division.
2026-02-07 19:07:33 +01:00
ViezeVingertjes
30d6588792
Update logic in Dispatcher to ensure refill is only applied when greater than zero.
2026-02-07 18:26:39 +01:00
ViezeVingertjes
eb4fa032ff
Implement token bucket duty cycle enforcement
2026-01-04 21:33:46 +01:00
Chris
ea2ce93c02
Add a counter to track rx time for repeater stats
2025-07-30 09:41:20 -07:00
Scott Powell
466bd6d596
* fix for when AGC reset is disabled (interval = 0)
2025-06-13 14:25:09 +10:00
Scott Powell
32ca3dc9d0
* repeater and room server: new CLI setting "agc.reset.interval" (seconds)
2025-06-13 14:15:21 +10:00
Scott Powell
b3d78ac8a7
* interference threshold now stored in prefs, CLI: set/get "int.thresh"
2025-05-26 17:18:49 +10:00
Scott Powell
0e35ae5ec6
* dynamic noise floor sampling
2025-05-25 21:44:15 +10:00
Scott Powell
f2243b78ae
* added Radio::loop() virtual function
...
* RadioLibWrapper: new isChannelActive() based on current RSSI being above noise_floor + THRESHOLD
2025-05-24 21:24:44 +10:00
Scott Powell
e291b57a07
* Dispatcher::checkSend() bug: getOutboundCount() should only count non-future packets
2025-05-14 16:50:11 +10:00
Scott Powell
805ca7b900
* CommonCLI: added "clear stats" command
2025-05-13 18:12:58 +10:00
Scott Powell
177dd90ca1
* Repeater/Room server: new diagnostics, stats.n_full_events now repurposed to 'err_events' (bit flags)
...
* new Radio::isInRecvMode() method
2025-05-13 15:38:10 +10:00
Scott Powell
b08436eba7
* startSendRaw() now returns false if fail
2025-05-12 17:26:44 +10:00
Scott Powell
1d4ae9f3c4
minor refactor
2025-04-11 19:11:06 +10:00
Scott Powell
ab8cd85d8e
* added Packet::getRawLength() helper
2025-04-11 15:12:04 +10:00
Scott Powell
3c7ff8da29
* Packet::header, new: ROUTE_TYPE_TRANS_FLOOD, ROUTE_TYPE_TRANS_DIRECT
...
* Packet wire format change: (optional) extra 4 bytes for two trans_codes
2025-04-11 04:56:13 +10:00
Scott Powell
89bd6c3416
* Dispatcher: now impose a max time for CAD fail (ie. channel busy), defined by getCADFailMaxDuration(), default 4 seconds.
...
(an sx126x bug _might_ be making radio->isReceiving() return true indefinitely)
2025-03-28 20:50:42 +11:00
Scott Powell
fe4fdeb236
* redesigned TRACE packet structure
2025-03-17 17:56:12 +11:00
Scott Powell
9aa2edf9ba
Merge branch 'dev' into trace
...
# Conflicts:
# examples/companion_radio/main.cpp
# src/Dispatcher.cpp
2025-03-15 15:12:50 +11:00
Scott Powell
3778c0a8ff
* repeater and room server: MESH_PACKET_LOGGING, now dumps RAW: rx packet contents
...
* Dispatcher: MESH_PACKET_LOGGING, added " hash={packet-hash}"
2025-03-09 20:36:49 +11:00
Scott Powell
f77a6944f9
* PUSH_CODE_LOG_RX_DATA: is now just: {snr*4},{rssi},{raw-lora-packet}
2025-03-09 17:04:22 +11:00
Scott Powell
2889867c4c
* Dispatcher: added guard for packet payload size too large
2025-03-08 19:38:36 +11:00
Scott Powell
544adec2b6
* refactor Packet::_snr to single byte
2025-03-07 12:32:23 +11:00
Scott Powell
b2fcc692ea
* TRACE packet logging fix
2025-03-07 12:24:18 +11:00
Scott Powell
b03aac18c0
Merge branch 'dev' into trace
...
# Conflicts:
# src/Dispatcher.cpp
# src/Mesh.cpp
# src/helpers/BaseChatMesh.cpp
2025-03-07 12:14:26 +11:00
Scott Powell
189ed79d46
* new Dispatcher::getCADFailRetryDelay()
2025-02-27 04:05:50 +11:00
Scott Powell
e65c3e3240
* MESH_DEBUG_PRINTLN fixes
2025-02-20 18:04:35 +11:00
Scott Powell
fc02d8fbcb
* Mesh/Dispatcher: MESH_DEBUG_ and MESH_PACKET_LOGGING now output date-time. (new getLogDateTime() virtual)
...
* MESH_PACKET_LOGGING now parity with dynamic/file logging (src/dest hashes)
2025-02-20 12:41:47 +11:00
Scott Powell
3b5b7a1642
* SimpleMeshTables: ACKs now handled separately
...
* Dispatcher: logging methods now with 'len' param
2025-02-18 22:59:03 +11:00
Scott Powell
9d9145a1c2
* repeater: new CLI commands: "log start", "log stop", "log erase", and "log"
2025-02-18 13:20:48 +11:00
Scott Powell
0db15db625
* new Packet type: PAYLOAD_TYPE_TRACE
2025-02-17 19:22:31 +11:00
Scott Powell
5824c9a6c0
* bug fix for rxdelay 0
2025-02-06 11:16:17 +11:00
Scott Powell
7da0a5f7ec
* new RX delays based on SNR
2025-02-04 12:35:53 +11:00
Scott Powell
33bee48d38
* Terminal Chat: new commands "card" and "import"
2025-02-01 21:45:34 +11:00
Scott Powell
de27dfacb6
* basic CAD before TX, for sx126x wrappers
2025-01-21 13:37:32 +11:00
Scott Powell
e4ec9aec0b
* tidy ups
2025-01-20 10:20:42 +11:00
Scott Powell
382b73f6c5
* Dispatcher: more stats added
2025-01-19 00:36:59 +11:00
Scott Powell
20cd756c88
* Radio:: getLastSNR(), getLastRSSI()
...
* MESH_PACKET_LOGGING
2025-01-15 17:02:49 +11:00
Scott Powell
6c7efdd0f6
Initial commit
2025-01-13 14:07:48 +11:00