49 lines
921 B
C
49 lines
921 B
C
/**
|
|
* @file nfc_manager.h
|
|
* @brief NFC Manager for ROM selection via NFC tags
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "esp_err.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define NFC_MAX_ROM_NAME 64
|
|
|
|
/**
|
|
* @brief NFC ROM mapping structure
|
|
*/
|
|
typedef struct {
|
|
uint8_t tag_uid[7]; // NFC tag UID
|
|
char rom_path[NFC_MAX_ROM_NAME]; // ROM file path on SD card
|
|
} nfc_rom_mapping_t;
|
|
|
|
/**
|
|
* @brief Initialize NFC manager
|
|
* @return ESP_OK on success
|
|
*/
|
|
esp_err_t nfc_manager_init(void);
|
|
|
|
/**
|
|
* @brief Check if NFC tag is present
|
|
* @return true if tag detected
|
|
*/
|
|
bool nfc_manager_tag_present(void);
|
|
|
|
/**
|
|
* @brief Read NFC tag and get ROM path
|
|
* @param rom_path Output buffer for ROM path
|
|
* @param max_len Maximum length of rom_path buffer
|
|
* @return ESP_OK if ROM mapping found
|
|
*/
|
|
esp_err_t nfc_manager_get_rom(char *rom_path, size_t max_len);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|