mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -370,4 +370,5 @@ const SubGhzProtocol subghz_protocol_honeywell = {
|
||||
.encoder = &subghz_protocol_honeywell_encoder,
|
||||
.decoder = &subghz_protocol_honeywell_decoder,
|
||||
|
||||
.filter = SubGhzProtocolFilter_Sensors,
|
||||
};
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user