* view: add custom event callback * nfc: rework nfc worker * gui: introduce view navigator * nfc_scences: introduce nfc scenes * nfc: add start scene * lib: add C application scene template * nfc: move nfc views to separate directory * view_dispatcher: add support for view_navigator * nfc views: rework nfc views * nfc scenes: add nfc application scenes * nfc: rework nfc main thread * view_dispatcher: add separate event for search back scene * nfc: set worker result address at worker start * nfc: update read nfc scenes * view_navigator: rework with M-LIB container * view_dispatcher: check that all views were freed * nfc: add debug menu with all functions * nfc read scene: add notification on success * api-hal-nfc: add API for UID emulation * nfc: add nfc emulation UID scene * assets: add NFC assets * nfc: update read and emulate scenes UI * nfc: fix memory leak * rfal: set custom analog configuration
		
			
				
	
	
		
			47 lines
		
	
	
		
			984 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			984 B
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "nfc_i.h"
 | 
						|
#include "nfc_worker.h"
 | 
						|
 | 
						|
#include <furi.h>
 | 
						|
#include <stdbool.h>
 | 
						|
 | 
						|
#include <rfal_analogConfig.h>
 | 
						|
#include <rfal_rf.h>
 | 
						|
#include <rfal_nfc.h>
 | 
						|
#include <rfal_nfca.h>
 | 
						|
#include <rfal_nfcb.h>
 | 
						|
#include <rfal_nfcf.h>
 | 
						|
#include <rfal_nfcv.h>
 | 
						|
#include <st25r3916.h>
 | 
						|
#include <st25r3916_irq.h>
 | 
						|
 | 
						|
struct NfcWorker {
 | 
						|
    osThreadAttr_t thread_attr;
 | 
						|
    osThreadId_t thread;
 | 
						|
 | 
						|
    NfcWorkerResult* last_result;
 | 
						|
    NfcWorkerCallback callback;
 | 
						|
    void* context;
 | 
						|
    NfcDeviceData emulate_params;
 | 
						|
 | 
						|
    NfcWorkerState state;
 | 
						|
    ReturnCode error;
 | 
						|
};
 | 
						|
 | 
						|
void nfc_worker_change_state(NfcWorker* nfc_worker, NfcWorkerState state);
 | 
						|
 | 
						|
void nfc_worker_task(void* context);
 | 
						|
 | 
						|
void nfc_worker_read_emv(NfcWorker* nfc_worker);
 | 
						|
 | 
						|
void nfc_worker_emulate_emv(NfcWorker* nfc_worker);
 | 
						|
 | 
						|
void nfc_worker_detect(NfcWorker* nfc_worker);
 | 
						|
 | 
						|
void nfc_worker_emulate(NfcWorker* nfc_worker);
 | 
						|
 | 
						|
void nfc_worker_field(NfcWorker* nfc_worker);
 | 
						|
 | 
						|
void nfc_worker_read_mf_ultralight(NfcWorker* nfc_worker);
 |