mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
SubGHz: Show reason for TX blocked --nobuild
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include <furi_hal_subghz.h>
|
||||
#include <lib/subghz/devices/cc1101_configs.h>
|
||||
#include <furi_hal_region_i.h>
|
||||
#include <furi_hal_region.h>
|
||||
#include <furi_hal_version.h>
|
||||
#include <furi_hal_rtc.h>
|
||||
#include <furi_hal_spi.h>
|
||||
@@ -389,32 +390,40 @@ uint32_t furi_hal_subghz_set_frequency_and_path(uint32_t value) {
|
||||
return value;
|
||||
}
|
||||
|
||||
bool furi_hal_subghz_is_tx_allowed(uint32_t value) {
|
||||
if(!furi_hal_subghz.bypass_region) {
|
||||
if(!_furi_hal_region_is_frequency_allowed(value)) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - outside region range");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
FuriHalSubGhzTx furi_hal_subghz_check_tx(uint32_t value) {
|
||||
// Check against extended range of YARD Stick One, no configuration would allow this frequency
|
||||
if(!furi_hal_subghz_is_frequency_valid(value)) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - outside supported range");
|
||||
return FuriHalSubGhzTxBlockedUnsupported;
|
||||
}
|
||||
|
||||
bool allow_extended_for_int = furi_hal_subghz.extended_frequency_i;
|
||||
|
||||
if(!(allow_extended_for_int) &&
|
||||
// Check against default range, regardless of region restrictions
|
||||
if(!furi_hal_subghz.extended_frequency_i &&
|
||||
!(value >= 299999755 && value <= 350000335) && // was increased from 348 to 350
|
||||
!(value >= 386999938 && value <= 467750000) && // was increased from 464 to 467.75
|
||||
!(value >= 778999847 && value <= 928000000)) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - outside default range");
|
||||
return false;
|
||||
} else if(
|
||||
(allow_extended_for_int) && //
|
||||
!furi_hal_subghz_is_frequency_valid(value)) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - outside extended range");
|
||||
return false;
|
||||
return FuriHalSubGhzTxBlockedDefault;
|
||||
}
|
||||
|
||||
return true;
|
||||
// Check against region restrictions, tighter than extended and default
|
||||
if(!furi_hal_subghz.bypass_region) {
|
||||
if(!furi_hal_region_is_provisioned()) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - region not provisioned");
|
||||
return FuriHalSubGhzTxBlockedRegionNotProvisioned;
|
||||
}
|
||||
if(!_furi_hal_region_is_frequency_allowed(value)) {
|
||||
FURI_LOG_I(TAG, "Frequency blocked - outside region range");
|
||||
return FuriHalSubGhzTxBlockedRegion;
|
||||
}
|
||||
}
|
||||
|
||||
// We already checked for extended range, default range, and region range
|
||||
return FuriHalSubGhzTxAllowed;
|
||||
}
|
||||
|
||||
bool furi_hal_subghz_is_tx_allowed(uint32_t value) {
|
||||
return furi_hal_subghz_check_tx(value) == FuriHalSubGhzTxAllowed;
|
||||
}
|
||||
|
||||
uint32_t furi_hal_subghz_set_frequency(uint32_t value) {
|
||||
|
||||
Reference in New Issue
Block a user