CLI: Fix crash with ir universal command --nobuild

This commit is contained in:
WillyJL
2025-05-08 07:08:27 +01:00
parent cf71de0a83
commit 4868e6e089
6 changed files with 11 additions and 5 deletions
+1
View File
@@ -7,6 +7,7 @@
### Fixed:
- CLI:
- Fix crash when opening CLI/qFlipper/WebUpdater if some unexpected files are present in `/ext/apps_data/cli/plugins` (by @WillyJL)
- FIx crash with `ir universal` command (by @WillyJL)
- OFW: Fix subghz chat command (by @GameLord2011)
- Sub-GHz:
- UL: Fix CAME 24bit decoder (by @xMasterX)
@@ -95,7 +95,8 @@ void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const
InfraredErrorCode infrared_brute_force_calculate_messages(
InfraredBruteForce* brute_force,
bool auto_detect_buttons) {
bool auto_detect_buttons,
bool ignore_unknown_buttons) {
furi_check(brute_force);
furi_assert(!brute_force->is_started);
furi_assert(brute_force->db_filename);
@@ -154,6 +155,8 @@ InfraredErrorCode infrared_brute_force_calculate_messages(
auto_detect_button_index++,
furi_string_get_cstr(signal_name));
record = InfraredBruteForceRecordDict_get(brute_force->records, signal_name);
} else if(ignore_unknown_buttons) {
continue;
} else {
FURI_LOG_E(TAG, "Unknown signal name: %s", furi_string_get_cstr(signal_name));
furi_crash("Unknown signal name");
@@ -52,7 +52,8 @@ void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const
*/
InfraredErrorCode infrared_brute_force_calculate_messages(
InfraredBruteForce* brute_force,
bool auto_detect_buttons);
bool auto_detect_buttons,
bool ignore_unknown_buttons);
/**
* @brief Start transmitting signals from a category stored in an InfraredBruteForce's instance dictionary.
+2 -1
View File
@@ -470,7 +470,8 @@ static void infrared_cli_brute_force_signals(
printf("Missing signal name.\r\n");
break;
}
if(infrared_brute_force_calculate_messages(brute_force, false) != InfraredErrorCodeNone) {
if(infrared_brute_force_calculate_messages(brute_force, false, true) !=
InfraredErrorCodeNone) {
printf("Invalid remote name.\r\n");
break;
}
@@ -50,7 +50,7 @@ static void infrared_scene_universal_common_hide_popup(InfraredApp* infrared) {
static int32_t infrared_scene_universal_common_task_callback(void* context) {
InfraredApp* infrared = context;
const InfraredErrorCode error =
infrared_brute_force_calculate_messages(infrared->brute_force, false);
infrared_brute_force_calculate_messages(infrared->brute_force, false, false);
view_dispatcher_send_custom_event(
infrared->view_dispatcher,
infrared_custom_event_pack(InfraredCustomEventTypeTaskFinished, 0));
@@ -16,7 +16,7 @@ static int32_t infrared_scene_universal_from_file_task_callback(void* context) {
ButtonMenu* button_menu = infrared->button_menu;
InfraredBruteForce* brute_force = infrared->brute_force;
const InfraredErrorCode error =
infrared_brute_force_calculate_messages(infrared->brute_force, true);
infrared_brute_force_calculate_messages(infrared->brute_force, true, false);
if(!INFRARED_ERROR_PRESENT(error)) {
// add btns