diff --git a/CHANGELOG.md b/CHANGELOG.md index c7f02d282..70a318584 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,7 +42,10 @@ - Furi: Re-enabled file paths in furi_check crash messages (by @WillyJL) - OFW: Infrared: Add text scroll to remote buttons (by @956MB) - Sub-GHz: - - UL: Rename and extend Alarms ignore option with Hollarm & GangQi (by @xMasterX) + - UL: Rename and extend Alarms, Sensors, Cars ignore options (by @xMasterX) + - Alarms: Hollarm, GangQi + - Cars: Kia, Starline, ScherKhan + - Sensors: Magellan, Honeywell, Honeywell WDB (doorbells), Legrand (doorbells), Feron (RGB lights) - UL: Add 462.750 MHz to default subghz freqs list (by @xMasterX) - UL: V2 Phoenix show counter value (by @xMasterX) @@ -58,10 +61,11 @@ - UL: Fix clipper date timestamp (by @luu176) - BadKB: Fix key combos main keys being case sensitive (by @WillyJL) - Sub-GHz: - - Fix frequency analyzer deadlock when holding Ok (by @WillyJL) + - Fix possible frequency analyzer deadlock when holding Ok (by @WillyJL) - UL: Fix CAME 24bit decoder (by @xMasterX) - UL: Tune holtek ht12x to decode holtek only and not conflict with came 12bit (by @xMasterX) - UL: Fix Rename scene bug, that was replacing file name with random name when Rename is opened then closed then opened again (by @xMasterX) +- RFID: Fix strange bug with LCD backlight going off after doing "Write" (by @xMasterX) ### Removed: - Sub-GHz: Removed Weather Station, POCSAG and TPMS protocols from main app, now found in external apps (by @WillyJL) diff --git a/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c b/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c index f490bdf7f..7c9c5192d 100644 --- a/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c +++ b/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c @@ -71,7 +71,6 @@ bool subghz_scene_frequency_analyzer_on_event(void* context, SceneManagerEvent e } else if(event.event == SubGhzCustomEventViewFreqAnalOkLong) { // Don't need to save, we already saved on short event (and on exit event too) subghz_rx_key_state_set(subghz, SubGhzRxKeyStateIDLE); - scene_manager_set_scene_state(subghz->scene_manager, SubGhzSceneStart, 10); scene_manager_previous_scene(subghz->scene_manager); // Stops the worker scene_manager_next_scene(subghz->scene_manager, SubGhzSceneReceiver); return true; diff --git a/applications/main/subghz/scenes/subghz_scene_receiver_config.c b/applications/main/subghz/scenes/subghz_scene_receiver_config.c index 478c1d931..35e1a809b 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver_config.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver_config.c @@ -14,9 +14,9 @@ enum SubGhzSettingIndex { SubGhzSettingIndexRemoveDuplicates, SubGhzSettingIndexDeleteOldSignals, SubGhzSettingIndexAutosave, - SubGhzSettingIndexIgnoreStarline, + SubGhzSettingIndexIgnoreCars, SubGhzSettingIndexIgnoreAlarms, - SubGhzSettingIndexIgnoreMagellan, + SubGhzSettingIndexIgnoreSensors, SubGhzSettingIndexIgnorePrinceton, SubGhzSettingIndexIgnoreNiceFlorS, // SubGhzSettingIndexIgnoreWeather, @@ -411,16 +411,16 @@ static inline bool subghz_scene_receiver_config_ignore_filter_get_index( return READ_BIT(filter, flag) > 0; } -static void subghz_scene_receiver_config_set_starline(VariableItem* item) { - subghz_scene_receiver_config_set_ignore_filter(item, SubGhzProtocolFilter_StarLine); +static void subghz_scene_receiver_config_set_cars(VariableItem* item) { + subghz_scene_receiver_config_set_ignore_filter(item, SubGhzProtocolFilter_Cars); } -static void subghz_scene_receiver_config_set_auto_alarms(VariableItem* item) { +static void subghz_scene_receiver_config_set_alarms(VariableItem* item) { subghz_scene_receiver_config_set_ignore_filter(item, SubGhzProtocolFilter_Alarms); } -static void subghz_scene_receiver_config_set_magellan(VariableItem* item) { - subghz_scene_receiver_config_set_ignore_filter(item, SubGhzProtocolFilter_Magellan); +static void subghz_scene_receiver_config_set_Sensors(VariableItem* item) { + subghz_scene_receiver_config_set_ignore_filter(item, SubGhzProtocolFilter_Sensors); } static void subghz_scene_receiver_config_set_princeton(VariableItem* item) { @@ -607,13 +607,13 @@ void subghz_scene_receiver_config_on_enter(void* context) { item = variable_item_list_add( subghz->variable_item_list, - "Ignore Starline", + "Ignore Cars", COMBO_BOX_COUNT, - subghz_scene_receiver_config_set_starline, + subghz_scene_receiver_config_set_cars, subghz); value_index = subghz_scene_receiver_config_ignore_filter_get_index( - subghz->ignore_filter, SubGhzProtocolFilter_StarLine); + subghz->ignore_filter, SubGhzProtocolFilter_Cars); variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, combobox_text[value_index]); @@ -621,7 +621,7 @@ void subghz_scene_receiver_config_on_enter(void* context) { subghz->variable_item_list, "Ignore Alarms", COMBO_BOX_COUNT, - subghz_scene_receiver_config_set_auto_alarms, + subghz_scene_receiver_config_set_alarms, subghz); value_index = subghz_scene_receiver_config_ignore_filter_get_index( @@ -631,13 +631,13 @@ void subghz_scene_receiver_config_on_enter(void* context) { item = variable_item_list_add( subghz->variable_item_list, - "Ignore Magellan", + "Ignore Sensors", COMBO_BOX_COUNT, - subghz_scene_receiver_config_set_magellan, + subghz_scene_receiver_config_set_sensors, subghz); value_index = subghz_scene_receiver_config_ignore_filter_get_index( - subghz->ignore_filter, SubGhzProtocolFilter_Magellan); + subghz->ignore_filter, SubGhzProtocolFilter_Sensors); variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, combobox_text[value_index]); diff --git a/applications/main/subghz/views/subghz_frequency_analyzer.c b/applications/main/subghz/views/subghz_frequency_analyzer.c index abbf511e3..49eabc94b 100644 --- a/applications/main/subghz/views/subghz_frequency_analyzer.c +++ b/applications/main/subghz/views/subghz_frequency_analyzer.c @@ -299,6 +299,7 @@ bool subghz_frequency_analyzer_input(InputEvent* event, void* context) { // If it was a long press also send a second event if(event->type == InputTypeLong && frequency_to_save > 0) { // Worker stopped on app thread instead of GUI thread when switching scene in callback + instance->callback(SubGhzCustomEventViewFreqAnalOkLong, instance->context); } } diff --git a/lib/lfrfid/lfrfid_worker_modes.c b/lib/lfrfid/lfrfid_worker_modes.c index 645d2bd82..036e9cf24 100644 --- a/lib/lfrfid/lfrfid_worker_modes.c +++ b/lib/lfrfid/lfrfid_worker_modes.c @@ -523,6 +523,7 @@ static void lfrfid_worker_mode_write_process(LFRFIDWorker* worker) { while(!lfrfid_worker_check_for_stop(worker)) { FURI_LOG_D(TAG, "Data write"); + furi_delay_ms(5); // halt uint16_t skips = 0; for(size_t i = 0; i < LFRFIDWriteTypeMax; i++) { memset(request, 0, sizeof(LFRFIDWriteRequest)); @@ -626,6 +627,7 @@ static void lfrfid_worker_mode_write_and_set_pass_process(LFRFIDWorker* worker) if(can_be_written) { while(!lfrfid_worker_check_for_stop(worker)) { FURI_LOG_D(TAG, "Data write with pass"); + furi_delay_ms(5); // halt LfRfid* app = worker->cb_ctx; uint32_t pass = bit_lib_bytes_to_num_be(app->password, 4); diff --git a/lib/subghz/protocols/feron.c b/lib/subghz/protocols/feron.c index 7e5f12bea..2d0e726a8 100644 --- a/lib/subghz/protocols/feron.c +++ b/lib/subghz/protocols/feron.c @@ -66,6 +66,8 @@ const SubGhzProtocol subghz_protocol_feron = { .decoder = &subghz_protocol_feron_decoder, .encoder = &subghz_protocol_feron_encoder, + + .filter = SubGhzProtocolFilter_Sensors, }; void* subghz_protocol_encoder_feron_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/honeywell.c b/lib/subghz/protocols/honeywell.c index 01949b7ea..8b783c1fd 100644 --- a/lib/subghz/protocols/honeywell.c +++ b/lib/subghz/protocols/honeywell.c @@ -370,4 +370,5 @@ const SubGhzProtocol subghz_protocol_honeywell = { .encoder = &subghz_protocol_honeywell_encoder, .decoder = &subghz_protocol_honeywell_decoder, + .filter = SubGhzProtocolFilter_Sensors, }; diff --git a/lib/subghz/protocols/honeywell_wdb.c b/lib/subghz/protocols/honeywell_wdb.c index 7d7678266..369a1e611 100644 --- a/lib/subghz/protocols/honeywell_wdb.c +++ b/lib/subghz/protocols/honeywell_wdb.c @@ -80,6 +80,8 @@ const SubGhzProtocol subghz_protocol_honeywell_wdb = { .decoder = &subghz_protocol_honeywell_wdb_decoder, .encoder = &subghz_protocol_honeywell_wdb_encoder, + + .filter = SubGhzProtocolFilter_Sensors, }; void* subghz_protocol_encoder_honeywell_wdb_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/kia.c b/lib/subghz/protocols/kia.c index 6d8daf2f4..9bcbcb444 100644 --- a/lib/subghz/protocols/kia.c +++ b/lib/subghz/protocols/kia.c @@ -70,7 +70,7 @@ const SubGhzProtocol subghz_protocol_kia = { .decoder = &subghz_protocol_kia_decoder, .encoder = &subghz_protocol_kia_encoder, - .filter = SubGhzProtocolFilter_Alarms, + .filter = SubGhzProtocolFilter_Cars, }; void* subghz_protocol_decoder_kia_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/legrand.c b/lib/subghz/protocols/legrand.c index 8ad070798..339f2efb0 100644 --- a/lib/subghz/protocols/legrand.c +++ b/lib/subghz/protocols/legrand.c @@ -73,6 +73,8 @@ const SubGhzProtocol subghz_protocol_legrand = { .decoder = &subghz_protocol_legrand_decoder, .encoder = &subghz_protocol_legrand_encoder, + + .filter = SubGhzProtocolFilter_Sensors, }; void* subghz_protocol_encoder_legrand_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/magellan.c b/lib/subghz/protocols/magellan.c index 007c84dc7..ae32135f3 100644 --- a/lib/subghz/protocols/magellan.c +++ b/lib/subghz/protocols/magellan.c @@ -71,7 +71,7 @@ const SubGhzProtocol subghz_protocol_magellan = { .decoder = &subghz_protocol_magellan_decoder, .encoder = &subghz_protocol_magellan_encoder, - .filter = SubGhzProtocolFilter_Magellan, + .filter = SubGhzProtocolFilter_Sensors, }; void* subghz_protocol_encoder_magellan_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/scher_khan.c b/lib/subghz/protocols/scher_khan.c index 6cd44f2ab..a1f08f8a2 100644 --- a/lib/subghz/protocols/scher_khan.c +++ b/lib/subghz/protocols/scher_khan.c @@ -77,7 +77,7 @@ const SubGhzProtocol subghz_protocol_scher_khan = { .decoder = &subghz_protocol_scher_khan_decoder, .encoder = &subghz_protocol_scher_khan_encoder, - .filter = SubGhzProtocolFilter_Alarms, + .filter = SubGhzProtocolFilter_Cars, }; void* subghz_protocol_decoder_scher_khan_alloc(SubGhzEnvironment* environment) { diff --git a/lib/subghz/protocols/star_line.c b/lib/subghz/protocols/star_line.c index a2efefeb6..cae4bb2f4 100644 --- a/lib/subghz/protocols/star_line.c +++ b/lib/subghz/protocols/star_line.c @@ -86,7 +86,7 @@ const SubGhzProtocol subghz_protocol_star_line = { .decoder = &subghz_protocol_star_line_decoder, .encoder = &subghz_protocol_star_line_encoder, - .filter = SubGhzProtocolFilter_StarLine, + .filter = SubGhzProtocolFilter_Cars, }; /** diff --git a/lib/subghz/types.h b/lib/subghz/types.h index d14aa45c4..9eb1c8c70 100644 --- a/lib/subghz/types.h +++ b/lib/subghz/types.h @@ -137,9 +137,9 @@ typedef enum { } SubGhzProtocolFlag; typedef enum { - SubGhzProtocolFilter_StarLine = (1 << 0), + SubGhzProtocolFilter_Cars = (1 << 0), SubGhzProtocolFilter_Alarms = (1 << 1), - SubGhzProtocolFilter_Magellan = (1 << 2), + SubGhzProtocolFilter_Sensors = (1 << 2), SubGhzProtocolFilter_Princeton = (1 << 3), SubGhzProtocolFilter_NiceFlorS = (1 << 4), SubGhzProtocolFilter_Weather = (1 << 5),