diff --git a/DiagnosticTask.c b/DiagnosticTask.c index f6eab12..e12c7fb 100644 --- a/DiagnosticTask.c +++ b/DiagnosticTask.c @@ -6,6 +6,8 @@ #include "StatusData.h" #include "StatusError.h" +#define LOG_SIGN "DIAGNOSTIC" +#define LOGGER env->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) { // Тест DTC не был выполнен в текущем цикле работы - dtc_state_error[i] = UDS_dtc_mask_testNotCompletedThisOperationCycle; + // dtc_state_error[i] = UDS_dtc_mask_testNotCompletedThisOperationCycle; // Тест DTC не был выполнен с момента последней очистки dtc_state_error[i] |= UDS_dtc_mask_testNotCompletedSinceLastClear; } @@ -344,6 +346,15 @@ uint32_t SetGetDiagnosticData(tDiagnostic *env, eDiagnosticType diagnosticType, 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) { for (;;) { diff --git a/DiagnosticTask.h b/DiagnosticTask.h index ad0993f..fb3d2ed 100644 --- a/DiagnosticTask.h +++ b/DiagnosticTask.h @@ -27,6 +27,8 @@ typedef struct { eDiagnosticType diagnosticType; tLoggerInterface *logger; + bool isNoBitsDTC; + struct { osThreadId_t id; uint32_t stack[512]; @@ -47,6 +49,8 @@ void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger); void Diagnostic_StartThread(tDiagnostic *env); +void setNoBitsDTC(tDiagnostic *env, bool noBitsDTC); + uint32_t SetGetDiagnosticData(tDiagnostic *env, eDiagnosticType diagnosticType, void *extEnv); #endif //HVAC_M7_DIAGNOSTICTASK_H diff --git a/StatusData.c b/StatusData.c index fec1bc0..14e0dba 100644 --- a/StatusData.c +++ b/StatusData.c @@ -13,9 +13,9 @@ tStatusData statusData; //------------------------------------------------------------READ-------------------------------------------------------------------------------------------- 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_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_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"}, {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] = { - {&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_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_Eva_Tgt, sizeof(statusData.Status_Eva_Tgt), "0xCF04 : Status_Eva_Tgt"}, {NULL, 0, ""}, @@ -1651,3 +1651,20 @@ const eUds_IoDataByIdentifier_2F_com uds_IoDataByIdentifier_2F_com_F1[256] = { {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; +} \ No newline at end of file diff --git a/StatusData.h b/StatusData.h index bc53975..8d91c9b 100644 --- a/StatusData.h +++ b/StatusData.h @@ -8,24 +8,6 @@ #include "stdint.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 { AQS_CLEAR_AIR_LEVEL = 0, AQS_LEVEL_1_LOW = 1, @@ -44,12 +26,6 @@ typedef enum { } eAromatizationIntensivity; #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; // 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 typedef struct { - tStatus_CCU_Configuration Status_CCU_Configuration; tStatus_Sensor Status_Sensor; - tStatus_Actuator Status_Actuator_DoorsActuator_FB; +// tStatus_Actuator Status_Actuator_DoorsActuator_FB; tStatus_Actuator Status_Actuator_DoorsActuator; 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 tStatusData statusData; + +void setDefaultStatus(); + #endif //HVAC_M7_STATUSDATA_H