65 lines
1.6 KiB
C

#ifndef _RFID_DATA_H_
#define _RFID_DATA_H_
#include <stdint.h>
#include <stdbool.h>
/// @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