Обновление

This commit is contained in:
cfif 2026-02-25 13:04:19 +03:00
parent ba8cc5663e
commit 377bd4c7a2
4 changed files with 41 additions and 31 deletions

View File

@ -6,6 +6,8 @@
#include "StatusData.h" #include "StatusData.h"
#include "StatusError.h" #include "StatusError.h"
#define LOG_SIGN "DIAGNOSTIC"
#define LOGGER env->logger
void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger) { void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger) {
@ -29,7 +31,7 @@ static uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env, void
for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) { for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) {
// Тест DTC не был выполнен в текущем цикле работы // Тест DTC не был выполнен в текущем цикле работы
dtc_state_error[i] = UDS_dtc_mask_testNotCompletedThisOperationCycle; // dtc_state_error[i] = UDS_dtc_mask_testNotCompletedThisOperationCycle;
// Тест DTC не был выполнен с момента последней очистки // Тест DTC не был выполнен с момента последней очистки
dtc_state_error[i] |= UDS_dtc_mask_testNotCompletedSinceLastClear; dtc_state_error[i] |= UDS_dtc_mask_testNotCompletedSinceLastClear;
} }
@ -344,6 +346,15 @@ uint32_t SetGetDiagnosticData(tDiagnostic *env, eDiagnosticType diagnosticType,
return ret; return ret;
} }
void setNoBitsDTC(tDiagnostic *env, bool noBitsDTC) {
if (osMutexAcquire(env->access, 1000) == osOK) {
env->isNoBitsDTC = noBitsDTC;
osMutexRelease(env->access);
} else {
LoggerInfoStatic(LOGGER, LOG_SIGN, "Access error setBitsDTC");
}
}
static _Noreturn void Diagnostic_Thread(tDiagnostic *env) { static _Noreturn void Diagnostic_Thread(tDiagnostic *env) {
for (;;) { for (;;) {

View File

@ -27,6 +27,8 @@ typedef struct {
eDiagnosticType diagnosticType; eDiagnosticType diagnosticType;
tLoggerInterface *logger; tLoggerInterface *logger;
bool isNoBitsDTC;
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[512]; uint32_t stack[512];
@ -47,6 +49,8 @@ void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger);
void Diagnostic_StartThread(tDiagnostic *env); void Diagnostic_StartThread(tDiagnostic *env);
void setNoBitsDTC(tDiagnostic *env, bool noBitsDTC);
uint32_t SetGetDiagnosticData(tDiagnostic *env, eDiagnosticType diagnosticType, void *extEnv); uint32_t SetGetDiagnosticData(tDiagnostic *env, eDiagnosticType diagnosticType, void *extEnv);
#endif //HVAC_M7_DIAGNOSTICTASK_H #endif //HVAC_M7_DIAGNOSTICTASK_H

View File

@ -13,9 +13,9 @@ tStatusData statusData;
//------------------------------------------------------------READ-------------------------------------------------------------------------------------------- //------------------------------------------------------------READ--------------------------------------------------------------------------------------------
const eUds_ReadDataByIdentifier_22_com uds_ReadDataByIdentifier_22_com_CF[256] = { const eUds_ReadDataByIdentifier_22_com uds_ReadDataByIdentifier_22_com_CF[256] = {
{&statusData.Status_CCU_Configuration, sizeof(statusData.Status_CCU_Configuration), "0xCF00 : Status_CCU_Configuration"}, {&statusData.ecu.Status_CCU_Configuration, sizeof(statusData.ecu.Status_CCU_Configuration), "0xCF00 : Status_CCU_Configuration"},
{&statusData.Status_Sensor, sizeof(statusData.Status_Sensor), "0xCF01 : Status_Sensor"}, {&statusData.Status_Sensor, sizeof(statusData.Status_Sensor), "0xCF01 : Status_Sensor"},
{&statusData.Status_Actuator_DoorsActuator_FB, sizeof(statusData.Status_Actuator_DoorsActuator_FB), "0xCF02 : Status_Actuator_DoorsActuator_FB"}, {&statusData.Status_Actuator_DoorsActuator, sizeof(statusData.Status_Actuator_DoorsActuator), "0xCF02 : Status_Actuator_DoorsActuator_FB"},
{&statusData.Status_Duct_Tgt, sizeof(statusData.Status_Duct_Tgt), "0xCF03 : Status_Duct_Tgt"}, {&statusData.Status_Duct_Tgt, sizeof(statusData.Status_Duct_Tgt), "0xCF03 : Status_Duct_Tgt"},
{&statusData.Status_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"}, {&statusData.Status_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"},
{NULL, 0, ""}, {NULL, 0, ""},
@ -563,9 +563,9 @@ const eUds_ReadDataByIdentifier_22_com uds_ReadDataByIdentifier_22_com_F1[256] =
const eUds_WriteDataByIdentifier_2E_com uds_WriteDataByIdentifier_2E_com_CF[256] = { const eUds_WriteDataByIdentifier_2E_com uds_WriteDataByIdentifier_2E_com_CF[256] = {
{&statusData.Status_CCU_Configuration, sizeof(statusData.Status_CCU_Configuration), "0xCF00 : Status_CCU_Configuration"}, {&statusData.ecu.Status_CCU_Configuration, sizeof(statusData.ecu.Status_CCU_Configuration), "0xCF00 : Status_CCU_Configuration"},
{&statusData.Status_Sensor, sizeof(statusData.Status_Sensor), "0xCF01 : Status_Sensor"}, {&statusData.Status_Sensor, sizeof(statusData.Status_Sensor), "0xCF01 : Status_Sensor"},
{&statusData.Status_Actuator_DoorsActuator_FB, sizeof(statusData.Status_Actuator_DoorsActuator_FB), "0xCF02 : Status_Actuator_DoorsActuator_FB"}, {&statusData.Status_Actuator_DoorsActuator, sizeof(statusData.Status_Actuator_DoorsActuator), "0xCF02 : Status_Actuator_DoorsActuator_FB"},
{&statusData.Status_Duct_Tgt, sizeof(statusData.Status_Duct_Tgt), "0xCF03 : Status_Duct_Tgt"}, {&statusData.Status_Duct_Tgt, sizeof(statusData.Status_Duct_Tgt), "0xCF03 : Status_Duct_Tgt"},
{&statusData.Status_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"}, {&statusData.Status_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"},
{NULL, 0, ""}, {NULL, 0, ""},
@ -1651,3 +1651,20 @@ const eUds_IoDataByIdentifier_2F_com uds_IoDataByIdentifier_2F_com_F1[256] = {
{NULL, 0, ""}, {NULL, 0, ""},
{NULL, 0, ""} {NULL, 0, ""}
}; };
void setDefaultStatus() {
memset(&statusData.Status_Sensor, 0xFF, sizeof(tStatus_Sensor));
// memset(&statusData.Status_Actuator_DoorsActuator_FB, 0xFF, sizeof(tStatus_Actuator));
memset(&statusData.Status_Actuator_DoorsActuator, 0xFF, sizeof(tStatus_Actuator));
memset(&statusData.Status_Duct_Tgt, 0xFF, sizeof(tStatus_Duct_Tgt));
memset(&statusData.Status_Eva_Tgt, 0xFF, sizeof(tStatus_Eva_Tgt));
memset(&statusData.Status_Activated_Cal_Num, 0xFF, sizeof(tStatus_Activated_Cal_Num));
memset(&statusData.Status_IO, 0xFF, sizeof(tStatus_IO));
memset(&statusData.Status_Pwm, 0xFF, sizeof(tStatus_Pwm));
memset(&statusData.Status_eComp, 0xFF, sizeof(tStatus_eComp));
memset(&statusData.Status_External, 0xFF, sizeof(tStatus_External));
memset(&statusData.Status_EMS, 0xFF, sizeof(tStatus_EMS));
memset(&statusData.Status_Ionizer_Aroma, 0xFF, sizeof(tStatus_Ionizer_Aroma));
statusData.Status_Active_Diagnostic_Session.Active_Diagnostic_Session = 1;
}

View File

@ -8,24 +8,6 @@
#include "stdint.h" #include "stdint.h"
#include "DataNonVolatile.h" #include "DataNonVolatile.h"
typedef enum {
AROMA_NOT_PRESENT = 0,
AROMA_PRESENT = 1,
AROMA_DEFAULT = 0xFF
} eAromaConfiguration;
typedef enum {
ALG_STANDART = 0,
ALG_LIMOUSINE = 1,
ALG_DEFAULT = 0xFF
} eAlgorithmConfiguration;
typedef enum {
REAR_HVAC_NOT_PRESENT = 0,
REAR_HVAC_PRESENT = 1,
REAR_HVAC_DEFAULT = 0xFF
} eRearHVACConfiguration;
typedef enum { typedef enum {
AQS_CLEAR_AIR_LEVEL = 0, AQS_CLEAR_AIR_LEVEL = 0,
AQS_LEVEL_1_LOW = 1, AQS_LEVEL_1_LOW = 1,
@ -44,12 +26,6 @@ typedef enum {
} eAromatizationIntensivity; } eAromatizationIntensivity;
#pragma scalar_storage_order big-endian #pragma scalar_storage_order big-endian
typedef struct __attribute__ ((packed)) {
eAromaConfiguration AromaConfiguration;
eAlgorithmConfiguration AlgorithmConfiguration;
eRearHVACConfiguration RearHVACConfiguration;
} 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; // 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; // 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;
@ -242,10 +218,9 @@ typedef struct __attribute__ ((packed)) {
#pragma scalar_storage_order little-endian #pragma scalar_storage_order little-endian
typedef struct { typedef struct {
tStatus_CCU_Configuration Status_CCU_Configuration;
tStatus_Sensor Status_Sensor; tStatus_Sensor Status_Sensor;
tStatus_Actuator Status_Actuator_DoorsActuator_FB; // tStatus_Actuator Status_Actuator_DoorsActuator_FB;
tStatus_Actuator Status_Actuator_DoorsActuator; tStatus_Actuator Status_Actuator_DoorsActuator;
tStatus_Duct_Tgt Status_Duct_Tgt; tStatus_Duct_Tgt Status_Duct_Tgt;
@ -295,4 +270,7 @@ extern const eUds_IoDataByIdentifier_2F_com uds_IoDataByIdentifier_2F_com_CF[256
extern const eUds_IoDataByIdentifier_2F_com uds_IoDataByIdentifier_2F_com_F1[256]; extern const eUds_IoDataByIdentifier_2F_com uds_IoDataByIdentifier_2F_com_F1[256];
extern tStatusData statusData; extern tStatusData statusData;
void setDefaultStatus();
#endif //HVAC_M7_STATUSDATA_H #endif //HVAC_M7_STATUSDATA_H