Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild

This commit is contained in:
WillyJL
2025-06-29 01:28:52 +01:00
14 changed files with 36 additions and 23 deletions

View File

@@ -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)

View File

@@ -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;

View File

@@ -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]);

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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) {

View File

@@ -370,4 +370,5 @@ const SubGhzProtocol subghz_protocol_honeywell = {
.encoder = &subghz_protocol_honeywell_encoder,
.decoder = &subghz_protocol_honeywell_decoder,
.filter = SubGhzProtocolFilter_Sensors,
};

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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,
};
/**

View File

@@ -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),