Commit 80ab578f authored by hu's avatar hu

增加指示灯逻辑

parent b1ebd45e
This diff is collapsed.
This diff is collapsed.
......@@ -5,7 +5,7 @@
* Author: QTC
*/
#define GLOBALS_APP_SYS
#define GLOBALS_APP_SYS
#include "../app_Headers/g_includes.h"
/*-------------------------------------------------------------------------
......@@ -46,19 +46,18 @@ void App_Paramer_Init(void)
bWaterReAlarmCn = 30;
//
Dis_Num = 0;
g_canClock.BusOffTime = null;
g_canClock.BusOffTime = null;
g_canClock.CanKeepTime = null;
g_canClock.CanDataCn = null;
g_canClock.CanDataCn = null;
//Enable_signal(g_canClock.signal.ExistF004);
// g_canClock.IDF004Cn = 200; //10ms
// g_canClock.IDFE56Cn = 200; //10ms
g_Init.InitLedCheckTime = 0;
g_Init.InitLedCheckOBDTime = 0;
g_canMsgFE56.ProceF == EMPTY;
if(G_Button.MainMenu != 4)
if (G_Button.MainMenu != 4)
{
G_Button.MainMenu = 1;
......@@ -79,16 +78,11 @@ void App_Paramer_Init(void)
Disable_signal(g_sysFlag.Bits.FuelMeterInit);
Disable_signal(g_sysFlag.Bits.AdjEnable);
Disable_signal(g_sysFlag.Bits.PowerLvi);
if(!g_sysFlag.Bits.WakeUpState)
if (!g_sysFlag.Bits.WakeUpState)
{
Enable_signal(g_sysFlag.Bits.CanWakeUp);
}
//motor
g_vehMeter.Dir = keep_local;
g_vehMeter.DestPosition = null;
......@@ -159,15 +153,15 @@ void App_Paramer_Init(void)
g_runStep = SYS_INIT_TASK;
g_accTime = null;
g_accVeh = null;
g_accVeh = null;
g_accKmClrStep = null;
Api_Set10msTimer(T1_10ms, (_Clock *)&g_Clock);
Api_SetBaseTimer(T_100ms, (_Clock *)&g_Clock);
Gui_Offset_Init();
bDSTable[ID_FUELLOW] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_ADBLUE ] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_FUELLOW] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_ADBLUE] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
////////////////////glz--20170107
CanMinuteTime = 0;
bCurMenuIDX = 0;
......@@ -185,7 +179,6 @@ void App_Paramer_Init(void)
--------------------------------------------------------------------------*/
void App_State_OFF(void)
{
}
/*-------------------------------------------------------------------------
* Function Name : App_StarUpInfo
......@@ -215,31 +208,19 @@ void App_StarUpInfo(void)
Disable_signal(g_gas1Meter.MakeZero);
Disable_signal(g_gas2Meter.MakeZero);
g_OverSpeed = 120;
g_fuelMeter.OldPosition = null;
Gui_MenuInit();
Gui_Offset_Init();
g_runStep = SYS_INIT_TASK;
pABSout = LEDOFF;
pOilout = LEDOFF;
pFuelOut = LEDOFF;
pTempOut = LEDOFF;
pABSout = LEDOFF;
pOilout = LEDOFF;
pFuelOut = LEDOFF;
pTempOut = LEDOFF;
}
/*-------------------------------------------------------------------------
......@@ -253,20 +234,19 @@ void App_StarUpInfo(void)
void App_Load_Data(void)
{
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *) &Rev_RedLight, 8);
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Rev_RedLight, 6);
if((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *)&Rev_RedLight, 8);
g_chksun = Api_CreateCRCCheckSum((INT8U *)&Rev_RedLight, 6);
if ((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
{
Rev_RedLight.RevRedLight = 3200;
Rev_RedLight.bSetAdblue = 0;
Rev_RedLight.bSetCheck = 0;
Rev_RedLight.bSetAdblue = 0;
Rev_RedLight.bSetCheck = 0;
}
///
bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *) &Radio, 10);
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Radio, 8);
if((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun))
//
bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *)&Radio, 10);
g_chksun = Api_CreateCRCCheckSum((INT8U *)&Radio, 8);
if ((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun))
{
Radio.RevRadio = 2;
Radio.VehRadio = 520;
......@@ -277,7 +257,7 @@ void App_Load_Data(void)
Api_ReadMeterInfo(0xa0, EE_VEH_ADDR, (INT8U *)&g_vehMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *)&g_vehMeterInfo.Resistor[0], g_vehMeterInfo.bFlag, 33);
if((g_vehMeterInfo.bFlag != 0x55) || (g_vehMeterInfo.bCheckSun != g_chksun))
if ((g_vehMeterInfo.bFlag != 0x55) || (g_vehMeterInfo.bCheckSun != g_chksun))
{
g_vehMeterInfo.bVirtualVal = 8;
g_vehMeterInfo.Resistor[0] = 0;
......@@ -290,13 +270,13 @@ void App_Load_Data(void)
g_vehMeterInfo.Resistor[7] = 140;
g_vehMeterInfo.DashStep[0] = 0;
g_vehMeterInfo.DashStep[1] = 360; //20
g_vehMeterInfo.DashStep[1] = 360; //20
g_vehMeterInfo.DashStep[2] = 735; //40
g_vehMeterInfo.DashStep[3] = 1085; //60
g_vehMeterInfo.DashStep[4] = 1445; //80
g_vehMeterInfo.DashStep[5] = 1805; //100
g_vehMeterInfo.DashStep[6] = 2165; //120
g_vehMeterInfo.DashStep[7] = 2525; // 140
g_vehMeterInfo.DashStep[3] = 1085; //60
g_vehMeterInfo.DashStep[4] = 1445; //80
g_vehMeterInfo.DashStep[5] = 1805; //100
g_vehMeterInfo.DashStep[6] = 2165; //120
g_vehMeterInfo.DashStep[7] = 2525; // 140
}
g_vehLcdInfo.bVirtualVal = g_vehMeterInfo.bVirtualVal;
......@@ -319,10 +299,10 @@ void App_Load_Data(void)
g_vehLcdInfo.DashStep[7] = g_vehMeterInfo.DashStep[7];
//
Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *) &g_revMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *) &g_revMeterInfo.Resistor[0], g_revMeterInfo.bFlag, 33);
Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *)&g_revMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *)&g_revMeterInfo.Resistor[0], g_revMeterInfo.bFlag, 33);
if((g_revMeterInfo.bFlag != 0x55) || (g_revMeterInfo.bCheckSun != g_chksun))
if ((g_revMeterInfo.bFlag != 0x55) || (g_revMeterInfo.bCheckSun != g_chksun))
{
g_revMeterInfo.bVirtualVal = 5;
g_revMeterInfo.Resistor[0] = 0;
......@@ -335,15 +315,16 @@ void App_Load_Data(void)
g_revMeterInfo.Resistor[7] = 0;
g_revMeterInfo.DashStep[0] = 0;
g_revMeterInfo.DashStep[1] = 256; //
g_revMeterInfo.DashStep[2] = 476; //
g_revMeterInfo.DashStep[3] = 1356; //
g_revMeterInfo.DashStep[4] = 2236; //
g_revMeterInfo.DashStep[5] = 0; //
g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; //
g_revMeterInfo.DashStep[1] = 256; //
g_revMeterInfo.DashStep[2] = 476; //
g_revMeterInfo.DashStep[3] = 1356; //
g_revMeterInfo.DashStep[4] = 2236; //
g_revMeterInfo.DashStep[5] = 0; //
g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; //
}
//////
//
g_gas1MeterInfo.bVirtualVal = 7;
g_gas1MeterInfo.Resistor[0] = 102; //0
......@@ -356,13 +337,13 @@ void App_Load_Data(void)
g_gas1MeterInfo.Resistor[7] = 0;
g_gas1MeterInfo.DashStep[0] = 0;
g_gas1MeterInfo.DashStep[1] = 240; //
g_gas1MeterInfo.DashStep[2] = 480; //
g_gas1MeterInfo.DashStep[1] = 240; //
g_gas1MeterInfo.DashStep[2] = 480; //
g_gas1MeterInfo.DashStep[3] = 720; //
g_gas1MeterInfo.DashStep[4] = 960; //
g_gas1MeterInfo.DashStep[5] = 1200; //
g_gas1MeterInfo.DashStep[6] = 1440; //
g_gas1MeterInfo.DashStep[7] = 0; //
g_gas1MeterInfo.DashStep[5] = 1200; //
g_gas1MeterInfo.DashStep[6] = 1440; //
g_gas1MeterInfo.DashStep[7] = 0; //
//
g_gas2MeterInfo.bVirtualVal = 7;
......@@ -377,13 +358,13 @@ void App_Load_Data(void)
g_gas2MeterInfo.Resistor[7] = 0;
g_gas2MeterInfo.DashStep[0] = 0;
g_gas2MeterInfo.DashStep[1] = 240; //
g_gas2MeterInfo.DashStep[2] = 480; //
g_gas2MeterInfo.DashStep[1] = 240; //
g_gas2MeterInfo.DashStep[2] = 480; //
g_gas2MeterInfo.DashStep[3] = 720; //
g_gas2MeterInfo.DashStep[4] = 960; //
g_gas2MeterInfo.DashStep[5] = 1200; //
g_gas2MeterInfo.DashStep[6] = 1440; //
g_gas2MeterInfo.DashStep[7] = 0; //
g_gas2MeterInfo.DashStep[5] = 1200; //
g_gas2MeterInfo.DashStep[6] = 1440; //
g_gas2MeterInfo.DashStep[7] = 0; //
//////
g_tempMeterInfo.bVirtualVal = 6;
......@@ -392,7 +373,7 @@ void App_Load_Data(void)
g_tempMeterInfo.Resistor[2] = 112;
g_tempMeterInfo.Resistor[3] = 55;
g_tempMeterInfo.Resistor[4] = 40;
g_tempMeterInfo.Resistor[5] = 26; //
g_tempMeterInfo.Resistor[5] = 26; //
g_tempMeterInfo.Resistor[6] = 0; //
g_tempMeterInfo.Resistor[7] = 0; //
......@@ -413,9 +394,9 @@ void App_Load_Data(void)
g_tempcanMeterInfo.Resistor[2] = 80;
g_tempcanMeterInfo.Resistor[3] = 100;
g_tempcanMeterInfo.Resistor[4] = 110;
g_tempcanMeterInfo.Resistor[5] = 115; //
g_tempcanMeterInfo.Resistor[6] = 0; //
g_tempcanMeterInfo.Resistor[7] = 0; //
g_tempcanMeterInfo.Resistor[5] = 115; //
g_tempcanMeterInfo.Resistor[6] = 0; //
g_tempcanMeterInfo.Resistor[7] = 0; //
g_tempcanMeterInfo.DashStep[0] = 0;
g_tempcanMeterInfo.DashStep[1] = 35;
......@@ -445,7 +426,6 @@ void App_Load_Data(void)
g_fuelMeterInfo.DashStep[6] = 0;
g_fuelMeterInfo.DashStep[7] = 0;
g_fuelEcoParamer.bVirtualVal = 4;
g_fuelEcoParamer.Resistor[0] = 0;
......@@ -462,8 +442,7 @@ void App_Load_Data(void)
w1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1];
VehFreLimit = w / (w1 * Radio.VehRadio * Radio.VehNum / 3600) / 4;
w = TPM1Clock;
w1 = g_revMeterInfo.Resistor[ g_revMeterInfo.bVirtualVal - 1];
RevFreLimit = w / (w1 * Radio.RevRadio / 60) / 4;
w1 = g_revMeterInfo.Resistor[g_revMeterInfo.bVirtualVal - 1];
RevFreLimit = w / (w1 * Radio.RevRadio / 60) / 4;
Rev_Limit = App_CalMicroStep((INT32U)Rev_RedLight.RevRedLight, (_EE_MeterInfo *)&g_revMeterInfo);
}
......@@ -240,6 +240,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID64775_00Cn == null)
{
g_CanSwith.OilLamp1 = 0;
g_CanSwith.EngMIL1 = 0;
g_CanSwith.EngFailure1 = 0;
g_CanSwith.EngFailure4 = 0;
......@@ -321,8 +322,6 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_00Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_00);
}
}
......@@ -340,7 +339,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_29Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_29);
}
......@@ -359,7 +358,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_0FCn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_0F);
}
......@@ -378,7 +377,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_10Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_10);
}
......@@ -444,7 +443,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID65248Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist65248);
}
......@@ -641,6 +640,7 @@ void App_CheckCanDrop(void)
if (g_canClock.ID61441Cn == null)
{
g_CanSwith.ABSLamp = 0;
g_CanSwith.ABSLamp1 = 0;
g_CanSwith.ASR = 0;
g_CanSwith.ESPoff = 0;
......
......@@ -163,6 +163,7 @@
#define wdt_reset() __RESET_WATCHDOG()
//-- 机油压力 --//
#define P_55kpa 14
#define P_60kpa 15
#define P_68kpa 17
#define P_80kpa 20
......
......@@ -11,7 +11,7 @@ Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12
AEFWarningDialog=FALSE
MainFrame=2,3,-1,-1,-1,-1,248,32,1208,692
MainFrame=2,3,-32000,-32000,-1,-1,248,32,1208,692
TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
Configuration=TBDML.hwc
Statusbar=1
......
......@@ -120,7 +120,7 @@ void App_ReceiveCanMsg(void)
}
//驾驶员警告(黄)
if ((g_canMsg65279.Data[1] & 0x07) == 0x01) //2020-10-08(改功能)
if ((g_canMsg65279.Data[1] & 0x07) == 0x01)
{
g_CanSwith.DriverWarn = S_on;
}
......@@ -166,11 +166,29 @@ void App_ReceiveCanMsg(void)
if (g_canMsg64892.ProceF == MSG_FULL)
{
//DPF指示灯
if ((g_canMsg64892.Data[0] & 0x07) == 0x01)
if ((g_canMsg64892.Data[0] & 0x07) == 1)
{
g_CanSwith.DPF = 1;
g_CanSwith.DPFf = 0;
g_CanSwith.DPF_Red = 0;
}
else if ((g_canMsg64892.Data[0] & 0x07) == 4)
{
g_CanSwith.DPFf = 1;
g_CanSwith.DPF = 0;
g_CanSwith.DPF_Red = 0;
}
else if ((g_canMsg64892.Data[0] & 0x07) == 2)
{
g_CanSwith.DPF_Red = 1;
g_CanSwith.DPF = 0;
g_CanSwith.DPFf = 0;
}
else
{
g_CanSwith.DPF = 0;
g_CanSwith.DPFf = 0;
g_CanSwith.DPF_Red = 0;
}
//新加禁止DPF指示
......@@ -194,7 +212,7 @@ void App_ReceiveCanMsg(void)
//}
//发动机排气温度高指示灯
if ((g_canMsg64892.Data[6] & 0x1c) == 0x01)
if ((g_canMsg64892.Data[6] & 0x1c) == 0x04)
{
g_CanSwith.DpfHiTemp = 1;
}
......@@ -209,8 +227,18 @@ void App_ReceiveCanMsg(void)
//64775 0x18FD0700
if (g_canMsg64775_00.ProceF == MSG_FULL)
{
//发动机排放故障OBD1
//发动机故障EPC1 Engine Red Stop Lamp Command Engine Red Stop Lamp Command Intel 0 4 2 Unsigned
if ((g_canMsg64775_00.Data[0] & 0x30) == 0x10)
{
g_CanSwith.EngFailure1 = 1;
}
else
{
g_CanSwith.EngFailure1 = 0;
}
//发动机排放故障OBD1 MIL OBD Malfunction Indicator Lamp Command Intel 0 6 2
if ((g_canMsg64775_00.Data[0] & 0xC0) == 0x40)
{
g_CanSwith.EngMIL1 = 1;
}
......@@ -219,6 +247,16 @@ void App_ReceiveCanMsg(void)
g_CanSwith.EngMIL1 = 0;
}
//Engine Oil Pressure Low Lamp "Engine Oil Pressure Low Lamp Command 机油压力低灯" Intel 1 12 2
if ((g_canMsg64775_00.Data[1] & 0x30) == 0x10)
{
g_CanSwith.OilLamp1 = 1;
}
else
{
g_CanSwith.OilLamp1 = 0;
}
g_canMsg64775_00.ProceF = EMPOTY;
}
......@@ -275,9 +313,9 @@ void App_ReceiveCanMsg(void)
//ECM_EFL/P1 0x18FEEF00 65263 500 8
if (g_canMsg65263.ProceF == MSG_FULL)
{
if ((ConfigItem.EngConfig == 2) || (ConfigItem.EngConfig == 3))
if (ConfigItem.EngConfig == 0x00)
{
if (g_canMsg65263.Data[3] < P_60kpa)
if (g_canMsg65263.Data[3] < P_55kpa)
{
g_CanSwith.OilLamp = 1;
}
......@@ -286,29 +324,7 @@ void App_ReceiveCanMsg(void)
g_CanSwith.OilLamp = 0;
}
}
else if (ConfigItem.EngConfig == 4)
{
if (g_canMsg65263.Data[3] < P_68kpa)
{
g_CanSwith.OilLamp = 1;
}
else if (g_canMsg65263.Data[3] > P_88kpa)
{
g_CanSwith.OilLamp = 0;
}
}
else if (ConfigItem.EngConfig == 5)
{
if (g_canMsg65263.Data[3] < P_80kpa)
{
g_CanSwith.OilLamp = 1;
}
else if (g_canMsg65263.Data[3] > P_100kpa)
{
g_CanSwith.OilLamp = 0;
}
}
else if ((ConfigItem.EngConfig == 9) || (ConfigItem.EngConfig == 10)) //后加的2020/05/11
else if (ConfigItem.EngConfig == 0x01)
{
if (g_canMsg65263.Data[3] < P_60kpa)
{
......@@ -476,7 +492,16 @@ void App_ReceiveCanMsg(void)
//ABS_EBC1 0x18F0010B 61441 100 8
if (g_canMsg61441.ProceF == MSG_FULL)
{
//ABS
//ABS 1
if ((g_canMsg61441.Data[0] & 0x30) == 0x10)
{
g_CanSwith.ABSLamp1 = 1;
}
else
{
g_CanSwith.ABSLamp1 = 0;
}
//ABS 0
if ((g_canMsg61441.Data[5] & 0x30) == 0x10)
{
g_CanSwith.ABSLamp = 1;
......@@ -485,6 +510,7 @@ void App_ReceiveCanMsg(void)
{
g_CanSwith.ABSLamp = 0;
}
/*
//ASR
if ((g_canMsg61441.Data[5] & 0xC0) == 0x40)
{
......@@ -494,7 +520,7 @@ void App_ReceiveCanMsg(void)
{
g_CanSwith.ASR = 0;
}
*/
g_canMsg61441.ProceF = EMPOTY;
}
......@@ -735,5 +761,4 @@ void App_K30ReceiveCanMsg(void)
g_canMsg60439.ProceF = EMPOTY;
}
}
......@@ -481,116 +481,120 @@ void Api_ClockGenerate(void)
{
g_LED.pParkTime = null;
}
/*
//EBD-pin5
if(pBrakeIn == LOW)
//机油压力-
if (LINE_IN_OILn == LOW)
{
if(g_LED.pBrakeTime < T_0_5s)
if (g_LED.pOilTime < T_0_5s)
{
g_LED.pBrakeTime ++;
g_LED.pOilTime++;
}
}
else
{
g_LED.pBrakeTime = null;
g_LED.pOilTime = null;
}
//ABS
if(pABSIn == LOW)
//机油压力-TFT
if (((LINE_IN_OILn == LOW) && (ConfigItem.EngConfig == 3)) ||
((g_CanSwith.OilLamp) && ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))) ||
((g_CanSwith.OilLamp1) && (ConfigItem.EngConfig == 2)))
{
if(g_LED.ABSFaultTimes < T_0_5s)
if (g_revMeter.CurBoardVal > 300)
{
g_LED.ABSFaultTimes ++;
if (g_LED.pTFTOilTime < T_15_0s)
{
g_LED.pTFTOilTime++;
}
}
else
{
g_LED.pTFTOilTime = 0;
}
}
else
{
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
g_LED.pTFTOilTime = null;
}
//制动蹄片磨损+
if (LINE_IN_HOOVES == HIGH)
{
if(g_LED.pSafeBelt1Time < T_0_5s)
if (g_LED.pBrakeShoeTime < T_0_5s)
{
g_LED.pSafeBelt1Time ++;
g_LED.pBrakeShoeTime++;
}
}
else
{
g_LED.pSafeBelt1Time = null;
g_LED.pBrakeShoeTime = null;
}
//机油压力-
if(pOilIn == LOW)
//取力器-
if (LINE_IN_Power_takeoff == HIGH)
{
if(g_LED.pOilTime < T_0_5s)
if (g_LED.pPowerTakeoffTime < T_0_5s)
{
g_LED.pOilTime ++;
g_LED.pPowerTakeoffTime++;
}
}
else
{
g_LED.pOilTime = null;
g_LED.pPowerTakeoffTime = null;
}
//机油压力-TFT
if(((pOilIn == LOW) && ((ConfigItem.EngConfig == 1)||(ConfigItem.EngConfig == 11)||(ConfigItem.EngConfig == 12)))||
((g_CanSwith.OilLamp) && (((ConfigItem.EngConfig >= 2) && (ConfigItem.EngConfig <= 5))||(ConfigItem.EngConfig == 9)||(ConfigItem.EngConfig == 10))))
/*
//EBD-pin5
if(pBrakeIn == LOW)
{
if(g_revMeter.CurBoardVal > 300)
{
if(g_LED.pTFTOilTime < T_15_0s)
{
g_LED.pTFTOilTime ++;
}
}
else
if(g_LED.pBrakeTime < T_0_5s)
{
g_LED.pTFTOilTime = 0;
g_LED.pBrakeTime ++;
}
}
else
{
g_LED.pTFTOilTime = null;
g_LED.pBrakeTime = null;
}
//排气制动+
if(pExhaustBrakIn == HIGH)
//ABS
if(pABSIn == LOW)
{
if(g_LED.pExhaustBrakTime < T_0_5s)
if(g_LED.ABSFaultTimes < T_0_5s)
{
g_LED.pExhaustBrakTime ++;
g_LED.ABSFaultTimes ++;
}
}
else
{
g_LED.pExhaustBrakTime = null;
}
//制动蹄片磨损+
if(pBrakeShoeIn == HIGH)
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
{
if(g_LED.pBrakeShoeTime < T_0_5s)
if(g_LED.pSafeBelt1Time < T_0_5s)
{
g_LED.pBrakeShoeTime ++;
g_LED.pSafeBelt1Time ++;
}
}
else
{
g_LED.pBrakeShoeTime = null;
g_LED.pSafeBelt1Time = null;
}
//取力器-
if(pPTOIn == HIGH)
//排气制动+
if(pExhaustBrakIn == HIGH)
{
if(g_LED.pPowerTakeoffTime < T_0_5s)
if(g_LED.pExhaustBrakTime < T_0_5s)
{
g_LED.pPowerTakeoffTime ++;
g_LED.pExhaustBrakTime ++;
}
}
else
{
g_LED.pPowerTakeoffTime = null;
g_LED.pExhaustBrakTime = null;
}
//驾驶室锁止-
if(pCabLockIn == LOW)
{
......
......@@ -157,7 +157,9 @@ typedef struct
INT8U DPF_Red : 1;
INT8U ECO : 1;
INT8U CanPowerOver : 1;
INT8U Reserve1 : 3;
INT8U ABSLamp1 : 1;
INT8U OilLamp1 : 1;
INT8U Reserve1 : 1;
INT8U EngFailure4 : 1; //EPC1
INT8U Hazard_Lights : 1; //危险灯
......@@ -853,6 +855,7 @@ typedef struct
INT8U OverSpdConfig;
INT8U LDWSConfig;
INT8U EngConfig;
INT8U BrakeShoeConfig;
} _Config;
typedef struct
......
This diff is collapsed.
......@@ -49,13 +49,20 @@ void Gui_KL15LedDisplay(void)
{
//---------直驱指示灯------
//01 取力器工作
if (1)
if (g_LED.pPowerTakeoffTime >= T_0_3s)
{
LED_Power_TakeOFF_Out = LEDON; //on
if (bCurMenuIDX != _MN_SHOW_ERRINFO)
bDSTable[PicPowerTakeoff] |= DS0_MASK;
if ((bDSTableShowTime[PicPowerTakeoff] == T1_5s) && ((bDSTable[PicPowerTakeoff] & DS0_MASK) == DS0_MASK))
bDSTable[PicPowerTakeoff] = 0;
}
else
{
LED_Power_TakeOFF_Out = LEDOFF; //off
bDSTable[PicPowerTakeoff] = 0;
bDSTableShowTime[PicPowerTakeoff] = 0;
}
//08 安全带
......@@ -69,7 +76,7 @@ void Gui_KL15LedDisplay(void)
}
//09 充电状态——指示灯 不受软件控制
//19 发动机排气系统温度高——指示灯
if (1)
if (g_CanSwith.DpfHiTemp == 0x01u)
{
LED_EXCSysHighTemp_OUT = LEDON; //on
}
......@@ -141,14 +148,24 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D1 油含水 15 油水分离
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D1; //on
}
else
{
BD83790A &= ~BD8379_D1; //off
if (g_CanSwith.WIF)
{
BD83790A |= BD8379_D1; //on
bDSTable[PicWIF] |= DS0_MASK;
}
else
{
BD83790A &= ~BD8379_D1; //off
bDSTable[PicWIF] = 0;
}
}
//BD8379_D2 Svs灯 25 发动机保护灯
if (Test_Hyq)
{
......@@ -158,15 +175,36 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D2; //off
}
//BD8379_D3 20 驾驶员警告
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D3; //on
}
else
{
BD83790A &= ~BD8379_D3; //off
if (g_CanSwith.DriverWarn == S_on)
{
BD83790A |= BD8379_D3; //on
}
else if (g_CanSwith.DriverWarn == S_Flash)
{
//Flash
if (g_CanSwith.OutFlashFlag)
{
BD83790A |= BD8379_D3; //on
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
//BD8379_D4 预留
if (Test_Hyq)
{
......@@ -176,23 +214,137 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D4; //off
}
//BD8379_D5 水温报警灯 5 发动机水温高
if (Test_Hyq)
if (DIDFlag.Bits.DID102CValid == Enable)
{
BD83790A |= BD8379_D5; //on
if (IOCTL_DID102C.FF_Byte == 1)
{
BD83790A |= BD8379_D5; //on
}
else
{
BD83790A &= ~BD8379_D5; //off
}
}
else
{
BD83790A &= ~BD8379_D5; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D5; //on
}
else
{
if ((g_canClock.signal.Exist65262) && (!g_sysFlag.Bits.TempMeterInit) && (CheckStep == 2))
{
if (g_tempMeter.CurPosition >= 160) //8格点亮
{
BD83790A |= BD8379_D5; //on
bDSTable[PicTempHigh] |= DS0_MASK;
}
else
{
if (ConfigItem.TempConfig == 0)
{
if (g_tempMeter.CurPosition <= 133) //解报98degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 1)
{
if (g_tempMeter.CurPosition <= 120) //解报102degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 2)
{
if (g_tempMeter.CurPosition <= 130) //解报103degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 3)
{
if (g_tempMeter.CurPosition <= 140) //解报108degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 4)
{
if (g_tempMeter.CurPosition <= 155) //解报118degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else
{
;
}
}
}
else
{
BD83790A &= ~BD8379_D5; //off
}
}
}
//BD8379_D6 24 巡航指示灯
if (Test_Hyq)
//BD8379_D6 24 巡航指示灯 定速巡航
if (DIDFlag.Bits.DID1018Valid == Enable)
{
BD83790A |= BD8379_D6; //on
if (IOCTL_DID1018.FF_Byte == 1)
{
BD83790A |= BD8379_D6; //on
}
else
{
BD83790A &= ~BD8379_D6; //off
}
}
else
{
BD83790A &= ~BD8379_D6; //off
if (g_CanSwith.CruSysAct)
{
BD83790A |= BD8379_D6; //on
}
else
{
BD83790A &= ~BD8379_D6; //off
}
//定速巡航-LCD
if ((g_CanSwith.CruSysAct) &&
(bCruiseSpeedCur >= 30) && (bCruiseSpeedCur <= 250))
{
if (bCruiseSpeedLast != bCruiseSpeedCur)
{
//非故障信息界面-插入显示
if (bCurMenuIDX != _MN_SHOW_ERRINFO)
bDSTable[PicCruise] |= DS0_MASK;
bDSTableShowTime[PicCruise] = 0;
bDSUpdateFlag = 1;
bCruiseSpeedLast = bCruiseSpeedCur;
}
//显示完删除队列-N
if ((bDSTableShowTime[PicCruise] == T1_5s) && ((bDSTable[PicCruise] & DS0_MASK) == DS0_MASK))
bDSTable[PicCruise] = 0;
}
else
{
bCruiseSpeedLast = 0xffff;
g_ClearCruise = 1;
bDSTable[PicCruise] = 0;
}
}
//BD8379_D7 17 EPS故障
if (Test_Hyq)
......@@ -220,16 +372,16 @@ void Gui_KL15LedDisplay(void)
{
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1) || (ConfigItem.ABS_ESCConfig == 2))
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1))
{
BD83790A |= BD8379_D8; //on
}
}
else
{
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1) || (ConfigItem.ABS_ESCConfig == 2))
if (ConfigItem.ABS_ESCConfig == 0)
{
//can
//ABS_warn_lamp 0x18F0010B 5 46 2
if (g_CanSwith.ABSLamp == 1u)
{
BD83790A |= BD8379_D8; //on
......@@ -243,6 +395,22 @@ void Gui_KL15LedDisplay(void)
DTC_ABSErrFlag = Disable;
}
}
else if (ConfigItem.ABS_ESCConfig == 1)
{
//ABS_active 0x18F0010B 0 4 2
if (g_CanSwith.ABSLamp1 == 1u)
{
BD83790A |= BD8379_D8; //on
bDSTable[PicABS] |= DS0_MASK;
DTC_ABSErrFlag = Enable;
}
else
{
BD83790A &= ~BD8379_D8; //off
bDSTable[PicABS] = 0;
DTC_ABSErrFlag = Disable;
}
}
else
{
;
......@@ -327,7 +495,7 @@ void Gui_KL15LedDisplay(void)
else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))
{
//if ((g_LED.pMILOffTime1 >= T_2_0s) && (OBDLamp == 0))
if (g_LED.pMILOffTime1 >= T_2_0s)
if (g_LED.pMILOffTime1 >= T_2_0s) //延时熄灭
{
BD83790B &= ~BD8379_D0; //off
DTC_OBDErrFlag = Disable;
......@@ -355,13 +523,34 @@ void Gui_KL15LedDisplay(void)
BD83790B &= ~BD8379_D1; //off
}
//BD8379_D2 预热指示灯 14 发动机预热
if (Test_Hyq)
if (DIDFlag.Bits.DID102AValid == Enable)
{
BD83790B |= BD8379_D2; //on
if (IOCTL_DID102A.FF_Byte == 1)
{
BD83790A |= BD8379_D2; //on
}
else
{
BD83790A &= ~BD8379_D2; //off
}
}
else
{
BD83790B &= ~BD8379_D2; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D2; //on
}
else
{
if (g_CanSwith.PreHeat)
{
BD83790A |= BD8379_D2; //on
}
else
{
BD83790A &= ~BD8379_D2; //off
}
}
}
//BD8379_D3 预留2
if (Test_Hyq)
......@@ -394,29 +583,98 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D6 11 发动机故障
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790B |= BD8379_D6; //on
}
else
else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1)) //?ó?????????ó????
{
BD83790B &= ~BD8379_D6; //off
if (g_canClock.signal.Exist64775_00)
{
if (g_CanSwith.EngFailure1)
{
BD83790B |= BD8379_D6; //on
bDSTable[PicEPC] |= DS0_MASK;
DTC_EPCErrFlag = Enable;
}
else
{
BD83790B &= ~BD8379_D6; //off
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Disable;
}
}
else //掉线点亮
{
BD83790B |= BD8379_D6; //on
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Enable;
}
}
//BD8379_D7 机油报警 3 低油压报警
if (Test_Hyq)
if (DIDFlag.Bits.DID100BValid == Enable)
{
BD83790B |= BD8379_D7; //on
if (IOCTL_DID100B.FF_Byte == 1)
{
BD83790B |= BD8379_D7; //on
}
else
{
BD83790B &= ~BD8379_D7; //off
}
}
else
{
BD83790B &= ~BD8379_D7; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790B |= BD8379_D7; //on
}
else
{
if (((g_LED.pOilTime >= T_0_5s) && (ConfigItem.EngConfig == 3)) ||
((g_CanSwith.OilLamp) && ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))) ||
((g_CanSwith.OilLamp1) && (ConfigItem.EngConfig == 2)))
{
BD83790B |= BD8379_D7; //on
}
else
{
BD83790B &= ~BD8379_D7; //off
}
//机油压力低-LCD
if (g_LED.pTFTOilTime > T_10_0s)
{
bDSTable[PicOilLow] |= DS0_MASK;
}
else
{
bDSTable[PicOilLow] = 0;
}
}
}
//BD8379_D8 18 DPF再生(黄色)
if (Test_Hyq)
if (g_CanSwith.DPF || g_CanSwith.DPFf)
{
BD83790B |= BD8379_D8; //on
if (g_CanSwith.DPF)
{
BD83790B |= BD8379_D8; //on
}
else
{
if (g_CanSwith.OutFlashFlag)
{
BD83790B |= BD8379_D8; //on
}
else
{
BD83790B &= ~BD8379_D8; //off
}
}
}
else
{
......@@ -424,7 +682,7 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D9 21 DPF再生(红色)
if (Test_Hyq)
if (g_CanSwith.DPF_Red)
{
BD83790B |= BD8379_D9; //on
}
......@@ -434,15 +692,16 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D10 12 制动蹄片磨损报警
if (Test_Hyq)
if ((g_LED.pBrakeShoeTime >= T_0_3s) && (ConfigItem.BrakeShoeConfig == 0x01))
{
BD83790B |= BD8379_D10; //on
bDSTable[PicBrakePiece] |= DS0_MASK;
}
else
{
BD83790B &= ~BD8379_D10; //off
bDSTable[PicBrakePiece] = 0;
}
//BD8379_D11 门开 门开在30电上
}
/*-------------------------------------------------------------------------
......
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