Обновление

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
#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 {