diff --git a/src/Dispatcher.cpp b/src/Dispatcher.cpp index c0610b7f8..d0cfc3966 100644 --- a/src/Dispatcher.cpp +++ b/src/Dispatcher.cpp @@ -60,6 +60,7 @@ uint32_t Dispatcher::getCADFailRetryDelay() const { return 200; } uint32_t Dispatcher::getCADFailMaxDuration() const { + if (_radio->isJapanMode()) return UINT32_MAX; // ARIB STD-T108: never force TX during LBT return 4000; // 4 seconds } diff --git a/src/Dispatcher.h b/src/Dispatcher.h index aad6cba3e..e53b75aa0 100644 --- a/src/Dispatcher.h +++ b/src/Dispatcher.h @@ -78,6 +78,8 @@ public: virtual float getLastRSSI() const { return 0; } virtual float getLastSNR() const { return 0; } + + virtual bool isJapanMode() const { return false; } }; /** diff --git a/src/helpers/radiolib/RadioLibWrappers.h b/src/helpers/radiolib/RadioLibWrappers.h index 3330ccb08..051bec7ef 100644 --- a/src/helpers/radiolib/RadioLibWrappers.h +++ b/src/helpers/radiolib/RadioLibWrappers.h @@ -57,7 +57,7 @@ public: virtual uint8_t getCodingRate() const { return 8; } // default CR4/8, override in subclass virtual float getFreqMHz() const { return 0.0f; } // default unknown, override in subclass - bool isJapanMode() const { + bool isJapanMode() const override { float freq = getFreqMHz(); return (fabsf(freq - 920.800f) < 0.05f || fabsf(freq - 921.000f) < 0.05f ||