Explorar o código

Revert "upd rfid freq detector"

This reverts commit ec136a9f6133b6e9bdb1ba33c147805330ee88d6.
MX %!s(int64=2) %!d(string=hai) anos
pai
achega
211f10de6f

+ 2 - 2
base_pack/nfc_rfid_detector/application.fam

@@ -1,13 +1,13 @@
 App(
     appid="nfc_rfid_detector",
-    name="RFID detector",
+    name="NFC/RFID detector",
     apptype=FlipperAppType.EXTERNAL,
     targets=["f7"],
     entry_point="nfc_rfid_detector_app",
     requires=["gui"],
     stack_size=4 * 1024,
     fap_description="Identify the reader type: NFC (13 MHz) and/or RFID (125 KHz).",
-    fap_version="1.1",
+    fap_version="1.0",
     fap_icon="nfc_rfid_detector_10px.png",
     fap_category="Tools",
     fap_icon_assets="images",

+ 1 - 1
base_pack/nfc_rfid_detector/helpers/nfc_rfid_detector_types.h

@@ -5,7 +5,7 @@
 
 #define NFC_RFID_DETECTOR_VERSION_APP "0.1"
 #define NFC_RFID_DETECTOR_DEVELOPED "SkorP"
-#define NFC_RFID_DETECTOR_GITHUB "https://github.com/flipperdevices/flipperzero-good-faps"
+#define NFC_RFID_DETECTOR_GITHUB "https://github.com/flipperdevices/flipperzero-firmware"
 
 typedef enum {
     NfcRfidDetectorViewVariableItemList,

+ 1 - 1
base_pack/nfc_rfid_detector/nfc_rfid_detector_app.c

@@ -62,7 +62,7 @@ NfcRfidDetectorApp* nfc_rfid_detector_app_alloc() {
         NfcRfidDetectorViewFieldPresence,
         nfc_rfid_detector_view_field_presence_get_view(app->nfc_rfid_detector_field_presence));
 
-    scene_manager_next_scene(app->scene_manager, NfcRfidDetectorSceneFieldPresence);
+    scene_manager_next_scene(app->scene_manager, NfcRfidDetectorSceneStart);
 
     return app;
 }

+ 3 - 6
base_pack/nfc_rfid_detector/nfc_rfid_detector_app_i.c

@@ -11,7 +11,7 @@ void nfc_rfid_detector_app_field_presence_start(NfcRfidDetectorApp* app) {
     furi_hal_rfid_field_detect_start();
 
     // start the field presence nfc detection
-    furi_hal_nfc_acquire();
+    furi_hal_nfc_exit_sleep();
     furi_hal_nfc_field_detect_start();
 }
 
@@ -22,17 +22,14 @@ void nfc_rfid_detector_app_field_presence_stop(NfcRfidDetectorApp* app) {
     furi_hal_rfid_field_detect_stop();
 
     // stop the field presence nfc detection
-    furi_hal_nfc_field_detect_stop();
-    furi_hal_nfc_release();
+    furi_hal_nfc_start_sleep();
 }
 
 bool nfc_rfid_detector_app_field_presence_is_nfc(NfcRfidDetectorApp* app) {
     furi_assert(app);
 
     // check if the field presence is nfc
-    bool is_present = furi_hal_nfc_field_is_present();
-
-    return is_present;
+    return furi_hal_nfc_field_is_present();
 }
 
 bool nfc_rfid_detector_app_field_presence_is_rfid(NfcRfidDetectorApp* app, uint32_t* frequency) {

+ 69 - 0
base_pack/nfc_rfid_detector/scenes/nfc_rfid_detector_scene_about.c

@@ -0,0 +1,69 @@
+#include "../nfc_rfid_detector_app_i.h"
+
+void nfc_rfid_detector_scene_about_widget_callback(
+    GuiButtonType result,
+    InputType type,
+    void* context) {
+    NfcRfidDetectorApp* app = context;
+    if(type == InputTypeShort) {
+        view_dispatcher_send_custom_event(app->view_dispatcher, result);
+    }
+}
+
+void nfc_rfid_detector_scene_about_on_enter(void* context) {
+    NfcRfidDetectorApp* app = context;
+
+    FuriString* temp_str;
+    temp_str = furi_string_alloc();
+    furi_string_printf(temp_str, "\e#%s\n", "Information");
+
+    furi_string_cat_printf(temp_str, "Version: %s\n", NFC_RFID_DETECTOR_VERSION_APP);
+    furi_string_cat_printf(temp_str, "Developed by: %s\n", NFC_RFID_DETECTOR_DEVELOPED);
+    furi_string_cat_printf(temp_str, "Github: %s\n\n", NFC_RFID_DETECTOR_GITHUB);
+
+    furi_string_cat_printf(temp_str, "\e#%s\n", "Description");
+    furi_string_cat_printf(
+        temp_str,
+        "This application allows\nyou to determine what\ntype of electromagnetic\nfield the reader is using.\nFor LF RFID you can also\nsee the carrier frequency\n\n");
+
+    widget_add_text_box_element(
+        app->widget,
+        0,
+        0,
+        128,
+        14,
+        AlignCenter,
+        AlignBottom,
+        "\e#\e!                                                      \e!\n",
+        false);
+    widget_add_text_box_element(
+        app->widget,
+        0,
+        2,
+        128,
+        14,
+        AlignCenter,
+        AlignBottom,
+        "\e#\e!      NFC/RFID detector      \e!\n",
+        false);
+    widget_add_text_scroll_element(app->widget, 0, 16, 128, 50, furi_string_get_cstr(temp_str));
+    furi_string_free(temp_str);
+
+    view_dispatcher_switch_to_view(app->view_dispatcher, NfcRfidDetectorViewWidget);
+}
+
+bool nfc_rfid_detector_scene_about_on_event(void* context, SceneManagerEvent event) {
+    NfcRfidDetectorApp* app = context;
+    bool consumed = false;
+    UNUSED(app);
+    UNUSED(event);
+
+    return consumed;
+}
+
+void nfc_rfid_detector_scene_about_on_exit(void* context) {
+    NfcRfidDetectorApp* app = context;
+
+    // Clear views
+    widget_reset(app->widget);
+}

+ 2 - 0
base_pack/nfc_rfid_detector/scenes/nfc_rfid_detector_scene_config.h

@@ -1 +1,3 @@
+ADD_SCENE(nfc_rfid_detector, start, Start)
+ADD_SCENE(nfc_rfid_detector, about, About)
 ADD_SCENE(nfc_rfid_detector, field_presence, FieldPresence)

+ 58 - 0
base_pack/nfc_rfid_detector/scenes/nfc_rfid_detector_scene_start.c

@@ -0,0 +1,58 @@
+#include "../nfc_rfid_detector_app_i.h"
+
+typedef enum {
+    SubmenuIndexNfcRfidDetectorFieldPresence,
+    SubmenuIndexNfcRfidDetectorAbout,
+} SubmenuIndex;
+
+void nfc_rfid_detector_scene_start_submenu_callback(void* context, uint32_t index) {
+    NfcRfidDetectorApp* app = context;
+    view_dispatcher_send_custom_event(app->view_dispatcher, index);
+}
+
+void nfc_rfid_detector_scene_start_on_enter(void* context) {
+    UNUSED(context);
+    NfcRfidDetectorApp* app = context;
+    Submenu* submenu = app->submenu;
+
+    submenu_add_item(
+        submenu,
+        "Detect field type",
+        SubmenuIndexNfcRfidDetectorFieldPresence,
+        nfc_rfid_detector_scene_start_submenu_callback,
+        app);
+    submenu_add_item(
+        submenu,
+        "About",
+        SubmenuIndexNfcRfidDetectorAbout,
+        nfc_rfid_detector_scene_start_submenu_callback,
+        app);
+
+    submenu_set_selected_item(
+        submenu, scene_manager_get_scene_state(app->scene_manager, NfcRfidDetectorSceneStart));
+
+    view_dispatcher_switch_to_view(app->view_dispatcher, NfcRfidDetectorViewSubmenu);
+}
+
+bool nfc_rfid_detector_scene_start_on_event(void* context, SceneManagerEvent event) {
+    NfcRfidDetectorApp* app = context;
+    bool consumed = false;
+
+    if(event.type == SceneManagerEventTypeCustom) {
+        if(event.event == SubmenuIndexNfcRfidDetectorAbout) {
+            scene_manager_next_scene(app->scene_manager, NfcRfidDetectorSceneAbout);
+            consumed = true;
+        } else if(event.event == SubmenuIndexNfcRfidDetectorFieldPresence) {
+            scene_manager_next_scene(app->scene_manager, NfcRfidDetectorSceneFieldPresence);
+            consumed = true;
+        }
+        scene_manager_set_scene_state(app->scene_manager, NfcRfidDetectorSceneStart, event.event);
+    }
+
+    return consumed;
+}
+
+void nfc_rfid_detector_scene_start_on_exit(void* context) {
+    NfcRfidDetectorApp* app = context;
+    submenu_reset(app->submenu);
+}