#pragma once #include "MFRC522.h" #include "Global.h" #include "FreeRTOS.h" #include "task.h" #include "event_groups.h" #include "Mifare.h" #include "Desfire.h" #define RC522_PIN_IRQ 21 #define CARD_READY_BIT_0 (1 << 0) #define MESSAGE_READY_BIT_1 (1 << 1) class CardReader { public: static TaskHandle_t cardReaderTaskHandle; static void cardReaderTask(__unused void *pvParameters); static bool checkCard(Global::credentialRequest_t *credentialRequest); private: static bool readACSCard(Global::credentialRequest_t *credentialRequest); static bool readDesfireCard(Global::credentialRequest_t *credentialRequest); static bool read14443_4(Global::credentialRequest_t *credentialRequest); };