diff --git a/PROJECT/drivers/mfrc522/mfrc522data.c b/PROJECT/drivers/mfrc522/mfrc522data.c index 5caf113..88b4d8c 100644 --- a/PROJECT/drivers/mfrc522/mfrc522data.c +++ b/PROJECT/drivers/mfrc522/mfrc522data.c @@ -39,6 +39,19 @@ void set_abonement_data(abonement_data* data) memcpy(&abonement, &data, sizeof(abonement_data)); } +uint32_t get_mifare_uid() +{ + uint32_t card_uid = 0; + uid_struct * uid = get_uid(); + + if(uid->size == 4) + { + memcpy(&card_uid, &uid->uidByte[0], 4); + } + + return card_uid; +} + /** * Calculates the bit pattern needed for the specified access bits. In the [C1 C2 C3] tuples C1 is MSB (=4) and C3 is LSB (=1). */ @@ -287,6 +300,7 @@ mifaredata_t* init_mifare_card_data() CPU_INT32U password; GetData(&PassDescAdmin, &password, 0, DATA_FLAG_SYSTEM_INDEX); abonement.uid[0] = password; + abonement.number_abonement = get_mifare_uid(); return &mifare_card_data; } diff --git a/PROJECT/drivers/mfrc522/mfrc522data.h b/PROJECT/drivers/mfrc522/mfrc522data.h index 20f7585..84aa59a 100644 --- a/PROJECT/drivers/mfrc522/mfrc522data.h +++ b/PROJECT/drivers/mfrc522/mfrc522data.h @@ -41,4 +41,8 @@ extern bool is_empty_mifare_card(); extern bool need_clear_bonus(); extern void stop_card_working(); +/// @brief +/// @return +uint32_t get_mifare_uid(); + #endif \ No newline at end of file