Обновление

This commit is contained in:
cfif 2025-12-05 10:47:15 +03:00
parent 37b16badf5
commit c73a5104c2
1 changed files with 26 additions and 40 deletions

View File

@ -17,54 +17,40 @@
// Двоичное число в BCD // Двоичное число в BCD
#define binary_to_bcd(binary) (((binary / 10) << 4) | (binary % 10)) #define binary_to_bcd(binary) (((binary / 10) << 4) | (binary % 10))
#pragma scalar_storage_order big-endian
typedef struct __attribute__ ((packed)) { typedef struct __attribute__ ((packed)) {
uint8_t year; // BCD: 0x18 = 2018 год uint8_t year; // BCD: 0x18 = 2018 год
uint8_t month; // BCD: 0x10 = октябрь uint8_t month; // BCD: 0x10 = октябрь
uint8_t day; // BCD: 0x16 = 16 число uint8_t day; // BCD: 0x16 = 16 число
char tester_serial[9]; // ASCII: "123456789" char tester_serial[9]; // ASCII: "123456789"
} reverse_tester_info_t; } tFingerprint;
#pragma scalar_storage_order little-endian
#pragma scalar_storage_order big-endian // Packet [4] Byte
typedef struct __attribute__ ((packed)) { //Data Objects:
uint32_t software_crc; // CRC программного обеспечения //[0:0] Date year (yy), Unsigned (1Byte)
uint16_t major_version; // Старшая версия // - 02 99
uint16_t minor_version; // Младшая версия //[1:0] Date month (mm), Unsigned (1Byte)
uint16_t patch_version; // Патч-версия // - 01 12
uint8_t build_number; // Номер сборки //[2:0] Date day (dd), Unsigned (1Byte)
uint8_t checksum; // Контрольная сумма структуры // - 01-31
} reverse_app_boot_info_t; //[3:0] Revision, Unsigned (1Byte)
#pragma scalar_storage_order little-endian typedef struct {
uint8_t SW[4];
typedef struct __attribute__ ((packed)) { uint8_t MBD[4];
uint8_t year; // BCD: 0x18 = 2018 год } tInternal_SW_Version;
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;
typedef struct { typedef struct {
tString16 software_classification; tInternal_SW_Version Internal_SW_Version;
tester_info_t tester_fingerprint; char Software_classification_identification[15];
app_boot_info_t bootloader_info; tFingerprint Tester_Fingerprint;
app_boot_info_t application_info; tFingerprint Boot_SW_Fingerprint;
tString32 spare_part_number; tFingerprint Application_SW_Fingerprint;
tString32 serial_number; char Spare_Part_Number[27];
tString32 vin; char Serial_Number[26];
tString32 hardware_nami; char Vehicle_Identification[17];
tString16 hardware_estra; char ECU_hardware_number_NAMI[13];
tString8 software_estra; char ECU_hardware_number_ECU_supplier[2];
tString8 boot_version; char ECU_software_number_ECU_supplier[2];
char ECU_boot_software_identification_ECU_supplier[2];
} ecu_identification_t; } ecu_identification_t;
typedef struct { typedef struct {