Обновление

This commit is contained in:
cfif 2026-01-21 13:22:11 +03:00
parent 8336eae8dc
commit 29137073cf
2 changed files with 62 additions and 39 deletions

View File

@ -104,31 +104,31 @@ const eUds_ReadDataByIdentifier_22_com uds_ReadDataByIdentifier_22_com_CF[256] =
{NULL, 0, ""},
{NULL, 0, ""},
{NULL, 0, ""},
{&statusData.Status_Actuator_DoorsActuator.Motor_Def, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Def), "0xCF60 : Status_Actuator_DoorsActuator.Motor_Def"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFL), "0xCF61 : Status_Actuator_DoorsActuator.Motor_Vent_SFL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFL), "0xCF62 : Status_Actuator_DoorsActuator.Motor_Vent_CFL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FL), "0xCF63 : Status_Actuator_DoorsActuator.Motor_Foot_1FL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FL), "0xCF64 : Status_Actuator_DoorsActuator.Motor_Foot_2FL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFR), "0xCF65 : Status_Actuator_DoorsActuator.Motor_Vent_CFR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFR), "0xCF66 : Status_Actuator_DoorsActuator.Motor_Vent_SFR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FR), "0xCF67 : Status_Actuator_DoorsActuator.Motor_Foot_1FR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FR), "0xCF68 : Status_Actuator_DoorsActuator.Motor_Foot_2FR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRL), "0xCF69 : Status_Actuator_DoorsActuator.Motor_Vent_SRL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRL), "0xCF6A : Status_Actuator_DoorsActuator.Motor_Vent_CRL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_RL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_RL), "0xCF6B : Status_Actuator_DoorsActuator.Motor_Foot_RL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRR), "0xCF6C : Status_Actuator_DoorsActuator.Motor_Vent_CRR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRR), "0xCF6D : Status_Actuator_DoorsActuator.Motor_Vent_SRR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Foot_RR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_RR), "0xCF6E : Status_Actuator_DoorsActuator.Motor_Foot_RR"},
{&statusData.Status_Actuator_DoorsActuator, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Def), "0xCF60 : Status_Actuator_DoorsActuator.Motor_Def"},
{(uint8_t*)&statusData.Status_Actuator_DoorsActuator + 2, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFL), "0xCF61 : Status_Actuator_DoorsActuator.Motor_Vent_SFL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 4, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFL), "0xCF62 : Status_Actuator_DoorsActuator.Motor_Vent_CFL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 6, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FL), "0xCF63 : Status_Actuator_DoorsActuator.Motor_Foot_1FL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 8, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FL), "0xCF64 : Status_Actuator_DoorsActuator.Motor_Foot_2FL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 10, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CFR), "0xCF65 : Status_Actuator_DoorsActuator.Motor_Vent_CFR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 12, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SFR), "0xCF66 : Status_Actuator_DoorsActuator.Motor_Vent_SFR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 14, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_1FR), "0xCF67 : Status_Actuator_DoorsActuator.Motor_Foot_1FR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 16, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_2FR), "0xCF68 : Status_Actuator_DoorsActuator.Motor_Foot_2FR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 18, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRL), "0xCF69 : Status_Actuator_DoorsActuator.Motor_Vent_SRL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 20, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRL), "0xCF6A : Status_Actuator_DoorsActuator.Motor_Vent_CRL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 22, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_RL), "0xCF6B : Status_Actuator_DoorsActuator.Motor_Foot_RL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 24, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_CRR), "0xCF6C : Status_Actuator_DoorsActuator.Motor_Vent_CRR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 26, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Vent_SRR), "0xCF6D : Status_Actuator_DoorsActuator.Motor_Vent_SRR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 28, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Foot_RR), "0xCF6E : Status_Actuator_DoorsActuator.Motor_Foot_RR"},
{NULL, 0, ""},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FL), "0xCF70 : Status_Actuator_DoorsActuator.Motor_Temp1_FL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FL), "0xCF71 : Status_Actuator_DoorsActuator.Motor_Temp2_FL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FR), "0xCF72 : Status_Actuator_DoorsActuator.Motor_Temp1_FR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FR), "0xCF73 : Status_Actuator_DoorsActuator.Motor_Temp2_FR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp_RL, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp_RL), "0xCF74 : Status_Actuator_DoorsActuator.Motor_Temp_RL"},
{&statusData.Status_Actuator_DoorsActuator.Motor_Temp_RR, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp_RR), "0xCF75 : Status_Actuator_DoorsActuator.Motor_Temp_RR"},
{&statusData.Status_Actuator_DoorsActuator.Motor_REC, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_REC), "0xCF76 : Status_Actuator_DoorsActuator.Motor_REC"},
{&statusData.Status_Actuator_DoorsActuator.Motor_OSA, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_OSA), "0xCF77 : Status_Actuator_DoorsActuator.Motor_OSA"},
{&statusData.Status_Actuator_DoorsActuator.Motor_SealingValve, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_SealingValve), "0xCF78 : Status_Actuator_DoorsActuator.Motor_SealingValve"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 30, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FL), "0xCF70 : Status_Actuator_DoorsActuator.Motor_Temp1_FL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 32, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FL), "0xCF71 : Status_Actuator_DoorsActuator.Motor_Temp2_FL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 34, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp1_FR), "0xCF72 : Status_Actuator_DoorsActuator.Motor_Temp1_FR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 36, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp2_FR), "0xCF73 : Status_Actuator_DoorsActuator.Motor_Temp2_FR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 38, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp_RL), "0xCF74 : Status_Actuator_DoorsActuator.Motor_Temp_RL"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 40, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_Temp_RR), "0xCF75 : Status_Actuator_DoorsActuator.Motor_Temp_RR"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 42, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_REC), "0xCF76 : Status_Actuator_DoorsActuator.Motor_REC"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 44, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_OSA), "0xCF77 : Status_Actuator_DoorsActuator.Motor_OSA"},
{(uint8_t *)&statusData.Status_Actuator_DoorsActuator + 46, sizeof(statusData.Status_Actuator_DoorsActuator.Motor_SealingValve), "0xCF78 : Status_Actuator_DoorsActuator.Motor_SealingValve"},
{&statusData.Status_Duct_Select, sizeof(statusData.Status_Duct_Select), "0xCF79 : Status_Duct_Select"},
{NULL, 0, ""},
{NULL, 0, ""},

