|
|
|
|
@@ -93,15 +93,14 @@ uint8_t subghz_scene_receiver_config_next_frequency(const uint32_t value, void*
|
|
|
|
|
furi_assert(context);
|
|
|
|
|
SubGhz* subghz = context;
|
|
|
|
|
uint8_t index = 0;
|
|
|
|
|
for(uint8_t i = 0;
|
|
|
|
|
i < subghz_setting_get_frequency_count(subghz_txrx_get_setting(subghz->txrx));
|
|
|
|
|
i++) {
|
|
|
|
|
if(value == subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), i)) {
|
|
|
|
|
SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx);
|
|
|
|
|
|
|
|
|
|
for(uint8_t i = 0; i < subghz_setting_get_frequency_count(setting); i++) {
|
|
|
|
|
if(value == subghz_setting_get_frequency(setting, i)) {
|
|
|
|
|
index = i;
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
index =
|
|
|
|
|
subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx));
|
|
|
|
|
index = subghz_setting_get_frequency_default_index(setting);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return index;
|
|
|
|
|
@@ -111,15 +110,14 @@ uint8_t subghz_scene_receiver_config_next_preset(const char* preset_name, void*
|
|
|
|
|
furi_assert(context);
|
|
|
|
|
SubGhz* subghz = context;
|
|
|
|
|
uint8_t index = 0;
|
|
|
|
|
for(uint8_t i = 0; i < subghz_setting_get_preset_count(subghz_txrx_get_setting(subghz->txrx));
|
|
|
|
|
i++) {
|
|
|
|
|
if(!strcmp(
|
|
|
|
|
subghz_setting_get_preset_name(subghz_txrx_get_setting(subghz->txrx), i),
|
|
|
|
|
preset_name)) {
|
|
|
|
|
SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx);
|
|
|
|
|
|
|
|
|
|
for(uint8_t i = 0; i < subghz_setting_get_preset_count(setting); i++) {
|
|
|
|
|
if(!strcmp(subghz_setting_get_preset_name(setting, i), preset_name)) {
|
|
|
|
|
index = i;
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
// index = subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx));
|
|
|
|
|
// index = subghz_setting_get_frequency_default_index(setting);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return index;
|
|
|
|
|
@@ -148,6 +146,7 @@ uint8_t subghz_scene_receiver_config_hopper_value_index(
|
|
|
|
|
static void subghz_scene_receiver_config_set_frequency(VariableItem* item) {
|
|
|
|
|
SubGhz* subghz = variable_item_get_context(item);
|
|
|
|
|
uint8_t index = variable_item_get_current_value_index(item);
|
|
|
|
|
SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx);
|
|
|
|
|
|
|
|
|
|
if(subghz_txrx_hopper_get_state(subghz->txrx) == SubGhzHopperStateOFF) {
|
|
|
|
|
char text_buf[10] = {0};
|
|
|
|
|
@@ -155,10 +154,8 @@ static void subghz_scene_receiver_config_set_frequency(VariableItem* item) {
|
|
|
|
|
text_buf,
|
|
|
|
|
sizeof(text_buf),
|
|
|
|
|
"%lu.%02lu",
|
|
|
|
|
subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index) / 1000000,
|
|
|
|
|
(subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index) %
|
|
|
|
|
1000000) /
|
|
|
|
|
10000);
|
|
|
|
|
subghz_setting_get_frequency(setting, index) / 1000000,
|
|
|
|
|
(subghz_setting_get_frequency(setting, index) % 1000000) / 10000);
|
|
|
|
|
variable_item_set_current_value_text(item, text_buf);
|
|
|
|
|
|
|
|
|
|
SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx);
|
|
|
|
|
@@ -166,19 +163,17 @@ static void subghz_scene_receiver_config_set_frequency(VariableItem* item) {
|
|
|
|
|
subghz_txrx_set_preset(
|
|
|
|
|
subghz->txrx,
|
|
|
|
|
furi_string_get_cstr(preset.name),
|
|
|
|
|
subghz_setting_get_frequency(subghz_txrx_get_setting(subghz->txrx), index),
|
|
|
|
|
subghz_setting_get_frequency(setting, index),
|
|
|
|
|
preset.data,
|
|
|
|
|
preset.data_size);
|
|
|
|
|
|
|
|
|
|
preset = subghz_txrx_get_preset(subghz->txrx);
|
|
|
|
|
|
|
|
|
|
subghz->last_settings->frequency = preset.frequency;
|
|
|
|
|
subghz_setting_set_default_frequency(
|
|
|
|
|
subghz_txrx_get_setting(subghz->txrx), preset.frequency);
|
|
|
|
|
subghz_setting_set_default_frequency(setting, preset.frequency);
|
|
|
|
|
} else {
|
|
|
|
|
variable_item_set_current_value_index(
|
|
|
|
|
item,
|
|
|
|
|
subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx)));
|
|
|
|
|
item, subghz_setting_get_frequency_default_index(setting));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -202,42 +197,34 @@ static void subghz_scene_receiver_config_set_preset(VariableItem* item) {
|
|
|
|
|
static void subghz_scene_receiver_config_set_hopping_running(VariableItem* item) {
|
|
|
|
|
SubGhz* subghz = variable_item_get_context(item);
|
|
|
|
|
uint8_t index = variable_item_get_current_value_index(item);
|
|
|
|
|
SubGhzSetting* setting = subghz_txrx_get_setting(subghz->txrx);
|
|
|
|
|
VariableItem* frequency_item = (VariableItem*)scene_manager_get_scene_state(
|
|
|
|
|
subghz->scene_manager, SubGhzSceneReceiverConfig);
|
|
|
|
|
|
|
|
|
|
variable_item_set_current_value_text(item, hopping_text[index]);
|
|
|
|
|
if(hopping_value[index] == SubGhzHopperStateOFF) {
|
|
|
|
|
char text_buf[10] = {0};
|
|
|
|
|
uint32_t frequency = subghz_setting_get_default_frequency(setting);
|
|
|
|
|
snprintf(
|
|
|
|
|
text_buf,
|
|
|
|
|
sizeof(text_buf),
|
|
|
|
|
"%lu.%02lu",
|
|
|
|
|
subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)) / 1000000,
|
|
|
|
|
(subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)) %
|
|
|
|
|
1000000) /
|
|
|
|
|
10000);
|
|
|
|
|
variable_item_set_current_value_text(
|
|
|
|
|
(VariableItem*)scene_manager_get_scene_state(
|
|
|
|
|
subghz->scene_manager, SubGhzSceneReceiverConfig),
|
|
|
|
|
text_buf);
|
|
|
|
|
frequency / 1000000,
|
|
|
|
|
(frequency % 1000000) / 10000);
|
|
|
|
|
variable_item_set_current_value_text(frequency_item, text_buf);
|
|
|
|
|
SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx);
|
|
|
|
|
subghz_txrx_set_preset(
|
|
|
|
|
subghz->txrx,
|
|
|
|
|
furi_string_get_cstr(preset.name),
|
|
|
|
|
subghz_setting_get_default_frequency(subghz_txrx_get_setting(subghz->txrx)),
|
|
|
|
|
frequency,
|
|
|
|
|
preset.data,
|
|
|
|
|
preset.data_size);
|
|
|
|
|
variable_item_set_current_value_index(
|
|
|
|
|
(VariableItem*)scene_manager_get_scene_state(
|
|
|
|
|
subghz->scene_manager, SubGhzSceneReceiverConfig),
|
|
|
|
|
subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx)));
|
|
|
|
|
frequency_item, subghz_setting_get_frequency_default_index(setting));
|
|
|
|
|
} else {
|
|
|
|
|
variable_item_set_current_value_text(
|
|
|
|
|
(VariableItem*)scene_manager_get_scene_state(
|
|
|
|
|
subghz->scene_manager, SubGhzSceneReceiverConfig),
|
|
|
|
|
" -----");
|
|
|
|
|
variable_item_set_current_value_text(frequency_item, " -----");
|
|
|
|
|
variable_item_set_current_value_index(
|
|
|
|
|
(VariableItem*)scene_manager_get_scene_state(
|
|
|
|
|
subghz->scene_manager, SubGhzSceneReceiverConfig),
|
|
|
|
|
subghz_setting_get_frequency_default_index(subghz_txrx_get_setting(subghz->txrx)));
|
|
|
|
|
frequency_item, subghz_setting_get_frequency_default_index(setting));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
subghz_txrx_hopper_set_state(subghz->txrx, hopping_value[index]);
|
|
|
|
|
@@ -411,8 +398,8 @@ void subghz_scene_receiver_config_on_enter(void* context) {
|
|
|
|
|
SPEAKER_COUNT,
|
|
|
|
|
subghz_scene_receiver_config_set_speaker,
|
|
|
|
|
subghz);
|
|
|
|
|
value_index =
|
|
|
|
|
value_index_uint32(subghz_txrx_speaker_get_state(subghz->txrx), speaker_value, SPEAKER_COUNT);
|
|
|
|
|
value_index = value_index_uint32(
|
|
|
|
|
subghz_txrx_speaker_get_state(subghz->txrx), speaker_value, SPEAKER_COUNT);
|
|
|
|
|
variable_item_set_current_value_index(item, value_index);
|
|
|
|
|
variable_item_set_current_value_text(item, speaker_text[value_index]);
|
|
|
|
|
|
|
|
|
|
|