From c73a5104c258a3888aa218cc07137b97aeb65662 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 5 Dec 2025 10:47:15 +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 | 66 +++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/DataNonVolatile.h b/DataNonVolatile.h index ea960d7..e0a2741 100644 --- a/DataNonVolatile.h +++ b/DataNonVolatile.h @@ -17,54 +17,40 @@ // Двоичное число в BCD #define binary_to_bcd(binary) (((binary / 10) << 4) | (binary % 10)) -#pragma scalar_storage_order big-endian typedef struct __attribute__ ((packed)) { uint8_t year; // BCD: 0x18 = 2018 год uint8_t month; // BCD: 0x10 = октябрь uint8_t day; // BCD: 0x16 = 16 число char tester_serial[9]; // ASCII: "123456789" -} reverse_tester_info_t; -#pragma scalar_storage_order little-endian +} tFingerprint; -#pragma scalar_storage_order big-endian -typedef struct __attribute__ ((packed)) { - uint32_t software_crc; // CRC программного обеспечения - uint16_t major_version; // Старшая версия - uint16_t minor_version; // Младшая версия - uint16_t patch_version; // Патч-версия - uint8_t build_number; // Номер сборки - uint8_t checksum; // Контрольная сумма структуры -} reverse_app_boot_info_t; -#pragma scalar_storage_order little-endian - -typedef struct __attribute__ ((packed)) { - uint8_t year; // BCD: 0x18 = 2018 год - uint8_t month; // BCD: 0x10 = октябрь - uint8_t day; // BCD: 0x16 = 16 число - tString16 tester_serial; // ASCII: "123456789" -} tester_info_t; - -typedef struct __attribute__ ((packed)) { - uint32_t software_crc; // CRC программного обеспечения - uint16_t major_version; // Старшая версия - uint16_t minor_version; // Младшая версия - uint16_t patch_version; // Патч-версия - uint8_t build_number; // Номер сборки - uint8_t checksum; // Контрольная сумма структуры -} app_boot_info_t; +// 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 { + uint8_t SW[4]; + uint8_t MBD[4]; +} tInternal_SW_Version; typedef struct { - tString16 software_classification; - tester_info_t tester_fingerprint; - app_boot_info_t bootloader_info; - app_boot_info_t application_info; - tString32 spare_part_number; - tString32 serial_number; - tString32 vin; - tString32 hardware_nami; - tString16 hardware_estra; - tString8 software_estra; - tString8 boot_version; + tInternal_SW_Version Internal_SW_Version; + char Software_classification_identification[15]; + tFingerprint Tester_Fingerprint; + tFingerprint Boot_SW_Fingerprint; + tFingerprint Application_SW_Fingerprint; + char Spare_Part_Number[27]; + char Serial_Number[26]; + char Vehicle_Identification[17]; + char ECU_hardware_number_NAMI[13]; + char ECU_hardware_number_ECU_supplier[2]; + char ECU_software_number_ECU_supplier[2]; + char ECU_boot_software_identification_ECU_supplier[2]; } ecu_identification_t; typedef struct {