Commit Graph
26 Commits
Author SHA1 Message Date
Scott Powell 2715d3a113 * Dispatcher::next_tx_time init fix 2026-03-08 23:58:28 +11:00
ripplebizandGitHub 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
Daniel Novak c7568a8db0 Replace 0xFFFFFFFF sentinel with explicit getOutboundTotal()
Instead of overloading getOutboundCount() with a magic sentinel value,
add a dedicated getOutboundTotal() method to the PacketManager interface
that returns the total queue size without time filtering.

This eliminates the fragile convention that caused the regression and
makes the two operations — time-filtered count vs total count —
explicitly separate in the API.
2026-02-28 17:19:04 +01:00
Daniel Novak c436bd42c5 Fix countBefore sentinel regression from millis wraparound fix
PR #1795 changed PacketQueue::countBefore() to use signed 2's complement
arithmetic for millis wraparound safety. However, this broke the
0xFFFFFFFF sentinel pattern used by callers to mean "count all packets
regardless of schedule".

With the signed comparison, countBefore(0xFFFFFFFF) always returns 0,
causing hasPendingWork() to report false and repeaters to sleep with
packets still queued. Stats reporting also shows queue_len as 0.

Add an early-return for the sentinel value before the loop, and document
the sentinel convention on the virtual interface and implementation.
2026-02-28 16:22:58 +01: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 eb4fa032ff Implement token bucket duty cycle enforcement 2026-01-04 21:33:46 +01:00
Scott Powell febc63d286 * fix: init rx_air_time to 0 2025-08-01 20:05:37 +10:00
Chris ea2ce93c02 Add a counter to track rx time for repeater stats 2025-07-30 09:41:20 -07: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 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 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 189ed79d46 * new Dispatcher::getCADFailRetryDelay() 2025-02-27 04:05:50 +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 7da0a5f7ec * new RX delays based on SNR 2025-02-04 12:35:53 +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