Commit 80ab578f authored by hu's avatar hu

增加指示灯逻辑

parent b1ebd45e
#define GLOBALS_API_EE
#include "defines.h"
#include "g_includes.h"
......@@ -18,7 +17,7 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
{
INT8U b;
for(b = 0; b < Nub; b++)
for (b = 0; b < Nub; b++)
{
*Dp++ = *Sp++;
}
......@@ -32,17 +31,17 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
* Return : None
* onther :
--------------------------------------------------------------------------*/
INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub)
INT8U Api_CreateCRCCheckSum(INT8U *p, INT8U Nub)
{
INT8U bCheckSun;
INT8U i;
bCheckSun = null;
while(Nub--)
while (Nub--)
{
bCheckSun ^= *p++;
for(i = 0; i < 8; i++)
for (i = 0; i < 8; i++)
{
if(bCheckSun & 0x01)
if (bCheckSun & 0x01)
{
bCheckSun = (bCheckSun >> 1) ^ 0x8C;
}
......@@ -50,7 +49,7 @@ INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub)
bCheckSun >>= 1;
}
}
return(bCheckSun);
return (bCheckSun);
}
/*-------------------------------------------------------------------------
......@@ -69,13 +68,13 @@ void Api_ReadAccKm(void)
g_AccAddr.CurEEAccddr = EEACC_START;
bsp_WDOG_Feed();
for(; g_AccAddr.CurEEAccddr < EEACC_END;)
for (; g_AccAddr.CurEEAccddr < EEACC_END;)
{
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *) &g_accKm, Register_Len);
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
if((check1 != g_accKm.bCheckSun) || (g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000))
if ((check1 != g_accKm.bCheckSun) || (g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000))
{
g_AccAddr.CurEEAccddr += Register_Len;
}
......@@ -85,24 +84,24 @@ void Api_ReadAccKm(void)
}
bsp_WDOG_Feed();
}
for(; g_AccAddr.CurEEAccddr <= (EEACC_END - Register_Len);)
for (; g_AccAddr.CurEEAccddr <= (EEACC_END - Register_Len);)
{
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *) &g_accKm, Register_Len);
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, g_AccAddr.CurEEAccddr + Register_Len, (INT8U *) &g_oldAccKm, Register_Len);
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, g_AccAddr.CurEEAccddr + Register_Len, (INT8U *)&g_oldAccKm, Register_Len);
bsp_WDOG_Feed();
if((g_accKm.Checkflag == CheckFlag) && (g_oldAccKm.Checkflag == CheckFlag) && \
if ((g_accKm.Checkflag == CheckFlag) && (g_oldAccKm.Checkflag == CheckFlag) &&
(g_accKm.LongAccKm <= 10000000) && (g_oldAccKm.LongAccKm <= 10000000))
{
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
check2 = Api_CreateCRCCheckSum((INT8U *) &g_oldAccKm, Register_Len - 2);
check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
check2 = Api_CreateCRCCheckSum((INT8U *)&g_oldAccKm, Register_Len - 2);
if((check1 == g_accKm.bCheckSun) && (check2 == g_oldAccKm.bCheckSun))
if ((check1 == g_accKm.bCheckSun) && (check2 == g_oldAccKm.bCheckSun))
{
if(g_accKm.LongAccKm <= g_oldAccKm.LongAccKm)
if (g_accKm.LongAccKm <= g_oldAccKm.LongAccKm)
{
if((g_accKm.LongAccKm + 100) > g_oldAccKm.LongAccKm)
if ((g_accKm.LongAccKm + 100) > g_oldAccKm.LongAccKm)
{
g_AccAddr.CurEEAccddr += Register_Len;
}
......@@ -127,23 +126,23 @@ void Api_ReadAccKm(void)
}
bsp_WDOG_Feed();
}
g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *) &g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
if((g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000) || (check1 != g_accKm.bCheckSun))
if ((g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000) || (check1 != g_accKm.bCheckSun))
{
g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, EEBAKACC, (INT8U *) &g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
if((g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000) || (check1 != g_accKm.bCheckSun))
g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, EEBAKACC, (INT8U *)&g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
if ((g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000) || (check1 != g_accKm.bCheckSun))
{
g_accKm.Checkflag = CheckFlag;
g_accKm.LongAccKm = null;
g_accKm.ShortAccKm = null;
RamShortAccKmA=0;
RamShortAccKmA = 0;
g_accKm.RemnantPulse = null;
g_accKm.FuelSum = 3000;
g_accKm.Dis100Km = 400;
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
}
}
......@@ -161,14 +160,14 @@ void Api_ReadAccKm(void)
--------------------------------------------------------------------------*/
void Api_WriteAccReg(void)
{
if((g_accKm.LongAccKm <= 10000000) && (g_ReadState == RunComplete))
if ((g_accKm.LongAccKm <= 10000000) && (g_ReadState == RunComplete))
{
g_accKm.Checkflag = CheckFlag;
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *) &g_accKm, Register_Len);
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
if(g_AccAddr.CurEEAccddr >= EEACC_END)
if (g_AccAddr.CurEEAccddr >= EEACC_END)
{
g_AccAddr.CurEEAccddr = EEACC_START;
}
......@@ -190,7 +189,7 @@ void Api_WriteAccReg(void)
--------------------------------------------------------------------------*/
void Api_ClearAccStock(void)
{
if(g_sysFlag.Bits.AccSaveState)
if (g_sysFlag.Bits.AccSaveState)
{
bsp_WDOG_Feed();
......@@ -203,8 +202,8 @@ void Api_ClearAccStock(void)
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, sizeof(_Register) - 2);
bsp_Delay(5000);
g_accKmClrStep ++;
switch(g_accKmClrStep)
g_accKmClrStep++;
switch (g_accKmClrStep)
{
case 1:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 0, (INT8U *)&g_accKm, Register_Len);
......@@ -233,8 +232,7 @@ void Api_ClearAccStock(void)
g_accKmClrStep = null;
g_sysFlag.Bits.ClearODO = 0;
break;
default:
;
default:;
}
bsp_WDOG_Feed();
......@@ -328,7 +326,7 @@ void Write2EData(void)
INT8U i;
for (i = 0; i < (sizeof(Diag2eData) / 16); i++)
{
(void)bsp_IIC_WritePage(EEPROM_BLOCK_DIAG_2E, (EE_2E_ADDR+(i * 16)), (INT8U *)&Diag2eData + i * 16, 16);
(void)bsp_IIC_WritePage(EEPROM_BLOCK_DIAG_2E, (EE_2E_ADDR + (i * 16)), (INT8U *)&Diag2eData + i * 16, 16);
bsp_Delay(6000);
}
}
......@@ -347,12 +345,12 @@ void Init2EData(void)
for (i = 0; i < (sizeof(Diag2eData) / 16); i++)
{
(void)bsp_IIC_ReadPage(EEPROM_BLOCK_DIAG_2E, (EE_2E_ADDR+(i * 16)), (INT8U *)&Diag2eData + i * 16, 16);
(void)bsp_IIC_ReadPage(EEPROM_BLOCK_DIAG_2E, (EE_2E_ADDR + (i * 16)), (INT8U *)&Diag2eData + i * 16, 16);
bsp_Delay(6000);
}
g_chksun = Api_CreateCRCCheckSum((INT8U*)&Diag2eData,sizeof(Diag2eData)-2);
if((Diag2eData.bFlag != CheckFlag)||(g_chksun !=Diag2eData.bCheckSum ))
g_chksun = Api_CreateCRCCheckSum((INT8U *)&Diag2eData, sizeof(Diag2eData) - 2);
if ((Diag2eData.bFlag != CheckFlag) || (g_chksun != Diag2eData.bCheckSum))
{
//---- F190 ----//
(void)memset((INT8U *)&Diag2eData.D_F190[0], 0, 17);
......@@ -365,80 +363,77 @@ void Init2EData(void)
//---- FCAA ----//
wTemp = 5624;//用来识别EPROM是否成功写入硬件配置
Diag2eData.D_FCAA[0] = (wTemp>>8) & 0xff;//Byte0-Byte1::Bit5 - Bit0 PPK
wTemp = 5624; //用来识别EPROM是否成功写入硬件配置
Diag2eData.D_FCAA[0] = (wTemp >> 8) & 0xff; //Byte0-Byte1::Bit5 - Bit0 PPK
Diag2eData.D_FCAA[1] = wTemp & 0xff;
//ppk
Radio.VehRadio = ((INT16U)Diag2eData.D_FCAA[0]<<8)|((INT16U)Diag2eData.D_FCAA[1]);
Radio.VehRadio = ((INT16U)Diag2eData.D_FCAA[0] << 8) | ((INT16U)Diag2eData.D_FCAA[1]);
//---- F1A8 ----//
Diag2eData.D_F1A8[0] = 90;//Byte0 实际是120,后面+30 超速报警值 : default:120km/h
Diag2eData.D_F1A8[0] = 90; //Byte0 实际是120,后面+30 超速报警值 : default:120km/h
Diag2eData.D_F1A8[1] = 0x09; //Byte1::Bit0 超速报警 : default:1 配置
//Byte1::Bit2 - Bit1 天蓝液 : default:2 18FE5600
//Byte1::Bit3 气压 : default:1 配置
//Byte1::Bit7 - Bit4 语言 : default:0 中文
Diag2eData.D_F1A8[2] = 0x01;//Byte2::Bit3 - Bit0 发动机状态 : default:2 北京康明斯 国四、国五;MF3.2、4.8国四、国五
Diag2eData.D_F1A8[2] = 0x00; //Byte2::Bit3 - Bit0 发动机状态 : default:0 0x0:全柴Q23国六发动机 0x1:云内D20国六发动机
//Byte2::Bit7 - Bit4 单位 : default:0 km/h,L/100km
Diag2eData.D_F1A8[3] = 0x46;//3200-5000rpm
Diag2eData.D_F1A8[3] = 0x46; //3200-5000rpm
//Byte3::Bit0 车道偏离LDWS : default:0 未配置
//Byte3::Bit3 - Bit1 水温表报警点 : default:2 105degC
//Byte3::Bit7 - Bit4 转速表红区 : default:2 3200rpm
Diag2eData.D_F1A8[4] = 0x20;//Byte4::Bit6 - Bit5 燃油表参数 : default:0 E点105Ω;F点7Ω
Diag2eData.D_F1A8[4] = 0x20; //Byte4::Bit6 - Bit5 燃油表参数 : default:0 E点105Ω;F点7Ω
//Byte4::Bit7 冷却液液位报警 : default:0 未配置
Diag2eData.D_F1A8[5] = 0x02;//Byte5::Bit1 - Bit0 (ABS+EBD)/ESC : default:2 CAN总线ABS+EBD
Diag2eData.D_F1A8[5] = 0x00; //Byte5::Bit1 - Bit0 (ABS+EBD)/ESC : default:2 CAN总线ABS+EBD
//Byte5::Bit2 安全气囊 : default:0 未配置
//Byte5::Bit5 - Bit4 胎压监测 : default:0 未配置
//Byte5::Bit7 - Bit6 发动机防盗 : default:0 未配置
Diag2eData.D_F1A8[6] = 0x00;
(void)memset(&Diag2eData.D_F1A8[7], 0, 14);
Diag2eData.D_F1A8[7] = 0x00; //Byte7::Bit3 - Bit2 蹄片磨损 : default:0 屏蔽
//(void)memset(&Diag2eData.D_F1A8[7], 0, 14);
//超速报警值
SetMeuMsg.OverSpeed = Diag2eData.D_F1A8[0] + 30; //--//
//超速报警
ConfigItem.OverSpdConfig = (Diag2eData.D_F1A8[1]) & 0x01;
//天蓝液
ConfigItem.AdblueConfig = (Diag2eData.D_F1A8[1]>>1) & 0x03;
ConfigItem.AdblueConfig = (Diag2eData.D_F1A8[1] >> 1) & 0x03;
//气压
ConfigItem.GasConfig = (Diag2eData.D_F1A8[1]>>3) & 0x01;
ConfigItem.GasConfig = (Diag2eData.D_F1A8[1] >> 3) & 0x01;
//语言
SetMeuMsg.Language = (Diag2eData.D_F1A8[1]>>4) + 1; //--//
SetMeuMsg.Language = (Diag2eData.D_F1A8[1] >> 4) + 1; //--//
//发动机状态
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f;//--//
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f; //--//
//车道偏离
ConfigItem.LDWSConfig = Diag2eData.D_F1A8[3] & 0x01;
//水温表报警点
ConfigItem.TempConfig = (Diag2eData.D_F1A8[3]>>1) & 0x07;
ConfigItem.TempConfig = (Diag2eData.D_F1A8[3] >> 1) & 0x07;
//转速红区配置
g_RedArea = (Diag2eData.D_F1A8[3]>>4) & 0x0F;
g_RedArea = (Diag2eData.D_F1A8[3] >> 4) & 0x0F;
g_RedArea = 2400 + g_RedArea * 200; //--//
//燃油
ConfigItem.FuelConfig = (Diag2eData.D_F1A8[4]>>5) & 0x03;
ConfigItem.FuelConfig = (Diag2eData.D_F1A8[4] >> 5) & 0x03;
//冷却液位低
ConfigItem.CoolLevelConfig = (Diag2eData.D_F1A8[4]>>7) & 0x01;//--//
ConfigItem.CoolLevelConfig = (Diag2eData.D_F1A8[4] >> 7) & 0x01; //--//
//制动系统故障-EBD
ConfigItem.ABS_ESCConfig = Diag2eData.D_F1A8[5] & 0x03;
//安全气囊
ConfigItem.AirBagConfig = (Diag2eData.D_F1A8[5]>>2) & 0x01;
ConfigItem.AirBagConfig = (Diag2eData.D_F1A8[5] >> 2) & 0x01;
//胎压监测
ConfigItem.TpmsConfig = (Diag2eData.D_F1A8[5]>>4) & 0x03;//--//
ConfigItem.TpmsConfig = (Diag2eData.D_F1A8[5] >> 4) & 0x03; //--//
//蹄片磨损配置
ConfigItem.BrakeShoeConfig = (Diag2eData.D_F1A8[7] >> 2) & 0x03;
}
else
{
//-- FCAA --//
//ppk
Radio.VehRadio= ((INT16U)Diag2eData.D_FCAA[0]<<8)|((INT16U)Diag2eData.D_FCAA[1]);
Radio.VehRadio = ((INT16U)Diag2eData.D_FCAA[0] << 8) | ((INT16U)Diag2eData.D_FCAA[1]);
//-- F1A8 --//
//超速报警值
......@@ -446,30 +441,32 @@ void Init2EData(void)
//超速报警
ConfigItem.OverSpdConfig = (Diag2eData.D_F1A8[1]) & 0x01;
//天蓝液
ConfigItem.AdblueConfig = (Diag2eData.D_F1A8[1]>>1) & 0x03;
ConfigItem.AdblueConfig = (Diag2eData.D_F1A8[1] >> 1) & 0x03;
//气压
ConfigItem.GasConfig = (Diag2eData.D_F1A8[1]>>3) & 0x01;
ConfigItem.GasConfig = (Diag2eData.D_F1A8[1] >> 3) & 0x01;
//语言
SetMeuMsg.Language = (Diag2eData.D_F1A8[1]>>4) + 1; //--//
SetMeuMsg.Language = (Diag2eData.D_F1A8[1] >> 4) + 1; //--//
//发动机状态
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f;//--//
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f; //--//
//车道偏离
ConfigItem.LDWSConfig = Diag2eData.D_F1A8[3] & 0x01;
//水温表报警点
ConfigItem.TempConfig = (Diag2eData.D_F1A8[3]>>1) & 0x07;
ConfigItem.TempConfig = (Diag2eData.D_F1A8[3] >> 1) & 0x07;
//转速红区配置
g_RedArea = (Diag2eData.D_F1A8[3]>>4) & 0x0F;
g_RedArea = (Diag2eData.D_F1A8[3] >> 4) & 0x0F;
g_RedArea = 2400 + g_RedArea * 200; //--//
//燃油
ConfigItem.FuelConfig = (Diag2eData.D_F1A8[4]>>5) & 0x03;
ConfigItem.FuelConfig = (Diag2eData.D_F1A8[4] >> 5) & 0x03;
//冷却液位低
ConfigItem.CoolLevelConfig = (Diag2eData.D_F1A8[4]>>7) & 0x01;//--//
ConfigItem.CoolLevelConfig = (Diag2eData.D_F1A8[4] >> 7) & 0x01; //--//
//制动系统故障-EBD
ConfigItem.ABS_ESCConfig = Diag2eData.D_F1A8[5] & 0x03;
//安全气囊
ConfigItem.AirBagConfig = (Diag2eData.D_F1A8[5]>>2) & 0x01;
ConfigItem.AirBagConfig = (Diag2eData.D_F1A8[5] >> 2) & 0x01;
//胎压监测
ConfigItem.TpmsConfig = (Diag2eData.D_F1A8[5]>>4) & 0x03;//--//
ConfigItem.TpmsConfig = (Diag2eData.D_F1A8[5] >> 4) & 0x03; //--//
//蹄片磨损配置
ConfigItem.BrakeShoeConfig = (Diag2eData.D_F1A8[7] >> 2) & 0x03;
}
}
/*-------------------------------------------------------------------------
......@@ -482,7 +479,7 @@ void Init2EData(void)
--------------------------------------------------------------------------*/
void App_2E_Write_handle(void)
{
Diag2eData.bFlag=0x55;
Diag2eData.bCheckSum = Api_CreateCRCCheckSum((INT8U*)&Diag2eData,sizeof(Diag2eData)-2);
Diag2eData.bFlag = 0x55;
Diag2eData.bCheckSum = Api_CreateCRCCheckSum((INT8U *)&Diag2eData, sizeof(Diag2eData) - 2);
Write2EData();
}
\ No newline at end of file
......@@ -59,9 +59,6 @@ void App_CalFuelBoard(void)
g_fuelMeter.CurBoardVal = RL;
*/
INT32U temp2; //江淮N721平台化12V表,
INT32U temp1;
INT16U RScale;
......@@ -79,20 +76,20 @@ void App_CalFuelBoard(void)
VR1 = 33000; //KL15_AD 单片机15电AD采集端配置的电阻,12V表配 33欧姆与10欧姆
VR2 = 10000;
RScale= (TempR1+TempR2)*10/TempR2;
temp2 = (g_adcResult.FuelEven[3] + g_adcResult.FuelEven[4] + g_adcResult.FuelEven[5])*10/3;
temp1 = (g_adcResult.BatLevel[3] + g_adcResult.BatLevel[4] + g_adcResult.BatLevel[5])*10/3;
temp1 = (temp1*5*(VR1+VR2))/(1024*VR2);
RScale = (TempR1 + TempR2) * 10 / TempR2;
temp2 = (g_adcResult.FuelEven[3] + g_adcResult.FuelEven[4] + g_adcResult.FuelEven[5]) * 10 / 3;
temp1 = (g_adcResult.BatLevel[3] + g_adcResult.BatLevel[4] + g_adcResult.BatLevel[5]) * 10 / 3;
temp1 = (temp1 * 5 * (VR1 + VR2)) / (1024 * VR2);
g_Vcc = temp1;
g_FuelVCC = (INT16U)g_Vcc;
g_Vcpu = temp2 * 5 / 1024;
if((g_Vcpu*RScale) < (g_Vcc*10))
if ((g_Vcpu * RScale) < (g_Vcc * 10))
{
RL = ((RScale*5*temp2)*200)/(10240*g_Vcc-(RScale*5*temp2)); ////图纸上是200欧姆(1.2K的6个并联),是PIN23脚向内接入的
RL = ((RScale * 5 * temp2) * 200) / (10240 * g_Vcc - (RScale * 5 * temp2)); ////图纸上是200欧姆(1.2K的6个并联),是PIN23脚向内接入的
RL = RL * 10;
}
if(RL > 3600)
if (RL > 3600)
{
RL = 3600;
}
......@@ -109,57 +106,57 @@ void App_CalFuelBoard(void)
--------------------------------------------------------------------------*/
void App_CalFuelEconomy(void)
{
if((g_FuelState == FuelSensorNormal)&&(g_canClock.signal.Exist65266))
if ((g_FuelState == FuelSensorNormal) && (g_canClock.signal.Exist65266))
{
if(g_fuelEco.VehNullTime <= T_1_0min)
if (g_fuelEco.VehNullTime <= T_1_0min)
{
if(g_revMeter.CurBoardVal > null)
if (g_revMeter.CurBoardVal > null)
{
if((FuelConsumption/100000)>=1) //100mL
if ((FuelConsumption / 100000) >= 1) //100mL
{
g_fuelEco.FuelSum += 1;
g_fuelEco.FuelSum1+= 1;
FuelConsumption = FuelConsumption%100000;
g_fuelEco.FuelSum1 += 1;
FuelConsumption = FuelConsumption % 100000;
}
}
}
//平均油耗
if((g_fuelEco.AveFuelTime >= T_5_0s) || (g_fuelEco.DispAveFuel == null))
if ((g_fuelEco.AveFuelTime >= T_5_0s) || (g_fuelEco.DispAveFuel == null))
{
g_fuelEco.AveFuelTime = null;
if(g_fuelEco.Dis100Km >= 1)//清零后行驶里程100m显示
if (g_fuelEco.Dis100Km >= 1) //清零后行驶里程100m显示
{
//大于500km,累计 S 或油耗累计 L除2
if((g_fuelEco.Dis100Km >= 5000))
if ((g_fuelEco.Dis100Km >= 5000))
{
g_fuelEco.FuelSum /= 2;
g_fuelEco.Dis100Km /= 2;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco.CalAveFuel = (INT16U)((g_fuelEco.FuelSum+ConfigItem.FuelCosumConfig)*1000 /(g_fuelEco.Dis100Km+50));
g_fuelEco.CalAveFuel = (INT16U)((g_fuelEco.FuelSum + ConfigItem.FuelCosumConfig) * 1000 / (g_fuelEco.Dis100Km + 50));
if(g_fuelEco.DispAveFuel == null)
if (g_fuelEco.DispAveFuel == null)
{
g_fuelEco.DispAveFuel = g_fuelEco.CalAveFuel;
}
if(g_fuelEco.CalAveFuel > g_fuelEco.DispAveFuel)
if (g_fuelEco.CalAveFuel > g_fuelEco.DispAveFuel)
{
g_fuelEco.DispAveFuel ++;
g_fuelEco.DispAveFuel++;
}
else if(g_fuelEco.DispAveFuel > g_fuelEco.CalAveFuel)
else if (g_fuelEco.DispAveFuel > g_fuelEco.CalAveFuel)
{
g_fuelEco.DispAveFuel --;
g_fuelEco.DispAveFuel--;
}
if(g_fuelEco.DispAveFuel > 699) //最大限制69.9L/100km
if (g_fuelEco.DispAveFuel > 699) //最大限制69.9L/100km
{
g_fuelEco.DispAveFuel = 699;
}
if(g_fuelEco.DispAveFuel < 60) //最低限制6.0L/100km
if (g_fuelEco.DispAveFuel < 60) //最低限制6.0L/100km
{
g_fuelEco.DispAveFuel = 60;
}
......@@ -171,41 +168,41 @@ void App_CalFuelEconomy(void)
}
//短程油耗
if((g_fuelEco.SRFCTime >= T_5_0s) || (g_fuelEco.DispSRFC == null))
if ((g_fuelEco.SRFCTime >= T_5_0s) || (g_fuelEco.DispSRFC == null))
{
g_fuelEco.SRFCTime = null;
if(g_fuelEco.Dis100Km1 >= 1)//清零后行驶里程100m显示
if (g_fuelEco.Dis100Km1 >= 1) //清零后行驶里程100m显示
{
//大于500km,累计 S 或油耗累计 L除2
if((g_fuelEco.Dis100Km1 >= 5000))
if ((g_fuelEco.Dis100Km1 >= 5000))
{
g_fuelEco.FuelSum1 /= 2;
g_fuelEco.Dis100Km1 /= 2;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco.CalSRFC = (INT16U)((g_fuelEco.FuelSum1+ConfigItem.FuelCosumConfig) * 1000/(g_fuelEco.Dis100Km1+50));
g_fuelEco.CalSRFC = (INT16U)((g_fuelEco.FuelSum1 + ConfigItem.FuelCosumConfig) * 1000 / (g_fuelEco.Dis100Km1 + 50));
if(g_fuelEco.DispSRFC == null)
if (g_fuelEco.DispSRFC == null)
{
g_fuelEco.DispSRFC = g_fuelEco.CalSRFC;
}
if(g_fuelEco.CalSRFC > g_fuelEco.DispSRFC)
if (g_fuelEco.CalSRFC > g_fuelEco.DispSRFC)
{
g_fuelEco.DispSRFC ++;
g_fuelEco.DispSRFC++;
}
else if(g_fuelEco.DispSRFC > g_fuelEco.CalSRFC)
else if (g_fuelEco.DispSRFC > g_fuelEco.CalSRFC)
{
g_fuelEco.DispSRFC --;
g_fuelEco.DispSRFC--;
}
if(g_fuelEco.DispSRFC > 699) //最大限制69.9L/100km
if (g_fuelEco.DispSRFC > 699) //最大限制69.9L/100km
{
g_fuelEco.DispSRFC = 699;
}
if(g_fuelEco.DispSRFC < 60) //最大限制6.0L/100km
if (g_fuelEco.DispSRFC < 60) //最大限制6.0L/100km
{
g_fuelEco.DispSRFC = 60;
}
......@@ -243,13 +240,13 @@ void App_CalFuelEconomy(void)
--------------------------------------------------------------------------*/
void App_CalFuelInit(void)
{
if(ConfigItem.FuelConfig == 0)
if (ConfigItem.FuelConfig == 0)
{
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧
FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1050;
FuelInitPara.DisplayZoneBoundary[1] = 1050;//E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[1] = 1050; //E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 880; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 700; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 510; //3格末 --40steps
......@@ -273,14 +270,14 @@ void App_CalFuelInit(void)
FuelInitPara.FuelCapacityBoundary[9] = 520;
FuelInitPara.FuelCapacityBoundary[10] = 520;
}
else if(ConfigItem.FuelConfig == 3)
else if (ConfigItem.FuelConfig == 3)
{
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧
FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1460;
FuelInitPara.DisplayZoneBoundary[1] = 1460;//E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1250;//1格末 --20steps
FuelInitPara.DisplayZoneBoundary[1] = 1460; //E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1250; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 820; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 670; //3格末 --40steps
FuelInitPara.DisplayZoneBoundary[5] = 520; //4格末 --50steps
......@@ -306,13 +303,13 @@ void App_CalFuelInit(void)
else //default config 1
{
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧
FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1950;
FuelInitPara.DisplayZoneBoundary[1] = 1950;//E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1720;//1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 1420;//2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 1170;//3格末 --40steps
FuelInitPara.DisplayZoneBoundary[1] = 1950; //E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1720; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 1420; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 1170; //3格末 --40steps
FuelInitPara.DisplayZoneBoundary[5] = 890; //4格末 --50steps
FuelInitPara.DisplayZoneBoundary[6] = 700; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 580; //6格末 --70steps
......@@ -342,7 +339,7 @@ void App_CalFuelInit(void)
g_AFC_INIT.AFCPreinstall = 75; //unit:L,accuracy:0.1
g_AFC_INIT.CurODO = g_accKm.LongAccKm * 100; // unit:m,accuracy:1
g_AFC_INIT.MaxDRMileage = 70000; //unit:km,accuracy:0.01
InitAFC( &g_AFC_INIT);
InitAFC(&g_AFC_INIT);
SetFuelSensorRecoverGroupCnt(40);
SetFuelSensorOpenCircuitGroupCnt(40);
SetFuelSensorShortCircuitGroupCnt(10); //5s
......@@ -364,7 +361,7 @@ void App_FuelManage(void)
AFCPara.RPM = g_revMeter.CurBoardVal;
AFCPara.Speed = (INT8U)g_vehMeter.CurBoardVal;
SetAFCPara(&AFCPara);
if(g_fuelMeter.CurBoardVal == 0)
if (g_fuelMeter.CurBoardVal == 0)
{
g_fuelMeter.CurBoardVal = 1;
}
......@@ -372,15 +369,15 @@ void App_FuelManage(void)
FuelFSM();
g_fuelMeter.BoardVal = GetFuelResistance();
g_FuelState = GetFuelSensorState();
if(CheckStep==2)
if (CheckStep == 2)
{
if(DIDFlag.Bits.DID1006Valid == Enable)//所有表
if (DIDFlag.Bits.DID1006Valid == Enable) //所有表
{
if(IOCTL_DID1006.FF_Byte == 1)
if (IOCTL_DID1006.FF_Byte == 1)
{
g_fuelMeter.DispPosition = 8;
}
else if(IOCTL_DID1006.FF_Byte == 2)
else if (IOCTL_DID1006.FF_Byte == 2)
{
g_fuelMeter.DestPosition = 4;
}
......@@ -389,13 +386,13 @@ void App_FuelManage(void)
g_fuelMeter.DestPosition = 0;
}
}
else if(DIDFlag.Bits.DID1004Valid == Enable)
else if (DIDFlag.Bits.DID1004Valid == Enable)
{
if(IOCTL_DID1003.FF_Byte == 1)
if (IOCTL_DID1003.FF_Byte == 1)
{
g_fuelMeter.DispPosition = 8;
}
else if(IOCTL_DID1003.FF_Byte == 2)
else if (IOCTL_DID1003.FF_Byte == 2)
{
g_fuelMeter.DestPosition = 4;
}
......@@ -404,20 +401,20 @@ void App_FuelManage(void)
g_fuelMeter.DestPosition = 0;
}
}
else if((g_FuelState == FuelSensorShortCircuit) || (g_FuelState == FuelSensorOpenCircuit))
else if ((g_FuelState == FuelSensorShortCircuit) || (g_FuelState == FuelSensorOpenCircuit))
{
if(g_FuelState == FuelSensorShortCircuit) //短路
if (g_FuelState == FuelSensorShortCircuit) //短路
{
g_fuelMeter.DispPosition = 8;
}
else if(g_FuelState == FuelSensorOpenCircuit) //开路
else if (g_FuelState == FuelSensorOpenCircuit) //开路
{
g_fuelMeter.DispPosition = 0;
}
g_FuelAlarm = Enable;
}
else if ((g_fuelMeter.BoardVal)&&(g_FuelState == FuelSensorNormal))
else if ((g_fuelMeter.BoardVal) && (g_FuelState == FuelSensorNormal))
{
g_fuelMeter.DispPosition = GetFuelSeg();
g_fuelMeter.CurPosition = GetFuelStep();
......
......@@ -52,13 +52,12 @@ void App_Paramer_Init(void)
//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;
......@@ -167,7 +161,7 @@ void App_Paramer_Init(void)
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_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;
}
/*-------------------------------------------------------------------------
......@@ -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;
}
///
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;
......@@ -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;
......@@ -343,7 +323,8 @@ void App_Load_Data(void)
g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; //
}
//////
//
g_gas1MeterInfo.bVirtualVal = 7;
g_gas1MeterInfo.Resistor[0] = 102; //0
......@@ -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];
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;
}
}
......@@ -482,113 +482,117 @@ 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.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
{
if(g_LED.pSafeBelt1Time < T_0_5s)
{
g_LED.pSafeBelt1Time ++;
g_LED.pTFTOilTime = 0;
}
}
else
{
g_LED.pSafeBelt1Time = null;
g_LED.pTFTOilTime = null;
}
//机油压力-
if(pOilIn == LOW)
//制动蹄片磨损+
if (LINE_IN_HOOVES == HIGH)
{
if(g_LED.pOilTime < T_0_5s)
if (g_LED.pBrakeShoeTime < T_0_5s)
{
g_LED.pOilTime ++;
g_LED.pBrakeShoeTime++;
}
}
else
{
g_LED.pOilTime = null;
g_LED.pBrakeShoeTime = 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))))
{
if(g_revMeter.CurBoardVal > 300)
//取力器-
if (LINE_IN_Power_takeoff == HIGH)
{
if(g_LED.pTFTOilTime < T_15_0s)
if (g_LED.pPowerTakeoffTime < T_0_5s)
{
g_LED.pTFTOilTime ++;
g_LED.pPowerTakeoffTime++;
}
}
else
{
g_LED.pTFTOilTime = 0;
g_LED.pPowerTakeoffTime = null;
}
/*
//EBD-pin5
if(pBrakeIn == LOW)
{
if(g_LED.pBrakeTime < T_0_5s)
{
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;
g_LED.ABSFaultTimes = null;
}
//制动蹄片磨损+
if(pBrakeShoeIn == HIGH)
//安全带
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;
}
//驾驶室锁止-
......
......@@ -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
......
......@@ -5,7 +5,6 @@
* Author: QTC
*/
#define GLOBALS_APP_System
#include "defines.h"
#include "g_includes.h"
......@@ -24,27 +23,27 @@ void App_Paramer_Init(void)
INT8U i;
//-- 主界面初始化 --//
if((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
if ((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 1;//气压 + adblue
g_Style = 1; //气压 + adblue
}
else if((ConfigItem.GasConfig == 0) &&((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
else if ((ConfigItem.GasConfig == 0) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 2;//adblue
g_Style = 2; //adblue
}
else if((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig != 0 ) && (ConfigItem.AdblueConfig != 1)))
else if ((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig != 0) && (ConfigItem.AdblueConfig != 1)))
{
g_Style = 3;//气压
g_Style = 3; //气压
}
else
{
g_Style = 0;//只有"油耗"
g_Style = 0; //只有"油耗"
}
if(g_Style == 1)
if (g_Style == 1)
{
//气压 + adblue
if(bCurMenuIDX>=_MN_DSP_SCREEN1_1)//记住上次KL15位置
if (bCurMenuIDX >= _MN_DSP_SCREEN1_1) //记住上次KL15位置
{
bCurMenuIDX = _MN_DSP_SCREEN1;
bNextMenuIDX = _MN_DSP_SCREEN1;
......@@ -54,7 +53,7 @@ void App_Paramer_Init(void)
else
{
//气压/adblue
if((bCurMenuIDX!=_MN_DSP_SCREEN1_1)&&(bCurMenuIDX!=_MN_DSP_SCREEN3_1)&&(bCurMenuIDX!=_MN_DSP_SCREEN2_1))//记住上次KL15位置
if ((bCurMenuIDX != _MN_DSP_SCREEN1_1) && (bCurMenuIDX != _MN_DSP_SCREEN3_1) && (bCurMenuIDX != _MN_DSP_SCREEN2_1)) //记住上次KL15位置
{
bCurMenuIDX = _MN_DSP_SCREEN1_1;
bNextMenuIDX = _MN_DSP_SCREEN1_1;
......@@ -69,49 +68,49 @@ void App_Paramer_Init(void)
SetMeuMsg.SoftWareVersion = 314;
//修正因子
if(ConfigItem.EngConfig == 0)
if (ConfigItem.EngConfig == 0)
{
ConfigItem.FuelCosumConfig = 6;//0.695L
ConfigItem.FuelCosumConfig = 6; //0.695L
}
else if(ConfigItem.EngConfig == 1)
else if (ConfigItem.EngConfig == 1)
{
ConfigItem.FuelCosumConfig = 6;//0.66L
ConfigItem.FuelCosumConfig = 6; //0.66L
}
else if(ConfigItem.EngConfig == 2)
else if (ConfigItem.EngConfig == 2)
{
ConfigItem.FuelCosumConfig = 7;//0.7975L
ConfigItem.FuelCosumConfig = 7; //0.7975L
}
else if(ConfigItem.EngConfig == 3)
else if (ConfigItem.EngConfig == 3)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else if(ConfigItem.EngConfig == 4)
else if (ConfigItem.EngConfig == 4)
{
ConfigItem.FuelCosumConfig = 10;//1.055L
ConfigItem.FuelCosumConfig = 10; //1.055L
}
else if(ConfigItem.EngConfig == 5)
else if (ConfigItem.EngConfig == 5)
{
ConfigItem.FuelCosumConfig = 10;//1.04L
ConfigItem.FuelCosumConfig = 10; //1.04L
}
else if(ConfigItem.EngConfig == 9)
else if (ConfigItem.EngConfig == 9)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else if(ConfigItem.EngConfig == 10)
else if (ConfigItem.EngConfig == 10)
{
ConfigItem.FuelCosumConfig = 7;//0.7975L
ConfigItem.FuelCosumConfig = 7; //0.7975L
}
else if(ConfigItem.EngConfig == 11)
else if (ConfigItem.EngConfig == 11)
{
ConfigItem.FuelCosumConfig = 6;//0.66L
ConfigItem.FuelCosumConfig = 6; //0.66L
}
else if(ConfigItem.EngConfig == 12)
else if (ConfigItem.EngConfig == 12)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else
{
ConfigItem.FuelCosumConfig = 7;//default: 0.7975L
ConfigItem.FuelCosumConfig = 7; //default: 0.7975L
}
//-- Can --//
......@@ -123,8 +122,8 @@ void App_Paramer_Init(void)
//g_canClock.ID65310Cn = 100 + T_Can3_5s;//T,200ms drop,2s
//g_canClock.ID65042Cn = 100 + T_Can3_5s;//T,200ms drop,2s
g_canClock.ID64775_00Cn = 500 + T_Can3_5s;//T,1000ms
g_canClock.ID65226CnECM = 500 + T_Can3_5s;//T,1000ms
g_canClock.ID64775_00Cn = 500 + T_Can3_5s; //T,1000ms
g_canClock.ID65226CnECM = 500 + T_Can3_5s; //T,1000ms
//g_canClock.ID65226CnDCU = 500 + T_Can3_5s;//T,1000ms
//g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s
......@@ -139,8 +138,8 @@ void App_Paramer_Init(void)
g_LED.pMILOffTime3 = T_3_5s;
//-- Cruise --//
bCruiseClrScreen1=0;
bCruiseClrScreen=1;
bCruiseClrScreen1 = 0;
bCruiseClrScreen = 1;
g_ClearCruise = 1;
bCruiseSpeedLast = 0xffff;
......@@ -160,12 +159,12 @@ void App_Paramer_Init(void)
g_EEaccKmClrStep = Disable;
g_sysFlag.Bits.EEAccSaveState = Disable;
g_Clock.TempFaultTimes=0;
g_Clock.TempReleaseTimes=0;
g_Clock.TempFaultTimes = 0;
g_Clock.TempReleaseTimes = 0;
g_CanSwith.ClrScreenDoor = 1;
Disable_signal(g_sysFlag.Bits.TempLedEn);
g_ClearWin1 = 1;
if(!g_sysFlag.Bits.WakeUpState)
if (!g_sysFlag.Bits.WakeUpState)
{
Enable_signal(g_sysFlag.Bits.CanWakeUp);
}
......@@ -205,27 +204,27 @@ void App_Paramer_Init(void)
g_tempMeter.CurPosition = null;
g_tempMeter.CurBoardVal = null;
g_tempMeter.MoveEn = Disable;
g_tempMeter.DispPosition = null ;
g_tempMeter.DispPosition = null;
g_gas1Meter.Dir = keep_local;
g_gas1Meter.DestPosition = null;
g_gas1Meter.CurPosition = null;
g_gas1Meter.CurBoardVal = null;
g_gas1Meter.MoveEn = Disable;
g_gas1Meter.DispPosition = null ;
g_gas1Meter.DispPosition = null;
g_gas2Meter.Dir = keep_local;
g_gas2Meter.DestPosition = null;
g_gas2Meter.CurPosition = null;
g_gas2Meter.CurBoardVal = null;
g_gas2Meter.MoveEn = Disable;
g_gas2Meter.DispPosition = null ;
g_gas2Meter.DispPosition = null;
g_adblueMeter.Dir = keep_local;
g_adblueMeter.DestPosition = null;
g_adblueMeter.CurPosition = null;
g_adblueMeter.CurBoardVal = null;
g_adblueMeter.MoveEn = Disable;
g_adblueMeter.DispPosition = null ;
g_adblueMeter.DispPosition = null;
//-- Start --//
g_LED.pStartTime = null;
......@@ -238,9 +237,9 @@ void App_Paramer_Init(void)
g_accKmClrStep = null;
ODO_Updeta;
Trip_Updeta;
InstFuel_Updeta ;
InstFuel_Updeta;
AveFuel_Updeta;
DirKm_Updeta ;
DirKm_Updeta;
Gas1_Updeta;
Gas2_Updeta;
Adblue_Updeta;
......@@ -250,19 +249,19 @@ void App_Paramer_Init(void)
Enable_signal(g_sysFlag.Bits.LowModeInit);
//-- alarm --//
for(i = 0; i < TotalPicWarn; i++)
for (i = 0; i < TotalPicWarn; i++)
{
bDSTable[i] = 0;
}
bDSTableShowTime[PicDrSafeBelt]=0;
bDSTableShowTime[PicExHaustBrake]=0;
bDSTableShowTime[PicPowerTakeoff]=0;
bDSTableShowTime[PicOverSpeed]=0;
bDSTableShowTime[PicDrSafeBelt] = 0;
bDSTableShowTime[PicExHaustBrake] = 0;
bDSTableShowTime[PicPowerTakeoff] = 0;
bDSTableShowTime[PicOverSpeed] = 0;
bCurDsPos = 255;
bLcdDsCnt = 0;
//-- Beep --//
for(i = 0; i < 21; i++)
for (i = 0; i < 21; i++)
{
g_Beep[i].Prio = DisAlr;
g_Beep[i].OnTime = null;
......@@ -293,7 +292,7 @@ void App_Paramer_Init(void)
//-- FuelEco --//
g_fuelEco.VehNullTime = 0;
//if(g_fuelEco.KeyOffTime > T_2_0hour)
if(g_fuelEco.KeyOffTime > 14400)
if (g_fuelEco.KeyOffTime > 14400)
{
g_fuelEco.SRFCTime = null;
g_fuelEco.FuelSum1 = null;
......@@ -314,8 +313,8 @@ void App_Paramer_Init(void)
ClrAveFuel1 = 1;
ClrAveFuel = 1;
g_FuelAlarm = Disable;
bSendFlag=0;
APPSendMsgInit=0;
bSendFlag = 0;
APPSendMsgInit = 0;
g_30LOGOFlag = 0;
WriteleFlag2E = 0;
......@@ -355,8 +354,12 @@ void App_State_OFF(void)
//-- Can Clear All --//
g_CanSwith.CabLock = 0;
g_CanSwith.ABSLamp = 0;
g_CanSwith.ABSLamp1 = 0;
g_CanSwith.VacuumCylinder = 0;
g_CanSwith.OilLamp = 0;
g_CanSwith.OilLamp1 = 0;
g_CanSwith.ExhaustBrake = 0;
g_CanSwith.DriverBelt = 0;
g_CanSwith.SCR_Y = 0;
......@@ -422,7 +425,7 @@ void App_State_OFF(void)
g_LED.pBrakeShoeTime = null;
g_LED.pAirFilterTime = null;
g_LED.pPowerTakeoffTime = null;
g_LED.pDiffLockTime = null;//关充放电指示灯
g_LED.pDiffLockTime = null; //关充放电指示灯
g_CanSwith.LDWSstate = null;
g_CanSwith.AmberState_E8 = null;
g_CanSwith.LDWScloseLCD = null;
......@@ -447,20 +450,20 @@ void App_State_OFF(void)
bUpDataGears = 2;
//-- off清队列 --//
for(i=0;i<TotalPicWarn;i++)
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
bDSTable[i]=0;
bDSTable[i] = 0;
}
for(i=0;i<TotalPicWarn;i++)
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
wDS_LcdQueue[i]=0;
wDS_LcdQueue[i] = 0;
}
for(i=0;i<TotalPicWarn;i++)
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
bDSTableShowTime[i]=0;
bDSTableShowTime[i] = 0;
}
bCurDsPos = 255;
bLcdDsCnt = 0;
......@@ -484,12 +487,11 @@ void App_State_OFF(void)
g_accTime = null;
EcuDuty = 0xffffffff;
RadarBuzzerFlag = 0;
g_30LOGOFlag=0;
g_30LOGOFlag = 0;
Enable_signal(g_sysFlag.Bits.LowModeInit);
g_validFlag.Bits.BD8379Init=Enable;
g_validFlag.Bits.BD8379Init = Enable;
g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s;
}
/*-------------------------------------------------------------------------
* Function Name : App_State_OFF_Run
......@@ -515,7 +517,7 @@ void App_StarUpInfo(void)
{
g_30LOGOFlag = 0;
pSTBOut = LOW;
WriteleFlag2E=0;
WriteleFlag2E = 0;
Enable_signal(g_validFlag.Bits.OffUpFuelSts);
Enable_signal(g_sysFlag.Bits.NetCtlKeep);
Enable_signal(g_sysFlag.Bits.BeepProcEn);
......@@ -528,10 +530,9 @@ void App_StarUpInfo(void)
Disable_signal(g_revMeter.MakeZero);
g_runStep = SYS_INIT_TASK;
g_sysFlag.Bits.CanWakeUp = CanWakeUpEn ;
g_sysFlag.Bits.CanWakeUp = CanWakeUpEn;
g_sysFlag.Bits.CanState = CanOFF;
Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.LowModeInit);
......@@ -544,7 +545,7 @@ void App_StarUpInfo(void)
EcuDuty = 0xffffffff;
SetMeuMsg.BackLightLevel = 4;
if(g_pBeep->Prio != DisAlr)
if (g_pBeep->Prio != DisAlr)
{
g_pBeep = &g_nopBeep;
}
......@@ -554,12 +555,12 @@ void App_StarUpInfo(void)
g_fuelEco.Dis100Km = 0;
g_fuelEco.FuelSum1 = 0;
g_fuelEco.Dis100Km1 = 0;
g_fuelEco.DispAveFuel=0;
g_fuelEco.DispSRFC=0;
g_fuelEco.DispAveFuel = 0;
g_fuelEco.DispSRFC = 0;
RamShortAccKmA = 0;
SetMeuMsg.Language = 1;
bSendFlag=0;
APPSendMsgInit=0;
bSendFlag = 0;
APPSendMsgInit = 0;
//-- Diagnose --//
ECUNum[0] = 0x11;
......@@ -640,7 +641,7 @@ void App_Load_Data(void)
g_revMeterInfo.DashStep[7] = 2880;
//-- Temp --//
if(ConfigItem.TempConfig == 0)//报警点为100
if (ConfigItem.TempConfig == 0) //报警点为100
{
g_tempMeterInfo.bVirtualVal = 7;
......@@ -662,7 +663,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if(ConfigItem.TempConfig == 1)//报警点为104
else if (ConfigItem.TempConfig == 1) //报警点为105
{
g_tempMeterInfo.bVirtualVal = 7;
......@@ -672,7 +673,7 @@ void App_Load_Data(void)
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 104;
g_tempMeterInfo.Resistor[6] = 105;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
......@@ -684,7 +685,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if(ConfigItem.TempConfig == 2)//报警点为105
else if (ConfigItem.TempConfig == 2) //报警点为105
{
g_tempMeterInfo.bVirtualVal = 8;
......@@ -706,7 +707,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if(ConfigItem.TempConfig == 3)//报警点为110
else if (ConfigItem.TempConfig == 3) //报警点为110
{
g_tempMeterInfo.bVirtualVal = 8;
......@@ -728,7 +729,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if(ConfigItem.TempConfig == 4)//报警点为120
else if (ConfigItem.TempConfig == 4) //报警点为120
{
g_tempMeterInfo.bVirtualVal = 7;
......
......@@ -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
{
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,8 +175,22 @@ 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
{
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
}
......@@ -167,6 +198,13 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D3; //off
}
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
//BD8379_D4 预留
if (Test_Hyq)
{
......@@ -176,8 +214,11 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D4; //off
}
//BD8379_D5 水温报警灯 5 发动机水温高
if (Test_Hyq)
if (DIDFlag.Bits.DID102CValid == Enable)
{
if (IOCTL_DID102C.FF_Byte == 1)
{
BD83790A |= BD8379_D5; //on
}
......@@ -185,8 +226,81 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D5; //off
}
//BD8379_D6 24 巡航指示灯
if (Test_Hyq)
}
else
{
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 (DIDFlag.Bits.DID1018Valid == Enable)
{
if (IOCTL_DID1018.FF_Byte == 1)
{
BD83790A |= BD8379_D6; //on
}
......@@ -194,6 +308,44 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D6; //off
}
}
else
{
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)
{
if (IOCTL_DID102A.FF_Byte == 1)
{
BD83790B |= BD8379_D2; //on
BD83790A |= BD8379_D2; //on
}
else
{
BD83790B &= ~BD8379_D2; //off
BD83790A &= ~BD8379_D2; //off
}
}
else
{
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,17 +583,59 @@ 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 if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1)) //?ó?????????ó????
{
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)
{
if (IOCTL_DID100B.FF_Byte == 1)
{
BD83790B |= BD8379_D7; //on
}
else
{
BD83790B &= ~BD8379_D7; //off
}
}
else
{
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
}
......@@ -413,18 +644,45 @@ void Gui_KL15LedDisplay(void)
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)
{
if (g_CanSwith.DPF)
{
BD83790B |= BD8379_D8; //on
}
else
{
if (g_CanSwith.OutFlashFlag)
{
BD83790B |= BD8379_D8; //on
}
else
{
BD83790B &= ~BD8379_D8; //off
}
}
}
else
{
BD83790B &= ~BD8379_D8; //off
}
//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