/** * @file fatfs_card.h * @brief 卡号白名单兼容头文件(整合自 CCU601E_D) * * 实际存储由 flash_file_mgr/card_flash_impl 通过 EEPROM + SPI Flash 实现。 */ #ifndef FATFS_CARD_H #define FATFS_CARD_H #include #include #define CARD_DIR_PATH "0:/card" #define CARD_FILE_NAME "card_data.csv" #define CARD_NUM_MAX_LEN 32 #define CARD_MAX_COUNT 595 typedef struct { char card_num[CARD_NUM_MAX_LEN]; uint32_t balance; uint32_t create_time; uint32_t last_use_time; uint16_t status; uint8_t reserved[8]; } CardInfo; typedef enum { CARD_STATUS_OK = 0, CARD_STATUS_INIT_FAILED, CARD_STATUS_FS_ERROR, CARD_STATUS_FILE_FULL, CARD_STATUS_WRITE_FAILED, CARD_STATUS_READ_FAILED, CARD_STATUS_FILE_NOT_FOUND, CARD_STATUS_PARAM_ERROR, CARD_STATUS_NO_SPACE, CARD_STATUS_CARD_EXIST, CARD_STATUS_CARD_NOT_FOUND, CARD_STATUS_ALREADY_INIT } CardStatus; CardStatus card_init(void); void card_deinit(void); CardStatus card_add(const CardInfo *card_info); CardStatus card_update(const CardInfo *card_info); CardStatus card_delete(const char *card_num); CardStatus card_find(const char *card_num, CardInfo *card_info); CardStatus card_get_count(uint32_t *count); CardStatus card_get_all(CardInfo *card_list, uint32_t *count, uint32_t max_count); CardStatus card_check_exist(const char *card_num, bool *exist); CardStatus card_backup(void); CardStatus card_restore(void); CardStatus card_clear_all(void); #endif /* FATFS_CARD_H */