6928122650
* GUI: view. Flooper-blooper fix compilation error. * GUI: view and viewdispatcher bones * GUI: view implementation, view models, view dispatcher * GUI: view navigation, model refinement. Power: use view, view dispatcher. * HAL Flash: proper page write. Dolphin: views. Power: views * Dolphin: transition idle scree to Views * Dolphin: input events on stats view. Format sources. * HAL: flash erase. Dolphin: permanent state storage. * Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch. * NFC: rewrite worker * NFC: add support for B,F,V. * NFC: replace rfal irq hanlder with realtime thread, more details about cards. * Bootloader: LSE and RTS shenanigans, LED control, morse code for LSE failure error. * F4: stop in Error_Handler * BLE: handle working FUS, but empty radio stack. * HAL: alive FUS is now sufficient for flash controller access * Dolphin: update model after state load * NFC: detect navigation * RFAL: use osPriorityISR for isr thread * NFC: emulation * Bootloader: rollback incorrectly merged rename * Dolphin: rollback incorrectly merged changes * RFAL: remove volatile from thread attr * RFAL: do not call platform ErrorHandler, error codes is enough * NFC: improved error handling * Format sources * NFC: reset detect view model on start * Format sources * update codeowners * NFC: hide last info if no card detected
42 lines
970 B
C
42 lines
970 B
C
#pragma once
|
|
|
|
#include "nfc_types.h"
|
|
#include "nfc_worker.h"
|
|
|
|
#include <flipper_v2.h>
|
|
#include <cmsis_os2.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 {
|
|
osMessageQueueId_t message_queue;
|
|
osThreadAttr_t thread_attr;
|
|
osThreadId_t thread;
|
|
|
|
NfcWorkerState state;
|
|
ReturnCode error;
|
|
};
|
|
|
|
void nfc_worker_change_state(NfcWorker* nfc_worker, NfcWorkerState state);
|
|
|
|
void nfc_worker_task(void* context);
|
|
|
|
void nfc_worker_poll(NfcWorker* nfc_worker);
|
|
bool nfc_worker_nfca_poll(NfcWorker* nfc_worker);
|
|
bool nfc_worker_nfcb_poll(NfcWorker* nfc_worker);
|
|
bool nfc_worker_nfcf_poll(NfcWorker* nfc_worker);
|
|
bool nfc_worker_nfcv_poll(NfcWorker* nfc_worker);
|
|
|
|
void nfc_worker_emulate(NfcWorker* nfc_worker);
|
|
|
|
void nfc_worker_field(NfcWorker* nfc_worker);
|