69 lines
1.4 KiB
C++
69 lines
1.4 KiB
C++
#include "rfid.h"
|
|
|
|
PN532_SPI pn532spi(SPI, NFC_SS, NFC_SCK, NFC_MISO, NFC_MOSI);
|
|
NfcAdapter nfc = NfcAdapter(pn532spi);
|
|
|
|
uint32_t lastRFID = 0;
|
|
|
|
String lastUid = "";
|
|
|
|
bool RfidinitOK = false;
|
|
bool RfidScanActive = false;
|
|
|
|
//*****************************************************************************************//
|
|
void initRfid()
|
|
{
|
|
log_i("RFID init:"); // shows in serial that it is ready to read
|
|
nfc.begin(true);
|
|
RfidinitOK = true;
|
|
log_i("RFID init: OK"); // shows in serial that it is ready to read
|
|
}
|
|
|
|
//*****************************************************************************************//
|
|
void handleRfid()
|
|
{
|
|
uint32_t timeNow = millis();
|
|
if (lastRFID - timeNow > RFIDINTERVAL && RfidScanActive)
|
|
{
|
|
log_i("scanning");
|
|
if (nfc.tagPresent(100))
|
|
{
|
|
NfcTag tag = nfc.read();
|
|
lastUid = tag.getUidString();
|
|
log_i("found tag %s",lastUid.c_str());
|
|
}
|
|
lastRFID = timeNow;
|
|
}
|
|
}
|
|
|
|
bool getRFIDInitStatus(void)
|
|
{
|
|
return RfidinitOK;
|
|
}
|
|
|
|
String getRFIDlastUID(void)
|
|
{
|
|
return lastUid;
|
|
}
|
|
|
|
bool getRFIDlastUIDValid(void)
|
|
{
|
|
if(lastUid == "")
|
|
{
|
|
return false;
|
|
}
|
|
return (getUIDvalid(lastUid));
|
|
}
|
|
|
|
void setRFIDscanState(bool state)
|
|
{
|
|
RfidScanActive = state;
|
|
}
|
|
|
|
void clearRFIDlastUID( void)
|
|
{
|
|
log_i("cleard last tag");
|
|
lastUid = "";
|
|
}
|
|
//*****************************************************************************************//
|