#ifndef _RFID_DATA_H_ #define _RFID_DATA_H_ #include #include /// @brief Расшифровка дополнительных полей typedef struct { /// @brief Пароль карты uint32_t password; /// @brief Дата последнего использования uint32_t time_use; /// @brief Количество использований в один день uint32_t count_use; uint32_t reserv1; uint32_t reserv2; } external_fields; typedef struct { uint32_t init; // 4 - обязательно должна быть в начале union { uint32_t uid[5]; // 20 external_fields fileds; }; uint32_t money; // 4 uint32_t bonus; // 4 uint32_t type_abonement; // 4 uint32_t number_abonement; // 4 uint32_t best_before; // 4 uint32_t crc; // 4 } abonement_data; // 48 typedef struct { abonement_data abonement_data_copy1; // 48 abonement_data abonement_data_copy2; // 48 } mifaredata_t; // 96 extern mifaredata_t* get_mifare_data(); extern void set_mifare_data(mifaredata_t* data); /// @brief Установка данных абонемента /// @param data extern void set_abonement_data(abonement_data* data); /// @brief Данные абонемента, получение /// @return extern abonement_data* get_abonement_data(); extern mifaredata_t* read_mifare_card(); extern bool write_mifare_card(); extern mifaredata_t* init_mifare_card_data(); extern bool is_empty_mifare_card(); extern bool need_clear_bonus(); extern void stop_card_working(); /// @brief /// @return uint32_t get_mifare_uid(); #endif