mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-12-01 00:39:12 +00:00
956788c09b
* nfc: clean up scenes * nfc worker: remove field on from worker * nfc worker: move full data exchange to furi hal * nfc_device: check UID length * nfc protocol: introduce mifare common API * nfc: move common data to furi hal nfc * nfc: rename emv_decoder -> emv * nfc: move emv data structure to emv lib * nfc: remove deactivate after detection * nfc: rework furi hal nfc detect * nfc: clean up CLI commands and type * nfc: remove unused includes and function * nfc: add TxRxType enum * nfc: read mifare ultralight refactoring * nfc: refactore mifare ultralight start * rfal: fix custom data exchange * nfc: refactor read bank card * nfc: refactor read emv application * nfc: refactor emv test emulation * nfc: refactor uid emulation * nfc: add limit to uid emulation logger * fix source formatting * furi_hal_nfc: fix data exchange full * nfc: fix mifare ultralight type load Co-authored-by: あく <alleteam@gmail.com>
60 lines
1.5 KiB
C
Executable file
60 lines
1.5 KiB
C
Executable file
#pragma once
|
|
|
|
#include "nfc_device.h"
|
|
|
|
typedef struct NfcWorker NfcWorker;
|
|
|
|
typedef enum {
|
|
// Init states
|
|
NfcWorkerStateNone,
|
|
NfcWorkerStateBroken,
|
|
NfcWorkerStateReady,
|
|
// Main worker states
|
|
NfcWorkerStateDetect,
|
|
NfcWorkerStateEmulate,
|
|
NfcWorkerStateReadEMVApp,
|
|
NfcWorkerStateReadEMVData,
|
|
NfcWorkerStateEmulateApdu,
|
|
NfcWorkerStateField,
|
|
NfcWorkerStateReadMifareUltralight,
|
|
NfcWorkerStateEmulateMifareUltralight,
|
|
NfcWorkerStateReadMifareClassic,
|
|
NfcWorkerStateReadMifareDesfire,
|
|
// Transition
|
|
NfcWorkerStateStop,
|
|
} NfcWorkerState;
|
|
|
|
typedef enum {
|
|
// Reserve first 50 events for application events
|
|
NfcWorkerEventReserved = 50,
|
|
|
|
// Nfc worker common events
|
|
NfcWorkerEventSuccess,
|
|
NfcWorkerEventFail,
|
|
NfcWorkerEventNoCardDetected,
|
|
// Mifare Classic events
|
|
NfcWorkerEventNoDictFound,
|
|
NfcWorkerEventDetectedClassic1k,
|
|
NfcWorkerEventDetectedClassic4k,
|
|
NfcWorkerEventNewSector,
|
|
NfcWorkerEventFoundKeyA,
|
|
NfcWorkerEventFoundKeyB,
|
|
NfcWorkerEventStartReading,
|
|
} NfcWorkerEvent;
|
|
|
|
typedef void (*NfcWorkerCallback)(NfcWorkerEvent event, void* context);
|
|
|
|
NfcWorker* nfc_worker_alloc();
|
|
|
|
NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
|
|
|
|
void nfc_worker_free(NfcWorker* nfc_worker);
|
|
|
|
void nfc_worker_start(
|
|
NfcWorker* nfc_worker,
|
|
NfcWorkerState state,
|
|
NfcDeviceData* dev_data,
|
|
NfcWorkerCallback callback,
|
|
void* context);
|
|
|
|
void nfc_worker_stop(NfcWorker* nfc_worker);
|