-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
…d deleting stored signals and rename file in SubGHz app (#714) * [FL-1811] FuriHal: move core2 startup to hal init stage, prevent working with flash controller till core2 startup finish. #704 * SubGhz: fix GO0 low on last hop transmission, decreased DutyCycle in tests * SubGhz: test_static fix max 5 sec in transmission mode, DutyCycle <23% * [FL-1815] SubGhz: prohibiting transmission if it is not within the permitted range for the given region * SubGhz: fix F7 furi-hal-subghz * SubGhz: fix logic working tests * SubGhz: fix princeton encoder for test * SubGhz: add log princeton encoder * [FL-1856] Subghz: fix output a double error if the file cannot be opened * [FL-1851] SubGhz: add deleting Stored Signals in SubGHz App * SubGhz: add rename file SubGhz app * SubGhz: update stats message in princeton * SubGhz: correct spelling * SubGhz: fix FM config, add hardware signal processing less than 16 μs, add added filter for processing short signals * SubGhz: add Scher-Khan MAGICAR Dinamic protocol * SubGhz: sync fury targets Co-authored-by: あく <[email protected]>
- Loading branch information
Showing
32 changed files
with
1,109 additions
and
150 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#include "../subghz_i.h" | ||
|
||
typedef enum { | ||
SubGhzSceneDeleteInfoCustomEventDelete, | ||
} SubGhzSceneDeleteInfoCustomEvent; | ||
|
||
void subghz_scene_delete_callback(GuiButtonType result, InputType type, void* context) { | ||
furi_assert(context); | ||
SubGhz* subghz = context; | ||
if((result == GuiButtonTypeRight) && (type == InputTypeShort)) { | ||
view_dispatcher_send_custom_event( | ||
subghz->view_dispatcher, SubGhzSceneDeleteInfoCustomEventDelete); | ||
} | ||
} | ||
|
||
void subghz_scene_delete_on_enter(void* context) { | ||
SubGhz* subghz = context; | ||
|
||
char buffer_str[16]; | ||
snprintf( | ||
buffer_str, | ||
sizeof(buffer_str), | ||
"%03ld.%02ld", | ||
subghz->txrx->frequency / 1000000 % 1000, | ||
subghz->txrx->frequency / 10000 % 100); | ||
widget_add_string_element( | ||
subghz->widget, 78, 0, AlignLeft, AlignTop, FontSecondary, buffer_str); | ||
if(subghz->txrx->preset == FuriHalSubGhzPresetOok650Async || | ||
subghz->txrx->preset == FuriHalSubGhzPresetOok270Async) { | ||
snprintf(buffer_str, sizeof(buffer_str), "AM"); | ||
} else if(subghz->txrx->preset == FuriHalSubGhzPreset2FSKAsync) { | ||
snprintf(buffer_str, sizeof(buffer_str), "FM"); | ||
} else { | ||
furi_crash(NULL); | ||
} | ||
widget_add_string_element( | ||
subghz->widget, 113, 0, AlignLeft, AlignTop, FontSecondary, buffer_str); | ||
string_t text; | ||
string_init(text); | ||
subghz->txrx->protocol_result->to_string(subghz->txrx->protocol_result, text); | ||
widget_add_string_multiline_element( | ||
subghz->widget, 0, 0, AlignLeft, AlignTop, FontSecondary, string_get_cstr(text)); | ||
string_clear(text); | ||
|
||
widget_add_button_element( | ||
subghz->widget, GuiButtonTypeRight, "Delete", subghz_scene_delete_callback, subghz); | ||
|
||
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewWidget); | ||
} | ||
|
||
bool subghz_scene_delete_on_event(void* context, SceneManagerEvent event) { | ||
SubGhz* subghz = context; | ||
if(event.type == SceneManagerEventTypeCustom) { | ||
if(event.event == SubGhzSceneDeleteInfoCustomEventDelete) { | ||
memcpy(subghz->file_name_tmp, subghz->file_name, strlen(subghz->file_name)); | ||
if(subghz_delete_file(subghz)) { | ||
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneDeleteSuccess); | ||
} else { | ||
scene_manager_search_and_switch_to_previous_scene( | ||
subghz->scene_manager, SubGhzSceneStart); | ||
} | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
void subghz_scene_delete_on_exit(void* context) { | ||
SubGhz* subghz = context; | ||
widget_clear(subghz->widget); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#include "../subghz_i.h" | ||
|
||
#define SCENE_DELETE_SUCCESS_CUSTOM_EVENT (0UL) | ||
|
||
void subghz_scene_delete_success_popup_callback(void* context) { | ||
SubGhz* subghz = context; | ||
view_dispatcher_send_custom_event(subghz->view_dispatcher, SCENE_DELETE_SUCCESS_CUSTOM_EVENT); | ||
} | ||
|
||
void subghz_scene_delete_success_on_enter(void* context) { | ||
SubGhz* subghz = context; | ||
|
||
// Setup view | ||
Popup* popup = subghz->popup; | ||
popup_set_icon(popup, 0, 2, &I_DolphinMafia_115x62); | ||
popup_set_header(popup, "Deleted", 83, 19, AlignLeft, AlignBottom); | ||
popup_set_timeout(popup, 1500); | ||
popup_set_context(popup, subghz); | ||
popup_set_callback(popup, subghz_scene_delete_success_popup_callback); | ||
popup_enable_timeout(popup); | ||
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewPopup); | ||
} | ||
|
||
bool subghz_scene_delete_success_on_event(void* context, SceneManagerEvent event) { | ||
SubGhz* subghz = context; | ||
|
||
if(event.type == SceneManagerEventTypeCustom) { | ||
if(event.event == SCENE_DELETE_SUCCESS_CUSTOM_EVENT) { | ||
return scene_manager_search_and_switch_to_previous_scene( | ||
subghz->scene_manager, SubGhzSceneStart); | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
void subghz_scene_delete_success_on_exit(void* context) { | ||
SubGhz* subghz = context; | ||
|
||
// Clear view | ||
Popup* popup = subghz->popup; | ||
popup_set_header(popup, NULL, 0, 0, AlignCenter, AlignBottom); | ||
popup_set_text(popup, NULL, 0, 0, AlignCenter, AlignTop); | ||
popup_set_icon(popup, 0, 0, NULL); | ||
popup_set_callback(popup, NULL); | ||
popup_set_context(popup, NULL); | ||
popup_set_timeout(popup, 0); | ||
popup_disable_timeout(popup); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#include "../subghz_i.h" | ||
|
||
enum SubmenuIndex { | ||
SubmenuIndexEmulate, | ||
SubmenuIndexEdit, | ||
SubmenuIndexDelete, | ||
}; | ||
|
||
void subghz_scene_saved_menu_submenu_callback(void* context, uint32_t index) { | ||
SubGhz* subghz = context; | ||
view_dispatcher_send_custom_event(subghz->view_dispatcher, index); | ||
} | ||
|
||
void subghz_scene_saved_menu_on_enter(void* context) { | ||
SubGhz* subghz = context; | ||
submenu_add_item( | ||
subghz->submenu, | ||
"Emulate", | ||
SubmenuIndexEmulate, | ||
subghz_scene_saved_menu_submenu_callback, | ||
subghz); | ||
submenu_add_item( | ||
subghz->submenu, | ||
"Edit name", | ||
SubmenuIndexEdit, | ||
subghz_scene_saved_menu_submenu_callback, | ||
subghz); | ||
submenu_add_item( | ||
subghz->submenu, | ||
"Delete", | ||
SubmenuIndexDelete, | ||
subghz_scene_saved_menu_submenu_callback, | ||
subghz); | ||
|
||
submenu_set_selected_item( | ||
subghz->submenu, | ||
scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneSavedMenu)); | ||
|
||
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewMenu); | ||
} | ||
|
||
bool subghz_scene_saved_menu_on_event(void* context, SceneManagerEvent event) { | ||
SubGhz* subghz = context; | ||
|
||
if(event.type == SceneManagerEventTypeCustom) { | ||
if(event.event == SubmenuIndexEmulate) { | ||
scene_manager_set_scene_state( | ||
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexEmulate); | ||
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneTransmitter); | ||
return true; | ||
} else if(event.event == SubmenuIndexDelete) { | ||
scene_manager_set_scene_state( | ||
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexDelete); | ||
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneDelete); | ||
return true; | ||
} else if(event.event == SubmenuIndexEdit) { | ||
scene_manager_set_scene_state( | ||
subghz->scene_manager, SubGhzSceneSavedMenu, SubmenuIndexEdit); | ||
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName); | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
void subghz_scene_saved_menu_on_exit(void* context) { | ||
SubGhz* subghz = context; | ||
submenu_clean(subghz->submenu); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#include "../subghz_i.h" | ||
|
||
#define SCENE_NO_MAN_CUSTOM_EVENT (11UL) | ||
|
||
void subghz_scene_show_only_rx_popup_callback(void* context) { | ||
SubGhz* subghz = context; | ||
view_dispatcher_send_custom_event(subghz->view_dispatcher, SCENE_NO_MAN_CUSTOM_EVENT); | ||
} | ||
|
||
const void subghz_scene_show_only_rx_on_enter(void* context) { | ||
SubGhz* subghz = context; | ||
|
||
// Setup view | ||
Popup* popup = subghz->popup; | ||
popup_set_icon(popup, 67, 12, &I_DolphinFirstStart7_61x51); | ||
popup_set_text( | ||
popup, | ||
"This frequency can\nonly be used for RX\nin your region", | ||
38, | ||
40, | ||
AlignCenter, | ||
AlignBottom); | ||
popup_set_timeout(popup, 1500); | ||
popup_set_context(popup, subghz); | ||
popup_set_callback(popup, subghz_scene_show_only_rx_popup_callback); | ||
popup_enable_timeout(popup); | ||
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewPopup); | ||
} | ||
|
||
const bool subghz_scene_show_only_rx_on_event(void* context, SceneManagerEvent event) { | ||
SubGhz* subghz = context; | ||
if(event.type == SceneManagerEventTypeCustom) { | ||
if(event.event == SCENE_NO_MAN_CUSTOM_EVENT) { | ||
scene_manager_previous_scene(subghz->scene_manager); | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
const void subghz_scene_show_only_rx_on_exit(void* context) { | ||
SubGhz* subghz = context; | ||
|
||
// Clear view | ||
Popup* popup = subghz->popup; | ||
popup_set_header(popup, NULL, 0, 0, AlignCenter, AlignBottom); | ||
popup_set_text(popup, NULL, 0, 0, AlignCenter, AlignTop); | ||
popup_set_icon(popup, 0, 0, NULL); | ||
popup_set_callback(popup, NULL); | ||
popup_set_context(popup, NULL); | ||
popup_set_timeout(popup, 0); | ||
popup_disable_timeout(popup); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.