Eric Betts 1 год назад
Родитель
Сommit
60440dd5c4
2 измененных файлов с 14 добавлено и 11 удалено
  1. 10 11
      sam_api.c
  2. 4 0
      scenes/seader_scene_read_mfc.c

+ 10 - 11
sam_api.c

@@ -751,22 +751,21 @@ void seader_mfc_transmit(
     do {
         bit_buffer_append_bytes(tx_buffer, buffer, len);
         if(format[0] == 0x00 && format[1] == 0xC0 && format[2] == 0x00) {
-            //iso14443_3a_poller_standard_frame_exchange
+            // MfClassicError error = mf_classic_poller_send_standard_frame(mfc_poller,tx_buffer, rx_buffer, MF_CLASSIC_FWT_FC);
+            MfClassicError error =
+                mf_classic_poller_send_frame(mfc_poller, tx_buffer, rx_buffer, MF_CLASSIC_FWT_FC);
+            if(error != MfClassicErrorNone) {
+                FURI_LOG_W(TAG, "mf_classic_poller_send_standard_frame error %d", error);
+                seader_worker->stage = SeaderPollerEventTypeFail;
+                break;
+            }
         } else if(
             (format[0] == 0x00 && format[1] == 0x00 && format[2] == 0x40) ||
             (format[0] == 0x00 && format[1] == 0x00 && format[2] == 0x24) ||
             (format[0] == 0x00 && format[1] == 0x00 && format[2] == 0x44)) {
-            /*
-            Iso14443_3aPoller* iso14443_3a_poller = (MfClassicPoller)mfc_poller->iso14443_3a_poller;
-            Iso14443_3aError error = iso14443_3a_poller_txrx_custom_parity(iso14443_3a_poller,tx_buffer, rx_buffer, MF_CLASSIC_FWT_FC);
-              if(error == Iso14443_3aErrorWrongCrc) {
-                  if(bit_buffer_get_size_bytes(rx_buffer) != sizeof(MfClassicNt)) {
-                      FURI_LOG_W(TAG, "iso14443_3a_poller_txrx_custom_parity error %d", error);
-                      seader_worker->stage = SeaderPollerEventTypeFail;
-                  }
-              }
-          */
+            FURI_LOG_W(TAG, "TODO");
         }
+        FURI_LOG_W(TAG, "mf_classic_poller_send_standard_frame success");
 
         seader_send_nfc_rx(
             seader_uart,

+ 4 - 0
scenes/seader_scene_read_mfc.c

@@ -1,6 +1,8 @@
 #include "../seader_i.h"
 #include <dolphin/dolphin.h>
 
+#define TAG "SceneReadNfc"
+
 void seader_scene_read_mfc_on_enter(void* context) {
     Seader* seader = context;
     dolphin_deed(DolphinDeedNfcRead);
@@ -18,6 +20,8 @@ void seader_scene_read_mfc_on_enter(void* context) {
     seader->worker->stage = SeaderPollerEventTypeCardDetect;
     seader_credential_clear(seader->credential);
     seader->credential->type = SeaderCredentialTypeMifareClassic;
+
+    FURI_LOG_W(TAG, "Start poller");
     nfc_poller_start(seader->poller, seader_worker_poller_callback_mfc, seader);
 
     seader_blink_start(seader);