Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorあく <alleteam@gmail.com>2021-06-30 00:19:20 +0300
committerGitHub <noreply@github.com>2021-06-30 00:19:20 +0300
commite8211226f3a4f7609143ef02d6ef684b9fb41f00 (patch)
tree039c38f63468a9db444598304604bea1f4263279 /applications/subghz/subghz.c
parentdce3665f63be6ce77691c00fe8e7ca59d3ecddf9 (diff)
[FL-1496] SubGhz: Library, Cli, Application (#543)
* ApiHal: set frequency and path in one go. Drivers: proper frequency registers calculation for CC1101. Update subghz cli to match new api. * SubGhz: preparation for parsers porting, tim2 sharing * ApiHal: add interrupts API, move all TIM2 related things there. * SubGhz: refactor protocol lib and add keeloq. * SubGhz: proper init_set for keeloq manafacture key * SubGhz: port more protocols to lib * SubGhz: load keeloq manufacture keys from sd card (if any). * SubGhz: format output from protocols. * SubGhz: use default frequency in subghz_rx cli command. * SubGhz: keeloq key types * Fix compillation error when internal storage disabled * SubGhz: minor cleanup * SubGhz: properly handle timeout and reset signal in subghz_rx * SubGhz: Worker, Capture View. Furi: emulate thread join. * SubGhz: free strings on keeloq key load end * SubGhz: update protocols reporting API, app refactoring and capture view, update API HAL usage. * SubGhz: update dump formatting * ApiHal: backport subghz preset to F5 * ApiHal: backport subghz frequency range to F5
Diffstat (limited to 'applications/subghz/subghz.c')
-rw-r--r--applications/subghz/subghz.c111
1 files changed, 38 insertions, 73 deletions
diff --git a/applications/subghz/subghz.c b/applications/subghz/subghz.c
index 607cda76..6190a72b 100644
--- a/applications/subghz/subghz.c
+++ b/applications/subghz/subghz.c
@@ -1,83 +1,33 @@
#include "subghz_i.h"
-const SubGhzFrequency subghz_frequencies[] = {
- /* 301 */
- {
- .frequency = 301000000,
- .path = ApiHalSubGhzPath315,
- },
- /* 315 */
- {
- .frequency = 315000000,
- .path = ApiHalSubGhzPath315,
- },
- /* 346 - 385 */
- {
- .frequency = 346000000,
- .path = ApiHalSubGhzPath315,
- },
- {
- .frequency = 385000000,
- .path = ApiHalSubGhzPath315,
- },
- /* LPD433 first, mid, last channels */
- {
- .frequency = 433075000,
- .path = ApiHalSubGhzPath433,
- },
- {
- .frequency = 433920000,
- .path = ApiHalSubGhzPath433,
- },
- {
- .frequency = 434775000,
- .path = ApiHalSubGhzPath433,
- },
- /* 438.9 - 781 */
- {
- .frequency = 438900000,
- .path = ApiHalSubGhzPath433,
- },
- {
- .frequency = 463000000,
- .path = ApiHalSubGhzPath433,
- },
- {
- .frequency = 781000000,
- .path = ApiHalSubGhzPath868,
- },
- /* 868.35 */
- {
- .frequency = 868350000,
- .path = ApiHalSubGhzPath868,
- },
- /* 915 */
- {
- .frequency = 915000000,
- .path = ApiHalSubGhzPath868,
- },
- /* 925 */
- {
- .frequency = 925000000,
- .path = ApiHalSubGhzPath868,
- },
+const uint32_t subghz_frequencies[] = {
+ /* 300 - 348 */
+ 300000000,
+ 315000000,
+ 348000000,
+ /* 387 - 464 */
+ 387000000,
+ 433075000, /* LPD433 first */
+ 433920000, /* LPD433 mid */
+ 434775000, /* LPD433 last channels */
+ 438900000,
+ 464000000,
+ /* 779 - 928 */
+ 779000000,
+ 868350000,
+ 915000000,
+ 925000000,
+ 928000000,
};
-const uint32_t subghz_frequencies_count = sizeof(subghz_frequencies) / sizeof(SubGhzFrequency);
+const uint32_t subghz_frequencies_count = sizeof(subghz_frequencies) / sizeof(uint32_t);
const uint32_t subghz_frequencies_433_92 = 5;
void subghz_menu_callback(void* context, uint32_t index) {
furi_assert(context);
-
SubGhz* subghz = context;
- if(index == 0) {
- view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewTestBasic);
- } else if(index == 1) {
- view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewTestPacket);
- } else if(index == 2) {
- view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewStatic);
- }
+ view_dispatcher_switch_to_view(subghz->view_dispatcher, index);
}
uint32_t subghz_exit(void* context) {
@@ -98,14 +48,25 @@ SubGhz* subghz_alloc() {
// Menu
subghz->submenu = submenu_alloc();
- submenu_add_item(subghz->submenu, "Basic Test", 0, subghz_menu_callback, subghz);
- submenu_add_item(subghz->submenu, "Packet Test", 1, subghz_menu_callback, subghz);
- submenu_add_item(subghz->submenu, "Static Code", 2, subghz_menu_callback, subghz);
+ submenu_add_item(subghz->submenu, "Capture", SubGhzViewCapture, subghz_menu_callback, subghz);
+ submenu_add_item(
+ subghz->submenu, "Basic Test", SubGhzViewTestBasic, subghz_menu_callback, subghz);
+ submenu_add_item(
+ subghz->submenu, "Packet Test", SubGhzViewTestPacket, subghz_menu_callback, subghz);
+ submenu_add_item(
+ subghz->submenu, "Static Code", SubGhzViewStatic, subghz_menu_callback, subghz);
View* submenu_view = submenu_get_view(subghz->submenu);
view_set_previous_callback(submenu_view, subghz_exit);
view_dispatcher_add_view(subghz->view_dispatcher, SubGhzViewMenu, submenu_view);
+ // Capture
+ subghz->subghz_capture = subghz_capture_alloc();
+ view_dispatcher_add_view(
+ subghz->view_dispatcher,
+ SubGhzViewCapture,
+ subghz_capture_get_view(subghz->subghz_capture));
+
// Basic Test Module
subghz->subghz_test_basic = subghz_test_basic_alloc();
view_dispatcher_add_view(
@@ -150,6 +111,10 @@ void subghz_free(SubGhz* subghz) {
view_dispatcher_remove_view(subghz->view_dispatcher, SubGhzViewMenu);
submenu_free(subghz->submenu);
+ // Capture
+ view_dispatcher_remove_view(subghz->view_dispatcher, SubGhzViewCapture);
+ subghz_capture_free(subghz->subghz_capture);
+
// View Dispatcher
view_dispatcher_free(subghz->view_dispatcher);