 a0e1e42f2d
			
		
	
	
		a0e1e42f2d
		
			
		
	
	
	
	
		
			
			* 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);
 |