View File

@ -38,14 +38,17 @@ typedef enum {
AROMA_MODE3 = 3
} eAromatizationIntensivity;
typedef struct {
#pragma scalar_storage_order big-endian
typedef struct __attribute__ ((packed)) {
eAromaConfiguration AromaConfiguration;
eAlgorithmConfiguration AlgorithmConfiguration;
} tStatus_CCU_Configuration;
// 1 Byte; Float; 2 significant digits y = (1/10)x V; Lower limit (phys): 0 V; Upper limit (phys): 25.5 V;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
typedef struct __attribute__ ((packed)) {
uint8_t Ignition;
uint8_t Battery;
uint16_t AMB;
@ -69,9 +72,12 @@ typedef struct {
eAQS AQS;
} tStatus_Sensor;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) [0x00..0x03E8] ; y = (1/10)x %;
// Lower limit (phys): 0 %; Upper limit (phys): 100 %; Invalid values: [0x03E9..0xFFFE] Invalid signal (Invalid) [0xFFFF] Not implemented (Not implemented)
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t Motor_Def;
uint16_t Motor_Vent_SFL;
uint16_t Motor_Vent_CFL;
@ -99,8 +105,10 @@ typedef struct {
uint16_t Motor_SealingValve;
} tStatus_Actuator;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t DuctTgt_Vent_FL;
uint16_t DuctTgt_Foot_FL;
uint16_t DuctTgt_Vent_FR;
@ -109,14 +117,18 @@ typedef struct {
uint16_t DuctTgt_RR;
} tStatus_Duct_Tgt;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t EvaTgt_F;
uint16_t EvaTgt_R;
} tStatus_Eva_Tgt;
// 0 = Off!0 = On 1 Byte [0x00] Off [0x01..0xFF] On; Inverse value: 0x01
typedef struct {
typedef struct __attribute__ ((packed)) {
uint8_t _2_Way_Valve;
uint8_t IncarMotor_Front;
uint8_t IncarMotor_Rear;
@ -127,13 +139,15 @@ typedef struct {
uint8_t PTC_2;
} tStatus_IO;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) [0x00..0x03E8] ; y = (1/10)x %; Lower limit (phys): 0 %; Upper limit (phys): 100 %; Invalid values: [0x03E9..0xFFFE] Invalid signal (Invalid) [0xFFFF] Not implemented (Not implemented)
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t Pwm_Front;
uint16_t Pwm_Rear;
} tStatus_Pwm;
typedef struct {
typedef struct __attribute__ ((packed)) {
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
@ -149,24 +163,30 @@ typedef struct {
uint8_t LowTempValve;
} tStatus_eComp;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola)
//[0x00..0x03E8] ; y = (1/10)x %; Lower limit (phys): 0 %; Upper limit (phys): 100 %;
//Invalid values:
//[0x03E9..0xFFFE] Invalid signal (Invalid)
//[0xFFFF] Not implemented (Not implemented)
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t CoolingFan;
} tStatus_External;
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
//[0x01..0xFF] On; Inverse value: 0x01
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t EMS_Chiller_Req;
} tStatus_EMS;
typedef struct {
typedef struct __attribute__ ((packed)) {
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
@ -175,15 +195,17 @@ typedef struct {
eAromatizationIntensivity AromatizationIntensivity;
} tStatus_Ionizer_Aroma;
// 1 Byte [0x00] Central [0x01..0xFF] Side; Inverse value: 0x01
typedef struct {
typedef struct __attribute__ ((packed)) {
uint8_t Duct_FL;
uint8_t Duct_FR;
uint8_t Duct_RL;
uint8_t Duct_RR;
} tStatus_Duct_Select;
typedef struct {
typedef struct __attribute__ ((packed)) {
// 2 Byte; HighLow (Motorola)
uint16_t Calibration_Num;
// Packet [4] Byte
@ -207,9 +229,11 @@ typedef struct {
//[0x04..0x80] No signal (Not supported)
//[0x81..0x83] Undefined
//[0x84..0xFF] No signal (Not supported)
typedef struct {
typedef struct __attribute__ ((packed)) {
uint16_t Active_Diagnostic_Session;
} tStatus_Active_Diagnostic_Session;
#pragma scalar_storage_order little-endian
typedef struct {
tStatus_CCU_Configuration Status_CCU_Configuration;
@ -247,7 +271,6 @@ typedef struct {
char ECU_software_number_ECU_supplier[2];
char ECU_boot_software_identification_ECU_supplier[2];
} tStatusData;
typedef struct {