From 39441483d25096de32fb5da89ff2c0ad815de665 Mon Sep 17 00:00:00 2001 From: dimoniche Date: Wed, 28 May 2025 23:03:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20uid=20=D0=BA=D0=B0=D1=80=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT/drivers/mfrc522/mfrc522data.c | 14 ++++++++++++++ PROJECT/drivers/mfrc522/mfrc522data.h | 4 ++++ 2 files changed, 18 insertions(+) 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