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.
3 months ago
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.
3 months ago
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
4 months ago
ViezeVingertjes
eb4fa032ff
Implement token bucket duty cycle enforcement
5 months ago
Scott Powell
febc63d286
* fix: init rx_air_time to 0
10 months ago
Chris
ea2ce93c02
Add a counter to track rx time for repeater stats
10 months ago
João Brázio
ac056fb0b9
Remove serial bridge implementation and implement simplified version directly in the repeater source code.
11 months ago
João Brázio
4b70ee863d
Serial bridge implementation
11 months ago
Scott Powell
32ca3dc9d0
* repeater and room server: new CLI setting "agc.reset.interval" (seconds)
12 months ago
Scott Powell
b3d78ac8a7
* interference threshold now stored in prefs, CLI: set/get "int.thresh"
1 year ago
Scott Powell
0e35ae5ec6
* dynamic noise floor sampling
1 year ago
Scott Powell
f2243b78ae
* added Radio::loop() virtual function
* RadioLibWrapper: new isChannelActive() based on current RSSI being above noise_floor + THRESHOLD
1 year ago
Scott Powell
e291b57a07
* Dispatcher::checkSend() bug: getOutboundCount() should only count non-future packets
1 year ago
Scott Powell
805ca7b900
* CommonCLI: added "clear stats" command
1 year ago
Scott Powell
177dd90ca1
* Repeater/Room server: new diagnostics, stats.n_full_events now repurposed to 'err_events' (bit flags)
* new Radio::isInRecvMode() method
1 year ago
Scott Powell
b08436eba7
* startSendRaw() now returns false if fail
1 year ago
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)
1 year ago
Scott Powell
f77a6944f9
* PUSH_CODE_LOG_RX_DATA: is now just: {snr*4},{rssi},{raw-lora-packet}
1 year ago
Scott Powell
189ed79d46
* new Dispatcher::getCADFailRetryDelay()
1 year ago
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)
1 year ago
Scott Powell
3b5b7a1642
* SimpleMeshTables: ACKs now handled separately
* Dispatcher: logging methods now with 'len' param
1 year ago
Scott Powell
9d9145a1c2
* repeater: new CLI commands: "log start", "log stop", "log erase", and "log"
1 year ago
Scott Powell
7da0a5f7ec
* new RX delays based on SNR
1 year ago
Scott Powell
382b73f6c5
* Dispatcher: more stats added
1 year ago
Scott Powell
20cd756c88
* Radio:: getLastSNR(), getLastRSSI()
* MESH_PACKET_LOGGING
1 year ago
Scott Powell
6c7efdd0f6
Initial commit
1 year ago