Просмотр исходного кода

Upd rfid nfc field type detector

MX 2 лет назад
Родитель
Сommit
bbee9ffa54

+ 2 - 2
application.fam

@@ -1,13 +1,13 @@
 App(
     appid="nfc_rfid_detector",
-    name="NFC/RFID detector",
+    name="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.0",
+    fap_version="1.2",
     fap_icon="nfc_rfid_detector_10px.png",
     fap_category="Tools",
     fap_icon_assets="images",

+ 1 - 1
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-firmware"
+#define NFC_RFID_DETECTOR_GITHUB "https://github.com/flipperdevices/flipperzero-good-faps"
 
 typedef enum {
     NfcRfidDetectorViewVariableItemList,

+ 1 - 1
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, NfcRfidDetectorSceneStart);
+    scene_manager_next_scene(app->scene_manager, NfcRfidDetectorSceneFieldPresence);
 
     return app;
 }

+ 6 - 3
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_exit_sleep();
+    furi_hal_nfc_acquire();
     furi_hal_nfc_field_detect_start();
 }
 
@@ -22,14 +22,17 @@ 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_start_sleep();
+    furi_hal_nfc_field_detect_stop();
+    furi_hal_nfc_release();
 }
 
 bool nfc_rfid_detector_app_field_presence_is_nfc(NfcRfidDetectorApp* app) {
     furi_assert(app);
 
     // check if the field presence is nfc
-    return furi_hal_nfc_field_is_present();
+    bool is_present = furi_hal_nfc_field_is_present();
+
+    return is_present;
 }
 
 bool nfc_rfid_detector_app_field_presence_is_rfid(NfcRfidDetectorApp* app, uint32_t* frequency) {

+ 0 - 69
scenes/nfc_rfid_detector_scene_about.c

@@ -1,69 +0,0 @@
-#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);
-}

+ 0 - 2
scenes/nfc_rfid_detector_scene_config.h

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

+ 0 - 58
scenes/nfc_rfid_detector_scene_start.c

@@ -1,58 +0,0 @@
-#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);
-}