From 1ba257bcc336a053b07a5479fba0097211c9708c Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 13 Apr 2026 17:41:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataNonVolatile.h | 35 +++++++++++++++++------------ DataNonVolatile_InitDeviceSetting.c | 4 ++-- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/DataNonVolatile.h b/DataNonVolatile.h index ec83ac4..5d1c289 100644 --- a/DataNonVolatile.h +++ b/DataNonVolatile.h @@ -24,18 +24,25 @@ typedef struct __attribute__ ((packed)) { char tester_serial[9]; // ASCII: "123456789" } tFingerprint; -// Packet [4] Byte -//Data Objects: -//[0:0] Date year (yy), Unsigned (1Byte) -// - 02 – 99 -//[1:0] Date month (mm), Unsigned (1Byte) -// - 01 – 12 -//[2:0] Date day (dd), Unsigned (1Byte) -// - 01-31 -//[3:0] Revision, Unsigned (1Byte) +typedef struct __attribute__ ((packed)) { + uint8_t ModuleID; // ModuleID + char testerCode[9]; // ASCII: "123456789" + uint8_t year; // BCD: 0x18 = 2018 год + uint8_t month; // BCD: 0x10 = октябрь + uint8_t day; // BCD: 0x16 = 16 число +} tFingerprintDev; + + typedef struct { - uint8_t SW[4]; - uint8_t MBD[4]; + uint8_t year; + uint8_t month; + uint8_t day; + uint8_t revision; +} tVersionDateRevision; + +typedef struct { + tVersionDateRevision SW; + tVersionDateRevision MBD; } tInternal_SW_Version; typedef enum { @@ -66,8 +73,8 @@ typedef struct { tInternal_SW_Version Internal_SW_Version; char Software_classification_identification[15]; tFingerprint Tester_Fingerprint; - tFingerprint Boot_SW_Fingerprint; - tFingerprint Application_SW_Fingerprint; + tFingerprintDev Boot_SW_Fingerprint; + tFingerprintDev Application_SW_Fingerprint; char Spare_Part_Number[27]; char Serial_Number[26]; char Vehicle_Identification[17]; @@ -82,7 +89,7 @@ typedef struct __attribute__ ((packed)) { uint32_t meta_fw_crc; uint32_t size_fw; tInternal_SW_Version internal_SW_Version; - tFingerprint fingerprint; + tFingerprintDev fingerprint; } tFirmwareMetaMap; typedef struct { diff --git a/DataNonVolatile_InitDeviceSetting.c b/DataNonVolatile_InitDeviceSetting.c index 6d04e1c..59aafb7 100644 --- a/DataNonVolatile_InitDeviceSetting.c +++ b/DataNonVolatile_InitDeviceSetting.c @@ -13,8 +13,8 @@ void DeviceStorageInitDeviceSettings(tDeviceSettings *env) { memcpy(&env->identification.Internal_SW_Version, &firmwareMetaMap_Main->internal_SW_Version, sizeof(tInternal_SW_Version)); - memcpy(&env->identification.Boot_SW_Fingerprint, &firmwareMetaMap_Boot->fingerprint, sizeof(tFingerprint)); - memcpy(&env->identification.Application_SW_Fingerprint, &firmwareMetaMap_Main->fingerprint, sizeof(tFingerprint)); + memcpy(&env->identification.Boot_SW_Fingerprint, &firmwareMetaMap_Boot->fingerprint, sizeof(tFingerprintDev)); + memcpy(&env->identification.Application_SW_Fingerprint, &firmwareMetaMap_Main->fingerprint, sizeof(tFingerprintDev)); env->identification.Tester_Fingerprint.year = 0x18; env->identification.Tester_Fingerprint.month = 0x10;