Commit 98c717de authored by hu's avatar hu

调整胎压数据处理问题

parent feb563ae
...@@ -29,21 +29,21 @@ void Data_TPMS_KL30_Init(void) ...@@ -29,21 +29,21 @@ void Data_TPMS_KL30_Init(void)
TPMS_Out[FourthROut].TPMSTyreID = FourthROutID; TPMS_Out[FourthROut].TPMSTyreID = FourthROutID;
TPMS_Out[FourthRIn].TPMSTyreID = FourthRInID; TPMS_Out[FourthRIn].TPMSTyreID = FourthRInID;
TPMS_Out[FirstLOut].TPMSDataInvalidTime = 600u; TPMS_Out[FirstLOut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[FirstROut].TPMSDataInvalidTime = 600u; TPMS_Out[FirstROut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[SecondLIn].TPMSDataInvalidTime = 600u; TPMS_Out[SecondLIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[SecondRIn].TPMSDataInvalidTime = 600u; TPMS_Out[SecondRIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[ThirdLOut].TPMSDataInvalidTime = 600u; TPMS_Out[ThirdLOut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[ThirdLIn].TPMSDataInvalidTime = 600u; TPMS_Out[ThirdLIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[ThirdROut].TPMSDataInvalidTime = 600u; TPMS_Out[ThirdROut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[ThirdRIn].TPMSDataInvalidTime = 600u; TPMS_Out[ThirdRIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[FourthLOut].TPMSDataInvalidTime = 600u; TPMS_Out[FourthLOut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[FourthLIn].TPMSDataInvalidTime = 600u; TPMS_Out[FourthLIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[FourthROut].TPMSDataInvalidTime = 600u; TPMS_Out[FourthROut].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
TPMS_Out[FourthRIn].TPMSDataInvalidTime = 600u; TPMS_Out[FourthRIn].TPMSDataInvalidTime = TPMSDataInvaliTimeNUM;
} }
/****************************************************************************** /******************************************************************************
Function:Data_TPMS_KL15_ON_Init Function:Data_TPMS_KL15_ON_Init
...@@ -56,7 +56,7 @@ void Data_TPMS_KL15_ON_Init(void) ...@@ -56,7 +56,7 @@ void Data_TPMS_KL15_ON_Init(void)
} }
/****************************************************************************** /******************************************************************************
Function:Data_TPMS_Value_Processing Function:Data_TPMS_Value_Processing
Description:数据处理总接口 100ms任务 Description:数据处理总接口 ms任务
Input: Input:
Output: Output:
******************************************************************************/ ******************************************************************************/
...@@ -158,6 +158,11 @@ void Get_Data_TPMS_Value(TPMSNUM_t TPMSTyreID) ...@@ -158,6 +158,11 @@ void Get_Data_TPMS_Value(TPMSNUM_t TPMSTyreID)
TPMS_Out[TPMSTyreID].TPMSDataInvalidTime = 0xFFFFu; TPMS_Out[TPMSTyreID].TPMSDataInvalidTime = 0xFFFFu;
} }
} }
if (CAN_MSG_Status(ID_CanMsg18011733_Msg_Count) == CAN_SIG_LOST)
{
TPMS_Out[TPMSTyreID].TPMSPressure = 0x00u;
TPMS_Out[TPMSTyreID].TPMSTemp = 0x00u;
}
} }
/****************************************************************************** /******************************************************************************
...@@ -168,8 +173,7 @@ void Get_Data_TPMS_Value(TPMSNUM_t TPMSTyreID) ...@@ -168,8 +173,7 @@ void Get_Data_TPMS_Value(TPMSNUM_t TPMSTyreID)
******************************************************************************/ ******************************************************************************/
void Get_Data_TPMS_Status(TPMSNUM_t TPMSTyreID) void Get_Data_TPMS_Status(TPMSNUM_t TPMSTyreID)
{ {
if ((TPMS_Out[TPMSTyreID].TPMSTyreID == Get_ID_18011733_Sig_Tire_Index()) && if (TPMS_Out[TPMSTyreID].TPMSTyreID == Get_ID_18011733_Sig_Tire_Index())
(TPMS_Out[TPMSTyreID].TPMSDataInvalidTime <= 600u))
{ {
/*低气压报警 */ /*低气压报警 */
TPMS_Out[TPMSTyreID].TPMSLowpressure = Get_ID_18011733_Sig_Low_Presure_Alarm(); TPMS_Out[TPMSTyreID].TPMSLowpressure = Get_ID_18011733_Sig_Low_Presure_Alarm();
...@@ -186,7 +190,7 @@ void Get_Data_TPMS_Status(TPMSNUM_t TPMSTyreID) ...@@ -186,7 +190,7 @@ void Get_Data_TPMS_Status(TPMSNUM_t TPMSTyreID)
/*传感器故障信息 */ /*传感器故障信息 */
TPMS_Out[TPMSTyreID].TPMSSensorfault = Get_ID_18011733_Sig_Sensor_fault_information(); TPMS_Out[TPMSTyreID].TPMSSensorfault = Get_ID_18011733_Sig_Sensor_fault_information();
} }
else else if (CAN_MSG_Status(ID_CanMsg18011733_Msg_Count) == CAN_SIG_LOST)
{ {
/*低气压报警 */ /*低气压报警 */
TPMS_Out[TPMSTyreID].TPMSLowpressure = 0u; TPMS_Out[TPMSTyreID].TPMSLowpressure = 0u;
...@@ -226,7 +230,7 @@ uint16_t Get_DataTPMS_Pressure_Sta(TPMSNUM_t TPMSTyreID) ...@@ -226,7 +230,7 @@ uint16_t Get_DataTPMS_Pressure_Sta(TPMSNUM_t TPMSTyreID)
{ {
uint16_t Pressure_Sta = 0u; uint16_t Pressure_Sta = 0u;
if ((TPMS_Out[TPMSTyreID].TPMSDataInvalidTime) >= 600u) /*数据超时 掉线或轮刷超时*/ if ((TPMS_Out[TPMSTyreID].TPMSDataInvalidTime) >= TPMSDataInvaliTimeNUM) /*数据超时 掉线或轮刷超时*/
{ {
Pressure_Sta = (uint16_t)STATUS_TIMEOUT; Pressure_Sta = (uint16_t)STATUS_TIMEOUT;
} }
...@@ -286,7 +290,7 @@ uint16_t Get_DataTPMS_Temp_Sta(TPMSNUM_t TPMSTyreID) ...@@ -286,7 +290,7 @@ uint16_t Get_DataTPMS_Temp_Sta(TPMSNUM_t TPMSTyreID)
Get_Temp_Value = Get_DataTPMS_Temp_Value(TPMSTyreID); Get_Temp_Value = Get_DataTPMS_Temp_Value(TPMSTyreID);
if (TPMS_Out[TPMSTyreID].TPMSDataInvalidTime >= 600u) /*数据超时 掉线或轮刷超时*/ if (TPMS_Out[TPMSTyreID].TPMSDataInvalidTime >= TPMSDataInvaliTimeNUM) /*数据超时 掉线或轮刷超时*/
{ {
Temp_Value = (uint16_t)STATUS_TIMEOUT; Temp_Value = (uint16_t)STATUS_TIMEOUT;
} }
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#define FourthROutID 0x44u #define FourthROutID 0x44u
#define TYRETEMP_OFFSET_VALUE (128u) /*胎温数据偏移量*/ #define TYRETEMP_OFFSET_VALUE (128u) /*胎温数据偏移量*/
#define TPMSDataInvaliTimeNUM 600u
typedef enum typedef enum
{ {
......
...@@ -183,8 +183,8 @@ void Popups_Polling(void) ...@@ -183,8 +183,8 @@ void Popups_Polling(void)
/*5.--4--ASR工作*/ /*5.--4--ASR工作*/
variable_1 = (uint8_t)Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State();/*byte6 78*/ variable_1 = (uint8_t)Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State();/*byte6 78*/
variable_2 = (uint8_t)Get_ID_18FE4F0B_Sig_VDC_Lamp_State(); /*byte1 12*/ variable_2 = (uint8_t)Get_ID_18F0010B_Sig_ASR_Lamp_State(); /*byte1 12*/
variable_3 = (uint8_t)Get_ID_18FE4F0B_Sig_VDC_Fully_operational();/*byte1 34*/ variable_3 = (uint8_t)Get_ID_18F0010B_Sig_ASR_Brake_Control_Active();/*byte1 34*/
if (((variable_2 == 0x01u) || (variable_3 == 0x01u)) && (K_Line_Set.K_Line_LID21 == 0x01u)) //|| (variable_1 == 0x01)) if (((variable_2 == 0x01u) || (variable_3 == 0x01u)) && (K_Line_Set.K_Line_LID21 == 0x01u)) //|| (variable_1 == 0x01))
{ {
Popup_Request(POPUT1_ASR_OPERATE); Popup_Request(POPUT1_ASR_OPERATE);
......
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
#include "kwp2000_service.h" #include "kwp2000_service.h"
#include "CAN_FUNC.h" #include "CAN_FUNC.h"
#include "GPIO.h" #include "GPIO.h"
#include "DisplaySch_user.h"
#include "DispSch.h"
#pragma alignvar(8) #pragma alignvar(8)
Display_Modular_St Display_DTC[DTCNumeber + 1u]; Display_Modular_St Display_DTC[DTCNumeber + 1u];
...@@ -546,50 +548,72 @@ void GUI_TFTTelltales_Display(uint8_t Mode) ...@@ -546,50 +548,72 @@ void GUI_TFTTelltales_Display(uint8_t Mode)
uint8_t EBSWarning_State = 0u; uint8_t EBSWarning_State = 0u;
uint32_t u32IG_ON_Timer = 0x00u;
UElib_uint16_t HMI_MENU_Sta = 0u;
u32IG_ON_Timer = Common_GetIgnOnTime();
HMI_MENU_Sta = Get_Cur_HMI();
if (Mode == GUI_DISP_MODE_NORMAL) if (Mode == GUI_DISP_MODE_NORMAL)
{ {
/*B9硬线输出*/ if ((u32IG_ON_Timer <= 7500ul) && (HMI_MENU_Sta == Display_Menu))
if ((Get_ID_18F00503_Sig_Current_Gear() == 0x7Bu) ||
(Get_ID_18F00503_Sig_Current_Gear() == 0x7Cu))
{ {
USB_SDO_MCU = 1;/*三极管 8050*/ GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_01_1, 21u, GUI_DISP_LEMPY[0u], GUI_BLENDMODE_SRC_OVER);
if (K_Line_Set.K_Line_LID21 == 0x01u)
{
GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_02_1, 21u, GUI_DISP_LEMPY[1u], GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
} }
else else
{ {
USB_SDO_MCU = 0; /*B9硬线输出*/
} if ((Get_ID_18F00503_Sig_Current_Gear() == 0x7Bu) ||
(Get_ID_18F00503_Sig_Current_Gear() == 0x7Cu))
/*超速报警指示灯*/ {
Veh_Speed = Common_Get_Disp_V_Speed(); USB_SDO_MCU = 1;/*三极管 8050*/
Veh_Speed = Veh_Speed / 10u; }
else
{
USB_SDO_MCU = 0;
}
Veh_SpeedLim = (uint32_t)Get_ID_18FEED00_Sig_Maximum_Vehicle_Speed_Limit(); /*超速报警指示灯*/
CanStatus1 = CAN_MSG_Status(ID_CanMsg18FEED00_Msg_Count); Veh_Speed = Common_Get_Disp_V_Speed();
Veh_Speed = Veh_Speed / 10u;
if ((Veh_Speed >= Veh_SpeedLim) && (CanStatus1 != CAN_SIG_LOST)) Veh_SpeedLim = (uint32_t)Get_ID_18FEED00_Sig_Maximum_Vehicle_Speed_Limit();
{ CanStatus1 = CAN_MSG_Status(ID_CanMsg18FEED00_Msg_Count);
GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_01_1, 21u, GUI_DISP_LEMPY[0u], GUI_BLENDMODE_SRC_OVER);
}
/*EBS Red指示灯*/ if ((Veh_Speed >= Veh_SpeedLim) && (CanStatus1 != CAN_SIG_LOST))
EBSLamp_State = Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(); {
CanStatus2 = CAN_MSG_Status(ID_CanMsg18F0010B_Msg_Count); GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_01_1, 21u, GUI_DISP_LEMPY[0u], GUI_BLENDMODE_SRC_OVER);
}
if (((EBSLamp_State == 0x01u) || (CanStatus2 == CAN_SIG_LOST)) && (K_Line_Set.K_Line_LID21 == 0x01u)) CanStatus2 = CAN_MSG_Status(ID_CanMsg18F0010B_Msg_Count);
{ /*EBS Red指示灯*/
GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_02_1, 21u, GUI_DISP_LEMPY[1u], GUI_BLENDMODE_SRC_OVER); EBSLamp_State = Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State();
} /*EBS Yellow指示灯*/
EBSWarning_State = Get_ID_18F0010B_Sig_EBS_Amber_Warning_State();
/*EBS Yellow指示灯*/
EBSWarning_State = Get_ID_18F0010B_Sig_EBS_Amber_Warning_State();
if (((EBSWarning_State == 0x01u) || (CanStatus2 == CAN_SIG_LOST)) && (K_Line_Set.K_Line_LID21 == 0x01u)) if (((EBSLamp_State == 0x01u) || (CanStatus2 == CAN_SIG_LOST)) && (K_Line_Set.K_Line_LID21 == 0x01u))
{ {
GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_03, 21u, GUI_DISP_LEMPY[2u], GUI_BLENDMODE_SRC_OVER); GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_02_1, 21u, GUI_DISP_LEMPY[1u], GUI_BLENDMODE_SRC_OVER);
} }
else else if (((EBSWarning_State == 0x01u) || (CanStatus2 == CAN_SIG_LOST)) && (K_Line_Set.K_Line_LID21 == 0x01u))
{ {
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER); GUI_Translate_Display(WarningLight_Sprite, CN_Alarm_03, 21u, GUI_DISP_LEMPY[1u], GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
} }
} }
else else
...@@ -761,6 +785,7 @@ void GUI_AdBlue_Dispaly(uint8_t Mode) ...@@ -761,6 +785,7 @@ void GUI_AdBlue_Dispaly(uint8_t Mode)
break; break;
case 0x01u: case 0x01u:
case 0x00u:
GUI_General_Display(AdBlue_Sprite, CN_tianlanye, GUI_BLENDMODE_SRC_OVER); /*框*/ GUI_General_Display(AdBlue_Sprite, CN_tianlanye, GUI_BLENDMODE_SRC_OVER); /*框*/
GUI_General_Display(AdBlue_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER); GUI_General_Display(AdBlue_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment