59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
#pragma once
|
|
#include <Arduino.h>
|
|
#include <MFRC522.h>
|
|
#include <rdm6300.h>
|
|
#include <Adafruit_PN532.h>
|
|
|
|
class Reader {
|
|
public:
|
|
virtual bool canHaveUnstableIdentifier() = 0;
|
|
virtual bool isNewCardPresent() = 0;
|
|
virtual String getCardUid() = 0;
|
|
virtual void begin() = 0;
|
|
virtual void reset() = 0;
|
|
virtual void init() = 0;
|
|
virtual void end() = 0;
|
|
};
|
|
|
|
class MFRC522Reader : public Reader {
|
|
private:
|
|
MFRC522* mfrc522;
|
|
public:
|
|
explicit MFRC522Reader(byte chipSelectPin, byte resetPowerDownPin);
|
|
bool canHaveUnstableIdentifier() override;
|
|
bool isNewCardPresent() override;
|
|
String getCardUid() override;
|
|
void reset() override;
|
|
void init() override;
|
|
};
|
|
|
|
class RDM6300Reader : public Reader {
|
|
private:
|
|
Rdm6300* rdm6300;
|
|
int pin;
|
|
public:
|
|
explicit RDM6300Reader(int pin);
|
|
bool canHaveUnstableIdentifier() override;
|
|
bool isNewCardPresent() override;
|
|
String getCardUid() override;
|
|
void reset() override;
|
|
void init() override;
|
|
};
|
|
|
|
class PN532Reader : public Reader {
|
|
private:
|
|
Adafruit_PN532* pn532;
|
|
uint8_t uid[7];
|
|
uint8_t uidLength;
|
|
public:
|
|
static volatile int irq;
|
|
explicit PN532Reader(uint8_t clk, uint8_t miso, uint8_t mosi, uint8_t ss);
|
|
bool canHaveUnstableIdentifier() override;
|
|
bool isNewCardPresent() override;
|
|
String getCardUid() override;
|
|
void begin() override;
|
|
void reset() override;
|
|
void init() override;
|
|
void end() override;
|
|
};
|