From 8ba658db92e656f7ee46ab5849062f8fbb0c6932 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Fri, 31 Jul 2026 01:01:14 -0700 Subject: [PATCH] Add size-safe stable MOTA bridge mode --- examples/companion_radio/MyMesh.cpp | 2 +- examples/simple_repeater/MyMesh.cpp | 14 +++++++------- examples/simple_repeater/MyMesh.h | 4 +++- examples/simple_room_server/MyMesh.cpp | 2 +- examples/simple_sensor/SensorMesh.cpp | 2 +- src/Dispatcher.cpp | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 1e4bf99a..f097df0a 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -402,7 +402,7 @@ static mesh::RadioParamApplyResult applyFixedRadioParams(float freq, float bw, u #endif int MyMesh::calcRxDelay(float score, uint32_t air_time) const { if (_prefs.rx_delay_base <= 0.0f) return 0; - return (int)((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time); + return (int)((powf(_prefs.rx_delay_base, 0.85f - score) - 1.0f) * air_time); } uint32_t MyMesh::getRetransmitDelay(const mesh::Packet *packet) { diff --git a/examples/simple_repeater/MyMesh.cpp b/examples/simple_repeater/MyMesh.cpp index 54bd47a5..67a0d69d 100644 --- a/examples/simple_repeater/MyMesh.cpp +++ b/examples/simple_repeater/MyMesh.cpp @@ -954,7 +954,7 @@ void MyMesh::logRx(mesh::Packet *pkt, int len, float score) { } #endif - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); @@ -984,7 +984,7 @@ void MyMesh::logTx(mesh::Packet *pkt, int len) { } #endif - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); @@ -1003,7 +1003,7 @@ void MyMesh::logTx(mesh::Packet *pkt, int len) { } void MyMesh::logTxFail(mesh::Packet *pkt, int len) { - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); @@ -1016,7 +1016,7 @@ void MyMesh::logTxFail(mesh::Packet *pkt, int len) { int MyMesh::calcRxDelay(float score, uint32_t air_time) const { if (_prefs.rx_delay_base <= 0.0f) return 0; - return (int)((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time); + return (int)((powf(_prefs.rx_delay_base, 0.85f - score) - 1.0f) * air_time); } uint32_t MyMesh::getRetransmitDelay(const mesh::Packet *packet) { @@ -1300,7 +1300,7 @@ void MyMesh::onDirectRetryEvent(const char* event, const mesh::Packet* packet, u (uint32_t)log_cr, (uint32_t)log_preamble_len); #endif - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); @@ -1880,7 +1880,7 @@ void MyMesh::onFloodRetryEvent(const char* event, const mesh::Packet* packet, ui if (packet == NULL) { MESH_DEBUG_PRINTLN("flood retry %s (retry=%u, elapsed_ms=%lu, packet=released)", event, (unsigned int)retry_attempt, (unsigned long)delay_millis); - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); @@ -1928,7 +1928,7 @@ void MyMesh::onFloodRetryEvent(const char* event, const mesh::Packet* packet, ui (uint32_t)log_cr, (uint32_t)log_preamble_len); - if (_logging) { + if (false) { File f = openAppend(PACKET_LOG_FILE); if (f) { f.print(getLogDateTime()); diff --git a/examples/simple_repeater/MyMesh.h b/examples/simple_repeater/MyMesh.h index ca7515f2..a9f6de84 100644 --- a/examples/simple_repeater/MyMesh.h +++ b/examples/simple_repeater/MyMesh.h @@ -667,7 +667,9 @@ public: void updateAdvertTimer() override; void updateFloodAdvertTimer() override; - void setLoggingOn(bool enable) override { _logging = enable; } + // Stable MOTA bridge builds keep repeater and LoRa OTA behavior but omit + // runtime packet-file logging to preserve in-place apply headroom. + void setLoggingOn(bool enable) override { (void)enable; } void eraseLogFile() override { _fs->remove(PACKET_LOG_FILE); diff --git a/examples/simple_room_server/MyMesh.cpp b/examples/simple_room_server/MyMesh.cpp index f70121f1..d5ee0b88 100644 --- a/examples/simple_room_server/MyMesh.cpp +++ b/examples/simple_room_server/MyMesh.cpp @@ -297,7 +297,7 @@ void MyMesh::logTxFail(mesh::Packet *pkt, int len) { int MyMesh::calcRxDelay(float score, uint32_t air_time) const { if (_prefs.rx_delay_base <= 0.0f) return 0; - return (int)((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time); + return (int)((powf(_prefs.rx_delay_base, 0.85f - score) - 1.0f) * air_time); } const char *MyMesh::getLogDateTime() { diff --git a/examples/simple_sensor/SensorMesh.cpp b/examples/simple_sensor/SensorMesh.cpp index 88c47de1..eac25a1c 100644 --- a/examples/simple_sensor/SensorMesh.cpp +++ b/examples/simple_sensor/SensorMesh.cpp @@ -354,7 +354,7 @@ bool SensorMesh::allowPacketForward(const mesh::Packet* packet) { int SensorMesh::calcRxDelay(float score, uint32_t air_time) const { if (_prefs.rx_delay_base <= 0.0f) return 0; - return (int) ((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time); + return (int) ((powf(_prefs.rx_delay_base, 0.85f - score) - 1.0f) * air_time); } uint32_t SensorMesh::getRetransmitDelay(const mesh::Packet* packet) { diff --git a/src/Dispatcher.cpp b/src/Dispatcher.cpp index 05e89a8c..5c741fb7 100644 --- a/src/Dispatcher.cpp +++ b/src/Dispatcher.cpp @@ -79,7 +79,7 @@ void Dispatcher::restoreOutboundTxOverrides() { } int Dispatcher::calcRxDelay(float score, uint32_t air_time) const { - return (int) ((pow(10, 0.85f - score) - 1.0) * air_time); + return (int) ((powf(10.0f, 0.85f - score) - 1.0f) * air_time); } uint32_t Dispatcher::getCADFailRetryDelay() const {