#pragma once #include #include typedef enum { NFC_IDLE, NFC_READING, NFC_READ_SUCCESS, NFC_READ_ERROR, NFC_WRITING, NFC_WRITE_SUCCESS, NFC_WRITE_ERROR } nfcReaderStateType; void startNfc(); void startWriteJsonToTag(const char* payload); void writeJsonToTag(void *parameter); void scanRfidTask(void * parameter); void processTag(uint8_t *uid, uint8_t uidLength, uint8_t readerNumber); void processNfcData(uint8_t *data, String tagId); bool decodeNdefAndReturnJson(const byte* encodedMessage); extern TaskHandle_t RfidReaderTask; extern String nfcJsonData; extern String spoolId; extern volatile nfcReaderStateType nfcReaderState; extern volatile bool pauseBambuMqttTask; // Function declarations uint16_t readTagSize(Adafruit_PN532 &pn532); String createTagId(uint8_t *uid, uint8_t uidLength);