mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-07 23:04:49 -05:00
Radio: optional radio task, slot gate and measured TX lead
Three compile-time switches, all off by default: - MESHTASTIC_RADIO_TASK (ESP32, nRF52): runs the RadioLib radio thread from its own FreeRTOS task, one priority above the loop and below the RX readout task. The task holds a recursive radio lock while the thread runs; loop-side entry points into the radio take it with RADIO_TASK_LOCK(). The static packet pool claims slots in a critical section. The task's log lines are queued and printed by the loop (MESHTASTIC_RADIO_TASK_LOG_LINES sets the depth; MESHTASTIC_RADIO_TASK_LOG_DIRECT writes them from the task instead), and no log line sits between the TX timer and SET_TX. - MESHTASTIC_TX_SLOT_GATE_MS=<ms>: a TX with a slot parity scans only in the first <ms> of a slot of its parity on the frame-end grid. The timer fires MESHTASTIC_TX_SLOT_GATE_EARLY_SLOTS (default 2) slots early and the radio thread waits out the rest; a timer further ahead is set again (MESHTASTIC_TX_SLOT_GATE_REARM=0 scans at once instead). - MESHTASTIC_TX_SLOT_LEAD (needs the gate): aims SET_TX MESHTASTIC_TX_SLOT_SET_TX_AT_MS (default 1) into the slot, starting the scan the measured scan-to-SET_TX time before it and firing the timer the measured wake latency plus MESHTASTIC_TX_SLOT_LEAD_GUARD_MS (default 1) before the scan. Works with the early TX stage on a CH341 host. Co-Authored-By: Jonathan Bennett <jbennett@incomsystems.biz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REkPVFh6kvG4AZJ5A8AtM9
This commit is contained in:
1 parent
0300d706ea
commit
a33b0bbdf2
21 files changed
+644
-19
No files matched your search
@@ -346,7 +346,7 @@ void SerialConsole::log_to_serial(const char *logLevel, const char *format, va_l
|
||||
if (usingProtobufs) {
|
||||
if (config.security.debug_log_api_enabled && !pauseBluetoothLogging) {
|
||||
meshtastic_LogRecord_Level ll = RedirectablePrint::getLogLevel(logLevel);
|
||||
auto thread = concurrency::OSThread::currentThread;
|
||||
auto thread = concurrency::OSThread::current();
|
||||
emitLogRecord(ll, thread ? thread->ThreadName.c_str() : "", format, arg);
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in new issue
Block a user