|
@ -20,11 +20,13 @@ |
|
|
#define RFID_PN5180_NFC14443_STATE_RESET 1u
|
|
|
#define RFID_PN5180_NFC14443_STATE_RESET 1u
|
|
|
#define RFID_PN5180_NFC14443_STATE_SETUPRF 2u
|
|
|
#define RFID_PN5180_NFC14443_STATE_SETUPRF 2u
|
|
|
#define RFID_PN5180_NFC14443_STATE_READCARD 3u
|
|
|
#define RFID_PN5180_NFC14443_STATE_READCARD 3u
|
|
|
|
|
|
#define RFID_PN5180_NFC14443_STATE_ACTIVE 99u
|
|
|
|
|
|
|
|
|
#define RFID_PN5180_NFC15693_STATE_RESET 4u
|
|
|
#define RFID_PN5180_NFC15693_STATE_RESET 4u
|
|
|
#define RFID_PN5180_NFC15693_STATE_SETUPRF 5u
|
|
|
#define RFID_PN5180_NFC15693_STATE_SETUPRF 5u
|
|
|
#define RFID_PN5180_NFC15693_STATE_DISABLEPRIVACYMODE 6u
|
|
|
#define RFID_PN5180_NFC15693_STATE_DISABLEPRIVACYMODE 6u
|
|
|
#define RFID_PN5180_NFC15693_STATE_GETINVENTORY 7u
|
|
|
#define RFID_PN5180_NFC15693_STATE_GETINVENTORY 7u
|
|
|
|
|
|
#define RFID_PN5180_NFC15693_STATE_ACTIVE 100u
|
|
|
|
|
|
|
|
|
extern unsigned long Rfid_LastRfidCheckTimestamp; |
|
|
extern unsigned long Rfid_LastRfidCheckTimestamp; |
|
|
|
|
|
|
|
@ -95,6 +97,7 @@ extern unsigned long Rfid_LastRfidCheckTimestamp; |
|
|
} else if (RFID_PN5180_NFC14443_STATE_READCARD == stateMachine) { |
|
|
} else if (RFID_PN5180_NFC14443_STATE_READCARD == stateMachine) { |
|
|
if (nfc14443.readCardSerial(uid) >= 4u) { |
|
|
if (nfc14443.readCardSerial(uid) >= 4u) { |
|
|
cardReceived = true; |
|
|
cardReceived = true; |
|
|
|
|
|
stateMachine = RFID_PN5180_NFC14443_STATE_ACTIVE; |
|
|
} else { |
|
|
} else { |
|
|
// Reset to dummy-value if no card is there
|
|
|
// Reset to dummy-value if no card is there
|
|
|
// Necessary to differentiate between "card is still applied" and "card is re-applied again after removal"
|
|
|
// Necessary to differentiate between "card is still applied" and "card is re-applied again after removal"
|
|
@ -122,6 +125,7 @@ extern unsigned long Rfid_LastRfidCheckTimestamp; |
|
|
ISO15693ErrorCode rc = nfc15693.getInventory(uid); |
|
|
ISO15693ErrorCode rc = nfc15693.getInventory(uid); |
|
|
if (rc == ISO15693_EC_OK) { |
|
|
if (rc == ISO15693_EC_OK) { |
|
|
cardReceived = true; |
|
|
cardReceived = true; |
|
|
|
|
|
stateMachine = RFID_PN5180_NFC15693_STATE_ACTIVE; |
|
|
} else { |
|
|
} else { |
|
|
for (uint8_t i=0; i<cardIdSize; i++) { |
|
|
for (uint8_t i=0; i<cardIdSize; i++) { |
|
|
lastCardId[i] = 0; |
|
|
lastCardId[i] = 0; |
|
@ -155,12 +159,18 @@ extern unsigned long Rfid_LastRfidCheckTimestamp; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
xQueueSend(gRfidCardQueue, cardIdString.c_str(), 0); |
|
|
xQueueSend(gRfidCardQueue, cardIdString.c_str(), 0); |
|
|
|
|
|
//Serial.printf("Trigger %s\n", cardIdString.c_str());
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
stateMachine++; |
|
|
|
|
|
|
|
|
|
|
|
if (stateMachine > RFID_PN5180_NFC15693_STATE_GETINVENTORY) { |
|
|
|
|
|
|
|
|
if (stateMachine == RFID_PN5180_NFC14443_STATE_ACTIVE) { // If 14443 is active, bypass 15693 as next check (performance)
|
|
|
stateMachine = RFID_PN5180_NFC14443_STATE_RESET; |
|
|
stateMachine = RFID_PN5180_NFC14443_STATE_RESET; |
|
|
|
|
|
} else if (stateMachine == RFID_PN5180_NFC15693_STATE_ACTIVE) { // If 15693 is active, bypass 14443 as next check (performance)
|
|
|
|
|
|
stateMachine = RFID_PN5180_NFC15693_STATE_RESET; |
|
|
|
|
|
} else { |
|
|
|
|
|
stateMachine++; |
|
|
|
|
|
if (stateMachine > RFID_PN5180_NFC15693_STATE_GETINVENTORY) { |
|
|
|
|
|
stateMachine = RFID_PN5180_NFC14443_STATE_RESET; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|