Commit 80ab578f authored by hu's avatar hu

增加指示灯逻辑

parent b1ebd45e
#define GLOBALS_API_EE #define GLOBALS_API_EE
#include "defines.h" #include "defines.h"
#include "g_includes.h" #include "g_includes.h"
...@@ -18,7 +17,7 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub) ...@@ -18,7 +17,7 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
{ {
INT8U b; INT8U b;
for(b = 0; b < Nub; b++) for (b = 0; b < Nub; b++)
{ {
*Dp++ = *Sp++; *Dp++ = *Sp++;
} }
...@@ -32,17 +31,17 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub) ...@@ -32,17 +31,17 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
* Return : None * Return : None
* onther : * onther :
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub) INT8U Api_CreateCRCCheckSum(INT8U *p, INT8U Nub)
{ {
INT8U bCheckSun; INT8U bCheckSun;
INT8U i; INT8U i;
bCheckSun = null; bCheckSun = null;
while(Nub--) while (Nub--)
{ {
bCheckSun ^= *p++; bCheckSun ^= *p++;
for(i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
if(bCheckSun & 0x01) if (bCheckSun & 0x01)
{ {
bCheckSun = (bCheckSun >> 1) ^ 0x8C; bCheckSun = (bCheckSun >> 1) ^ 0x8C;
} }
...@@ -50,7 +49,7 @@ INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub) ...@@ -50,7 +49,7 @@ INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub)
bCheckSun >>= 1; bCheckSun >>= 1;
} }
} }
return(bCheckSun); return (bCheckSun);
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
...@@ -69,13 +68,13 @@ void Api_ReadAccKm(void) ...@@ -69,13 +68,13 @@ void Api_ReadAccKm(void)
g_AccAddr.CurEEAccddr = EEACC_START; g_AccAddr.CurEEAccddr = EEACC_START;
bsp_WDOG_Feed(); 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; g_AccAddr.CurEEAccddr += Register_Len;
} }
...@@ -85,24 +84,24 @@ void Api_ReadAccKm(void) ...@@ -85,24 +84,24 @@ void Api_ReadAccKm(void)
} }
bsp_WDOG_Feed(); 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, (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, g_AccAddr.CurEEAccddr + Register_Len, (INT8U *)&g_oldAccKm, Register_Len);
bsp_WDOG_Feed(); 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)) (g_accKm.LongAccKm <= 10000000) && (g_oldAccKm.LongAccKm <= 10000000))
{ {
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2); check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
check2 = Api_CreateCRCCheckSum((INT8U *) &g_oldAccKm, 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; g_AccAddr.CurEEAccddr += Register_Len;
} }
...@@ -127,23 +126,23 @@ void Api_ReadAccKm(void) ...@@ -127,23 +126,23 @@ void Api_ReadAccKm(void)
} }
bsp_WDOG_Feed(); bsp_WDOG_Feed();
} }
g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *) &g_accKm, Register_Len); 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); 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); g_ReadState = bsp_IIC_ReadPage(EEPROM_BLOCK0, EEBAKACC, (INT8U *)&g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2); 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_accKm.Checkflag = CheckFlag; g_accKm.Checkflag = CheckFlag;
g_accKm.LongAccKm = null; g_accKm.LongAccKm = null;
g_accKm.ShortAccKm = null; g_accKm.ShortAccKm = null;
RamShortAccKmA=0; RamShortAccKmA = 0;
g_accKm.RemnantPulse = null; g_accKm.RemnantPulse = null;
g_accKm.FuelSum = 3000; g_accKm.FuelSum = 3000;
g_accKm.Dis100Km = 400; 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) ...@@ -161,14 +160,14 @@ void Api_ReadAccKm(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void Api_WriteAccReg(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.Checkflag = CheckFlag;
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2); 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; g_AccAddr.CurEEAccddr = EEACC_START;
} }
...@@ -190,7 +189,7 @@ void Api_WriteAccReg(void) ...@@ -190,7 +189,7 @@ void Api_WriteAccReg(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void Api_ClearAccStock(void) void Api_ClearAccStock(void)
{ {
if(g_sysFlag.Bits.AccSaveState) if (g_sysFlag.Bits.AccSaveState)
{ {
bsp_WDOG_Feed(); bsp_WDOG_Feed();
...@@ -203,8 +202,8 @@ void Api_ClearAccStock(void) ...@@ -203,8 +202,8 @@ void Api_ClearAccStock(void)
g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, sizeof(_Register) - 2); g_accKm.bCheckSun = Api_CreateCRCCheckSum((INT8U *)&g_accKm, sizeof(_Register) - 2);
bsp_Delay(5000); bsp_Delay(5000);
g_accKmClrStep ++; g_accKmClrStep++;
switch(g_accKmClrStep) switch (g_accKmClrStep)
{ {
case 1: case 1:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 0, (INT8U *)&g_accKm, Register_Len); g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 0, (INT8U *)&g_accKm, Register_Len);
...@@ -233,8 +232,7 @@ void Api_ClearAccStock(void) ...@@ -233,8 +232,7 @@ void Api_ClearAccStock(void)
g_accKmClrStep = null; g_accKmClrStep = null;
g_sysFlag.Bits.ClearODO = 0; g_sysFlag.Bits.ClearODO = 0;
break; break;
default: default:;
;
} }
bsp_WDOG_Feed(); bsp_WDOG_Feed();
...@@ -328,7 +326,7 @@ void Write2EData(void) ...@@ -328,7 +326,7 @@ void Write2EData(void)
INT8U i; INT8U i;
for (i = 0; i < (sizeof(Diag2eData) / 16); 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); bsp_Delay(6000);
} }
} }
...@@ -347,12 +345,12 @@ void Init2EData(void) ...@@ -347,12 +345,12 @@ void Init2EData(void)
for (i = 0; i < (sizeof(Diag2eData) / 16); i++) 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); bsp_Delay(6000);
} }
g_chksun = Api_CreateCRCCheckSum((INT8U*)&Diag2eData,sizeof(Diag2eData)-2); g_chksun = Api_CreateCRCCheckSum((INT8U *)&Diag2eData, sizeof(Diag2eData) - 2);
if((Diag2eData.bFlag != CheckFlag)||(g_chksun !=Diag2eData.bCheckSum )) if ((Diag2eData.bFlag != CheckFlag) || (g_chksun != Diag2eData.bCheckSum))
{ {
//---- F190 ----// //---- F190 ----//
(void)memset((INT8U *)&Diag2eData.D_F190[0], 0, 17); (void)memset((INT8U *)&Diag2eData.D_F190[0], 0, 17);
...@@ -365,80 +363,77 @@ void Init2EData(void) ...@@ -365,80 +363,77 @@ void Init2EData(void)
//---- FCAA ----// //---- 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; Diag2eData.D_FCAA[1] = wTemp & 0xff;
//ppk //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 ----// //---- 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 配置 Diag2eData.D_F1A8[1] = 0x09; //Byte1::Bit0 超速报警 : default:1 配置
//Byte1::Bit2 - Bit1 天蓝液 : default:2 18FE5600 //Byte1::Bit2 - Bit1 天蓝液 : default:2 18FE5600
//Byte1::Bit3 气压 : default:1 配置 //Byte1::Bit3 气压 : default:1 配置
//Byte1::Bit7 - Bit4 语言 : default:0 中文 //Byte1::Bit7 - Bit4 语言 : default:0 中文
Diag2eData.D_F1A8[2] = 0x00; //Byte2::Bit3 - Bit0 发动机状态 : default:0 0x0:全柴Q23国六发动机 0x1:云内D20国六发动机
Diag2eData.D_F1A8[2] = 0x01;//Byte2::Bit3 - Bit0 发动机状态 : default:2 北京康明斯 国四、国五;MF3.2、4.8国四、国五
//Byte2::Bit7 - Bit4 单位 : default:0 km/h,L/100km //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::Bit0 车道偏离LDWS : default:0 未配置
//Byte3::Bit3 - Bit1 水温表报警点 : default:2 105degC //Byte3::Bit3 - Bit1 水温表报警点 : default:2 105degC
//Byte3::Bit7 - Bit4 转速表红区 : default:2 3200rpm //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 未配置 //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::Bit2 安全气囊 : default:0 未配置
//Byte5::Bit5 - Bit4 胎压监测 : default:0 未配置 //Byte5::Bit5 - Bit4 胎压监测 : default:0 未配置
//Byte5::Bit7 - Bit6 发动机防盗 : default:0 未配置 //Byte5::Bit7 - Bit6 发动机防盗 : default:0 未配置
Diag2eData.D_F1A8[6] = 0x00; 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; //--// SetMeuMsg.OverSpeed = Diag2eData.D_F1A8[0] + 30; //--//
//超速报警 //超速报警
ConfigItem.OverSpdConfig = (Diag2eData.D_F1A8[1]) & 0x01; 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.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; //--// 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 //制动系统故障-EBD
ConfigItem.ABS_ESCConfig = Diag2eData.D_F1A8[5] & 0x03; 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 else
{ {
//-- FCAA --// //-- FCAA --//
//ppk //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 --// //-- F1A8 --//
//超速报警值 //超速报警值
...@@ -446,30 +441,32 @@ void Init2EData(void) ...@@ -446,30 +441,32 @@ void Init2EData(void)
//超速报警 //超速报警
ConfigItem.OverSpdConfig = (Diag2eData.D_F1A8[1]) & 0x01; 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.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; //--// 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 //制动系统故障-EBD
ConfigItem.ABS_ESCConfig = Diag2eData.D_F1A8[5] & 0x03; 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) ...@@ -482,7 +479,7 @@ void Init2EData(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void App_2E_Write_handle(void) void App_2E_Write_handle(void)
{ {
Diag2eData.bFlag=0x55; Diag2eData.bFlag = 0x55;
Diag2eData.bCheckSum = Api_CreateCRCCheckSum((INT8U*)&Diag2eData,sizeof(Diag2eData)-2); Diag2eData.bCheckSum = Api_CreateCRCCheckSum((INT8U *)&Diag2eData, sizeof(Diag2eData) - 2);
Write2EData(); Write2EData();
} }
\ No newline at end of file
...@@ -59,9 +59,6 @@ void App_CalFuelBoard(void) ...@@ -59,9 +59,6 @@ void App_CalFuelBoard(void)
g_fuelMeter.CurBoardVal = RL; g_fuelMeter.CurBoardVal = RL;
*/ */
INT32U temp2; //江淮N721平台化12V表, INT32U temp2; //江淮N721平台化12V表,
INT32U temp1; INT32U temp1;
INT16U RScale; INT16U RScale;
...@@ -79,20 +76,20 @@ void App_CalFuelBoard(void) ...@@ -79,20 +76,20 @@ void App_CalFuelBoard(void)
VR1 = 33000; //KL15_AD 单片机15电AD采集端配置的电阻,12V表配 33欧姆与10欧姆 VR1 = 33000; //KL15_AD 单片机15电AD采集端配置的电阻,12V表配 33欧姆与10欧姆
VR2 = 10000; VR2 = 10000;
RScale= (TempR1+TempR2)*10/TempR2; RScale = (TempR1 + TempR2) * 10 / TempR2;
temp2 = (g_adcResult.FuelEven[3] + g_adcResult.FuelEven[4] + g_adcResult.FuelEven[5])*10/3; 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 = (g_adcResult.BatLevel[3] + g_adcResult.BatLevel[4] + g_adcResult.BatLevel[5]) * 10 / 3;
temp1 = (temp1*5*(VR1+VR2))/(1024*VR2); temp1 = (temp1 * 5 * (VR1 + VR2)) / (1024 * VR2);
g_Vcc = temp1; g_Vcc = temp1;
g_FuelVCC = (INT16U)g_Vcc; g_FuelVCC = (INT16U)g_Vcc;
g_Vcpu = temp2 * 5 / 1024; 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; RL = RL * 10;
} }
if(RL > 3600) if (RL > 3600)
{ {
RL = 3600; RL = 3600;
} }
...@@ -109,57 +106,57 @@ void App_CalFuelBoard(void) ...@@ -109,57 +106,57 @@ void App_CalFuelBoard(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void App_CalFuelEconomy(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.FuelSum += 1;
g_fuelEco.FuelSum1+= 1; g_fuelEco.FuelSum1 += 1;
FuelConsumption = FuelConsumption%100000; 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; g_fuelEco.AveFuelTime = null;
if(g_fuelEco.Dis100Km >= 1)//清零后行驶里程100m显示 if (g_fuelEco.Dis100Km >= 1) //清零后行驶里程100m显示
{ {
//大于500km,累计 S 或油耗累计 L除2 //大于500km,累计 S 或油耗累计 L除2
if((g_fuelEco.Dis100Km >= 5000)) if ((g_fuelEco.Dis100Km >= 5000))
{ {
g_fuelEco.FuelSum /= 2; g_fuelEco.FuelSum /= 2;
g_fuelEco.Dis100Km /= 2; g_fuelEco.Dis100Km /= 2;
} }
//公式:(燃油消耗+修正因子) /(行驶距离+5km) //公式:(燃油消耗+修正因子) /(行驶距离+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; 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; g_fuelEco.DispAveFuel = 699;
} }
if(g_fuelEco.DispAveFuel < 60) //最低限制6.0L/100km if (g_fuelEco.DispAveFuel < 60) //最低限制6.0L/100km
{ {
g_fuelEco.DispAveFuel = 60; g_fuelEco.DispAveFuel = 60;
} }
...@@ -171,41 +168,41 @@ void App_CalFuelEconomy(void) ...@@ -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; g_fuelEco.SRFCTime = null;
if(g_fuelEco.Dis100Km1 >= 1)//清零后行驶里程100m显示 if (g_fuelEco.Dis100Km1 >= 1) //清零后行驶里程100m显示
{ {
//大于500km,累计 S 或油耗累计 L除2 //大于500km,累计 S 或油耗累计 L除2
if((g_fuelEco.Dis100Km1 >= 5000)) if ((g_fuelEco.Dis100Km1 >= 5000))
{ {
g_fuelEco.FuelSum1 /= 2; g_fuelEco.FuelSum1 /= 2;
g_fuelEco.Dis100Km1 /= 2; g_fuelEco.Dis100Km1 /= 2;
} }
//公式:(燃油消耗+修正因子) /(行驶距离+5km) //公式:(燃油消耗+修正因子) /(行驶距离+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; 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; g_fuelEco.DispSRFC = 699;
} }
if(g_fuelEco.DispSRFC < 60) //最大限制6.0L/100km if (g_fuelEco.DispSRFC < 60) //最大限制6.0L/100km
{ {
g_fuelEco.DispSRFC = 60; g_fuelEco.DispSRFC = 60;
} }
...@@ -243,13 +240,13 @@ void App_CalFuelEconomy(void) ...@@ -243,13 +240,13 @@ void App_CalFuelEconomy(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void App_CalFuelInit(void) void App_CalFuelInit(void)
{ {
if(ConfigItem.FuelConfig == 0) if (ConfigItem.FuelConfig == 0)
{ {
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧 FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧 FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1050; 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[2] = 880; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 700; //2格末 --30steps FuelInitPara.DisplayZoneBoundary[3] = 700; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 510; //3格末 --40steps FuelInitPara.DisplayZoneBoundary[4] = 510; //3格末 --40steps
...@@ -273,14 +270,14 @@ void App_CalFuelInit(void) ...@@ -273,14 +270,14 @@ void App_CalFuelInit(void)
FuelInitPara.FuelCapacityBoundary[9] = 520; FuelInitPara.FuelCapacityBoundary[9] = 520;
FuelInitPara.FuelCapacityBoundary[10] = 520; FuelInitPara.FuelCapacityBoundary[10] = 520;
} }
else if(ConfigItem.FuelConfig == 3) else if (ConfigItem.FuelConfig == 3)
{ {
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧 FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧 FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1460; FuelInitPara.DisplayZoneBoundary[0] = 1460;
FuelInitPara.DisplayZoneBoundary[1] = 1460;//E(0格末) --10steps FuelInitPara.DisplayZoneBoundary[1] = 1460; //E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1250;//1格末 --20steps FuelInitPara.DisplayZoneBoundary[2] = 1250; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 820; //2格末 --30steps FuelInitPara.DisplayZoneBoundary[3] = 820; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 670; //3格末 --40steps FuelInitPara.DisplayZoneBoundary[4] = 670; //3格末 --40steps
FuelInitPara.DisplayZoneBoundary[5] = 520; //4格末 --50steps FuelInitPara.DisplayZoneBoundary[5] = 520; //4格末 --50steps
...@@ -306,13 +303,13 @@ void App_CalFuelInit(void) ...@@ -306,13 +303,13 @@ void App_CalFuelInit(void)
else //default config 1 else //default config 1
{ {
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧 FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧 FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1950; FuelInitPara.DisplayZoneBoundary[0] = 1950;
FuelInitPara.DisplayZoneBoundary[1] = 1950;//E(0格末) --10steps FuelInitPara.DisplayZoneBoundary[1] = 1950; //E(0格末) --10steps
FuelInitPara.DisplayZoneBoundary[2] = 1720;//1格末 --20steps FuelInitPara.DisplayZoneBoundary[2] = 1720; //1格末 --20steps
FuelInitPara.DisplayZoneBoundary[3] = 1420;//2格末 --30steps FuelInitPara.DisplayZoneBoundary[3] = 1420; //2格末 --30steps
FuelInitPara.DisplayZoneBoundary[4] = 1170;//3格末 --40steps FuelInitPara.DisplayZoneBoundary[4] = 1170; //3格末 --40steps
FuelInitPara.DisplayZoneBoundary[5] = 890; //4格末 --50steps FuelInitPara.DisplayZoneBoundary[5] = 890; //4格末 --50steps
FuelInitPara.DisplayZoneBoundary[6] = 700; //5格末 --60steps FuelInitPara.DisplayZoneBoundary[6] = 700; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 580; //6格末 --70steps FuelInitPara.DisplayZoneBoundary[7] = 580; //6格末 --70steps
...@@ -342,7 +339,7 @@ void App_CalFuelInit(void) ...@@ -342,7 +339,7 @@ void App_CalFuelInit(void)
g_AFC_INIT.AFCPreinstall = 75; //unit:L,accuracy:0.1 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.CurODO = g_accKm.LongAccKm * 100; // unit:m,accuracy:1
g_AFC_INIT.MaxDRMileage = 70000; //unit:km,accuracy:0.01 g_AFC_INIT.MaxDRMileage = 70000; //unit:km,accuracy:0.01
InitAFC( &g_AFC_INIT); InitAFC(&g_AFC_INIT);
SetFuelSensorRecoverGroupCnt(40); SetFuelSensorRecoverGroupCnt(40);
SetFuelSensorOpenCircuitGroupCnt(40); SetFuelSensorOpenCircuitGroupCnt(40);
SetFuelSensorShortCircuitGroupCnt(10); //5s SetFuelSensorShortCircuitGroupCnt(10); //5s
...@@ -364,7 +361,7 @@ void App_FuelManage(void) ...@@ -364,7 +361,7 @@ void App_FuelManage(void)
AFCPara.RPM = g_revMeter.CurBoardVal; AFCPara.RPM = g_revMeter.CurBoardVal;
AFCPara.Speed = (INT8U)g_vehMeter.CurBoardVal; AFCPara.Speed = (INT8U)g_vehMeter.CurBoardVal;
SetAFCPara(&AFCPara); SetAFCPara(&AFCPara);
if(g_fuelMeter.CurBoardVal == 0) if (g_fuelMeter.CurBoardVal == 0)
{ {
g_fuelMeter.CurBoardVal = 1; g_fuelMeter.CurBoardVal = 1;
} }
...@@ -372,15 +369,15 @@ void App_FuelManage(void) ...@@ -372,15 +369,15 @@ void App_FuelManage(void)
FuelFSM(); FuelFSM();
g_fuelMeter.BoardVal = GetFuelResistance(); g_fuelMeter.BoardVal = GetFuelResistance();
g_FuelState = GetFuelSensorState(); 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; g_fuelMeter.DispPosition = 8;
} }
else if(IOCTL_DID1006.FF_Byte == 2) else if (IOCTL_DID1006.FF_Byte == 2)
{ {
g_fuelMeter.DestPosition = 4; g_fuelMeter.DestPosition = 4;
} }
...@@ -389,13 +386,13 @@ void App_FuelManage(void) ...@@ -389,13 +386,13 @@ void App_FuelManage(void)
g_fuelMeter.DestPosition = 0; 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; g_fuelMeter.DispPosition = 8;
} }
else if(IOCTL_DID1003.FF_Byte == 2) else if (IOCTL_DID1003.FF_Byte == 2)
{ {
g_fuelMeter.DestPosition = 4; g_fuelMeter.DestPosition = 4;
} }
...@@ -404,20 +401,20 @@ void App_FuelManage(void) ...@@ -404,20 +401,20 @@ void App_FuelManage(void)
g_fuelMeter.DestPosition = 0; 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; g_fuelMeter.DispPosition = 8;
} }
else if(g_FuelState == FuelSensorOpenCircuit) //开路 else if (g_FuelState == FuelSensorOpenCircuit) //开路
{ {
g_fuelMeter.DispPosition = 0; g_fuelMeter.DispPosition = 0;
} }
g_FuelAlarm = Enable; 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.DispPosition = GetFuelSeg();
g_fuelMeter.CurPosition = GetFuelStep(); g_fuelMeter.CurPosition = GetFuelStep();
......
...@@ -52,13 +52,12 @@ void App_Paramer_Init(void) ...@@ -52,13 +52,12 @@ void App_Paramer_Init(void)
//Enable_signal(g_canClock.signal.ExistF004); //Enable_signal(g_canClock.signal.ExistF004);
// g_canClock.IDF004Cn = 200; //10ms // g_canClock.IDF004Cn = 200; //10ms
// g_canClock.IDFE56Cn = 200; //10ms // g_canClock.IDFE56Cn = 200; //10ms
g_Init.InitLedCheckTime = 0; g_Init.InitLedCheckTime = 0;
g_Init.InitLedCheckOBDTime = 0; g_Init.InitLedCheckOBDTime = 0;
g_canMsgFE56.ProceF == EMPTY; g_canMsgFE56.ProceF == EMPTY;
if(G_Button.MainMenu != 4) if (G_Button.MainMenu != 4)
{ {
G_Button.MainMenu = 1; G_Button.MainMenu = 1;
...@@ -79,16 +78,11 @@ void App_Paramer_Init(void) ...@@ -79,16 +78,11 @@ void App_Paramer_Init(void)
Disable_signal(g_sysFlag.Bits.FuelMeterInit); Disable_signal(g_sysFlag.Bits.FuelMeterInit);
Disable_signal(g_sysFlag.Bits.AdjEnable); Disable_signal(g_sysFlag.Bits.AdjEnable);
Disable_signal(g_sysFlag.Bits.PowerLvi); Disable_signal(g_sysFlag.Bits.PowerLvi);
if(!g_sysFlag.Bits.WakeUpState) if (!g_sysFlag.Bits.WakeUpState)
{ {
Enable_signal(g_sysFlag.Bits.CanWakeUp); Enable_signal(g_sysFlag.Bits.CanWakeUp);
} }
//motor //motor
g_vehMeter.Dir = keep_local; g_vehMeter.Dir = keep_local;
g_vehMeter.DestPosition = null; g_vehMeter.DestPosition = null;
...@@ -167,7 +161,7 @@ void App_Paramer_Init(void) ...@@ -167,7 +161,7 @@ void App_Paramer_Init(void)
Api_SetBaseTimer(T_100ms, (_Clock *)&g_Clock); Api_SetBaseTimer(T_100ms, (_Clock *)&g_Clock);
Gui_Offset_Init(); Gui_Offset_Init();
bDSTable[ID_FUELLOW] &= (~(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 bDSTable[ID_ADBLUE] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
////////////////////glz--20170107 ////////////////////glz--20170107
CanMinuteTime = 0; CanMinuteTime = 0;
bCurMenuIDX = 0; bCurMenuIDX = 0;
...@@ -185,7 +179,6 @@ void App_Paramer_Init(void) ...@@ -185,7 +179,6 @@ void App_Paramer_Init(void)
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
void App_State_OFF(void) void App_State_OFF(void)
{ {
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : App_StarUpInfo * Function Name : App_StarUpInfo
...@@ -215,31 +208,19 @@ void App_StarUpInfo(void) ...@@ -215,31 +208,19 @@ void App_StarUpInfo(void)
Disable_signal(g_gas1Meter.MakeZero); Disable_signal(g_gas1Meter.MakeZero);
Disable_signal(g_gas2Meter.MakeZero); Disable_signal(g_gas2Meter.MakeZero);
g_OverSpeed = 120; g_OverSpeed = 120;
g_fuelMeter.OldPosition = null; g_fuelMeter.OldPosition = null;
Gui_MenuInit(); Gui_MenuInit();
Gui_Offset_Init(); Gui_Offset_Init();
g_runStep = SYS_INIT_TASK; g_runStep = SYS_INIT_TASK;
pABSout = LEDOFF; pABSout = LEDOFF;
pOilout = LEDOFF; pOilout = LEDOFF;
pFuelOut = LEDOFF; pFuelOut = LEDOFF;
pTempOut = LEDOFF; pTempOut = LEDOFF;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
...@@ -253,20 +234,19 @@ void App_StarUpInfo(void) ...@@ -253,20 +234,19 @@ void App_StarUpInfo(void)
void App_Load_Data(void) void App_Load_Data(void)
{ {
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *)&Rev_RedLight, 8);
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *) &Rev_RedLight, 8); g_chksun = Api_CreateCRCCheckSum((INT8U *)&Rev_RedLight, 6);
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Rev_RedLight, 6); if ((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
if((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
{ {
Rev_RedLight.RevRedLight = 3200; Rev_RedLight.RevRedLight = 3200;
Rev_RedLight.bSetAdblue = 0; Rev_RedLight.bSetAdblue = 0;
Rev_RedLight.bSetCheck = 0; Rev_RedLight.bSetCheck = 0;
} }
///
bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *) &Radio, 10); //
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Radio, 8); bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *)&Radio, 10);
if((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun)) g_chksun = Api_CreateCRCCheckSum((INT8U *)&Radio, 8);
if ((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun))
{ {
Radio.RevRadio = 2; Radio.RevRadio = 2;
Radio.VehRadio = 520; Radio.VehRadio = 520;
...@@ -277,7 +257,7 @@ void App_Load_Data(void) ...@@ -277,7 +257,7 @@ void App_Load_Data(void)
Api_ReadMeterInfo(0xa0, EE_VEH_ADDR, (INT8U *)&g_vehMeterInfo); Api_ReadMeterInfo(0xa0, EE_VEH_ADDR, (INT8U *)&g_vehMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *)&g_vehMeterInfo.Resistor[0], g_vehMeterInfo.bFlag, 33); 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.bVirtualVal = 8;
g_vehMeterInfo.Resistor[0] = 0; g_vehMeterInfo.Resistor[0] = 0;
...@@ -319,10 +299,10 @@ void App_Load_Data(void) ...@@ -319,10 +299,10 @@ void App_Load_Data(void)
g_vehLcdInfo.DashStep[7] = g_vehMeterInfo.DashStep[7]; g_vehLcdInfo.DashStep[7] = g_vehMeterInfo.DashStep[7];
// //
Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *) &g_revMeterInfo); Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *)&g_revMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *) &g_revMeterInfo.Resistor[0], g_revMeterInfo.bFlag, 33); 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.bVirtualVal = 5;
g_revMeterInfo.Resistor[0] = 0; g_revMeterInfo.Resistor[0] = 0;
...@@ -343,7 +323,8 @@ void App_Load_Data(void) ...@@ -343,7 +323,8 @@ void App_Load_Data(void)
g_revMeterInfo.DashStep[6] = 0; // g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; // g_revMeterInfo.DashStep[7] = 0; //
} }
//////
//
g_gas1MeterInfo.bVirtualVal = 7; g_gas1MeterInfo.bVirtualVal = 7;
g_gas1MeterInfo.Resistor[0] = 102; //0 g_gas1MeterInfo.Resistor[0] = 102; //0
...@@ -445,7 +426,6 @@ void App_Load_Data(void) ...@@ -445,7 +426,6 @@ void App_Load_Data(void)
g_fuelMeterInfo.DashStep[6] = 0; g_fuelMeterInfo.DashStep[6] = 0;
g_fuelMeterInfo.DashStep[7] = 0; g_fuelMeterInfo.DashStep[7] = 0;
g_fuelEcoParamer.bVirtualVal = 4; g_fuelEcoParamer.bVirtualVal = 4;
g_fuelEcoParamer.Resistor[0] = 0; g_fuelEcoParamer.Resistor[0] = 0;
...@@ -462,8 +442,7 @@ void App_Load_Data(void) ...@@ -462,8 +442,7 @@ void App_Load_Data(void)
w1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1]; w1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1];
VehFreLimit = w / (w1 * Radio.VehRadio * Radio.VehNum / 3600) / 4; VehFreLimit = w / (w1 * Radio.VehRadio * Radio.VehNum / 3600) / 4;
w = TPM1Clock; 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; RevFreLimit = w / (w1 * Radio.RevRadio / 60) / 4;
Rev_Limit = App_CalMicroStep((INT32U)Rev_RedLight.RevRedLight, (_EE_MeterInfo *)&g_revMeterInfo); Rev_Limit = App_CalMicroStep((INT32U)Rev_RedLight.RevRedLight, (_EE_MeterInfo *)&g_revMeterInfo);
} }
...@@ -240,6 +240,7 @@ void App_CheckCanDrop(void) ...@@ -240,6 +240,7 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID64775_00Cn == null) if (g_canClock.ID64775_00Cn == null)
{ {
g_CanSwith.OilLamp1 = 0;
g_CanSwith.EngMIL1 = 0; g_CanSwith.EngMIL1 = 0;
g_CanSwith.EngFailure1 = 0; g_CanSwith.EngFailure1 = 0;
g_CanSwith.EngFailure4 = 0; g_CanSwith.EngFailure4 = 0;
...@@ -321,8 +322,6 @@ void App_CheckCanDrop(void) ...@@ -321,8 +322,6 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID61440_00Cn == null) if (g_canClock.ID61440_00Cn == null)
{ {
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_00); Disable_signal(g_canClock.signal.Exist61440_00);
} }
} }
...@@ -340,7 +339,7 @@ void App_CheckCanDrop(void) ...@@ -340,7 +339,7 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID61440_29Cn == null) if (g_canClock.ID61440_29Cn == null)
{ {
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_29); Disable_signal(g_canClock.signal.Exist61440_29);
} }
...@@ -359,7 +358,7 @@ void App_CheckCanDrop(void) ...@@ -359,7 +358,7 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID61440_0FCn == null) if (g_canClock.ID61440_0FCn == null)
{ {
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_0F); Disable_signal(g_canClock.signal.Exist61440_0F);
} }
...@@ -378,7 +377,7 @@ void App_CheckCanDrop(void) ...@@ -378,7 +377,7 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID61440_10Cn == null) if (g_canClock.ID61440_10Cn == null)
{ {
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_10); Disable_signal(g_canClock.signal.Exist61440_10);
} }
...@@ -444,7 +443,7 @@ void App_CheckCanDrop(void) ...@@ -444,7 +443,7 @@ void App_CheckCanDrop(void)
} }
if (g_canClock.ID65248Cn == null) if (g_canClock.ID65248Cn == null)
{ {
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist65248); Disable_signal(g_canClock.signal.Exist65248);
} }
...@@ -641,6 +640,7 @@ void App_CheckCanDrop(void) ...@@ -641,6 +640,7 @@ void App_CheckCanDrop(void)
if (g_canClock.ID61441Cn == null) if (g_canClock.ID61441Cn == null)
{ {
g_CanSwith.ABSLamp = 0; g_CanSwith.ABSLamp = 0;
g_CanSwith.ABSLamp1 = 0;
g_CanSwith.ASR = 0; g_CanSwith.ASR = 0;
g_CanSwith.ESPoff = 0; g_CanSwith.ESPoff = 0;
......
...@@ -163,6 +163,7 @@ ...@@ -163,6 +163,7 @@
#define wdt_reset() __RESET_WATCHDOG() #define wdt_reset() __RESET_WATCHDOG()
//-- 机油压力 --// //-- 机油压力 --//
#define P_55kpa 14
#define P_60kpa 15 #define P_60kpa 15
#define P_68kpa 17 #define P_68kpa 17
#define P_80kpa 20 #define P_80kpa 20
......
...@@ -11,7 +11,7 @@ Layout=C_layout.hwl ...@@ -11,7 +11,7 @@ Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main" LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12 CPU=HC12
AEFWarningDialog=FALSE 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 TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
Configuration=TBDML.hwc Configuration=TBDML.hwc
Statusbar=1 Statusbar=1
......
...@@ -120,7 +120,7 @@ void App_ReceiveCanMsg(void) ...@@ -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; g_CanSwith.DriverWarn = S_on;
} }
...@@ -166,11 +166,29 @@ void App_ReceiveCanMsg(void) ...@@ -166,11 +166,29 @@ void App_ReceiveCanMsg(void)
if (g_canMsg64892.ProceF == MSG_FULL) if (g_canMsg64892.ProceF == MSG_FULL)
{ {
//DPF指示灯 //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 else
{ {
g_CanSwith.DPF = 0;
g_CanSwith.DPFf = 0;
g_CanSwith.DPF_Red = 0;
} }
//新加禁止DPF指示 //新加禁止DPF指示
...@@ -194,7 +212,7 @@ void App_ReceiveCanMsg(void) ...@@ -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; g_CanSwith.DpfHiTemp = 1;
} }
...@@ -209,8 +227,18 @@ void App_ReceiveCanMsg(void) ...@@ -209,8 +227,18 @@ void App_ReceiveCanMsg(void)
//64775 0x18FD0700 //64775 0x18FD0700
if (g_canMsg64775_00.ProceF == MSG_FULL) 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) 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; g_CanSwith.EngMIL1 = 1;
} }
...@@ -219,6 +247,16 @@ void App_ReceiveCanMsg(void) ...@@ -219,6 +247,16 @@ void App_ReceiveCanMsg(void)
g_CanSwith.EngMIL1 = 0; 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; g_canMsg64775_00.ProceF = EMPOTY;
} }
...@@ -275,9 +313,9 @@ void App_ReceiveCanMsg(void) ...@@ -275,9 +313,9 @@ void App_ReceiveCanMsg(void)
//ECM_EFL/P1 0x18FEEF00 65263 500 8 //ECM_EFL/P1 0x18FEEF00 65263 500 8
if (g_canMsg65263.ProceF == MSG_FULL) 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; g_CanSwith.OilLamp = 1;
} }
...@@ -286,29 +324,7 @@ void App_ReceiveCanMsg(void) ...@@ -286,29 +324,7 @@ void App_ReceiveCanMsg(void)
g_CanSwith.OilLamp = 0; g_CanSwith.OilLamp = 0;
} }
} }
else if (ConfigItem.EngConfig == 4) else if (ConfigItem.EngConfig == 0x01)
{
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
{ {
if (g_canMsg65263.Data[3] < P_60kpa) if (g_canMsg65263.Data[3] < P_60kpa)
{ {
...@@ -476,7 +492,16 @@ void App_ReceiveCanMsg(void) ...@@ -476,7 +492,16 @@ void App_ReceiveCanMsg(void)
//ABS_EBC1 0x18F0010B 61441 100 8 //ABS_EBC1 0x18F0010B 61441 100 8
if (g_canMsg61441.ProceF == MSG_FULL) 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) if ((g_canMsg61441.Data[5] & 0x30) == 0x10)
{ {
g_CanSwith.ABSLamp = 1; g_CanSwith.ABSLamp = 1;
...@@ -485,6 +510,7 @@ void App_ReceiveCanMsg(void) ...@@ -485,6 +510,7 @@ void App_ReceiveCanMsg(void)
{ {
g_CanSwith.ABSLamp = 0; g_CanSwith.ABSLamp = 0;
} }
/*
//ASR //ASR
if ((g_canMsg61441.Data[5] & 0xC0) == 0x40) if ((g_canMsg61441.Data[5] & 0xC0) == 0x40)
{ {
...@@ -494,7 +520,7 @@ void App_ReceiveCanMsg(void) ...@@ -494,7 +520,7 @@ void App_ReceiveCanMsg(void)
{ {
g_CanSwith.ASR = 0; g_CanSwith.ASR = 0;
} }
*/
g_canMsg61441.ProceF = EMPOTY; g_canMsg61441.ProceF = EMPOTY;
} }
...@@ -735,5 +761,4 @@ void App_K30ReceiveCanMsg(void) ...@@ -735,5 +761,4 @@ void App_K30ReceiveCanMsg(void)
g_canMsg60439.ProceF = EMPOTY; g_canMsg60439.ProceF = EMPOTY;
} }
} }
...@@ -482,113 +482,117 @@ void Api_ClockGenerate(void) ...@@ -482,113 +482,117 @@ void Api_ClockGenerate(void)
g_LED.pParkTime = null; g_LED.pParkTime = null;
} }
/* //机油压力-
//EBD-pin5 if (LINE_IN_OILn == LOW)
if(pBrakeIn == LOW)
{ {
if(g_LED.pBrakeTime < T_0_5s) if (g_LED.pOilTime < T_0_5s)
{ {
g_LED.pBrakeTime ++; g_LED.pOilTime++;
} }
} }
else else
{ {
g_LED.pBrakeTime = null; g_LED.pOilTime = null;
} }
//机油压力-TFT
//ABS if (((LINE_IN_OILn == LOW) && (ConfigItem.EngConfig == 3)) ||
if(pABSIn == LOW) ((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 else
{ {
g_LED.ABSFaultTimes = null; g_LED.pTFTOilTime = 0;
}
//安全带
if(pSafeBelt1In == LOW)
{
if(g_LED.pSafeBelt1Time < T_0_5s)
{
g_LED.pSafeBelt1Time ++;
} }
} }
else 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 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 (LINE_IN_Power_takeoff == HIGH)
{
if(g_revMeter.CurBoardVal > 300)
{ {
if(g_LED.pTFTOilTime < T_15_0s) if (g_LED.pPowerTakeoffTime < T_0_5s)
{ {
g_LED.pTFTOilTime ++; g_LED.pPowerTakeoffTime++;
} }
} }
else 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 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 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 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 else
{ {
g_LED.pPowerTakeoffTime = null; g_LED.pExhaustBrakTime = null;
} }
//驾驶室锁止- //驾驶室锁止-
......
...@@ -157,7 +157,9 @@ typedef struct ...@@ -157,7 +157,9 @@ typedef struct
INT8U DPF_Red : 1; INT8U DPF_Red : 1;
INT8U ECO : 1; INT8U ECO : 1;
INT8U CanPowerOver : 1; INT8U CanPowerOver : 1;
INT8U Reserve1 : 3; INT8U ABSLamp1 : 1;
INT8U OilLamp1 : 1;
INT8U Reserve1 : 1;
INT8U EngFailure4 : 1; //EPC1 INT8U EngFailure4 : 1; //EPC1
INT8U Hazard_Lights : 1; //危险灯 INT8U Hazard_Lights : 1; //危险灯
...@@ -853,6 +855,7 @@ typedef struct ...@@ -853,6 +855,7 @@ typedef struct
INT8U OverSpdConfig; INT8U OverSpdConfig;
INT8U LDWSConfig; INT8U LDWSConfig;
INT8U EngConfig; INT8U EngConfig;
INT8U BrakeShoeConfig;
} _Config; } _Config;
typedef struct typedef struct
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
* Author: QTC * Author: QTC
*/ */
#define GLOBALS_APP_System #define GLOBALS_APP_System
#include "defines.h" #include "defines.h"
#include "g_includes.h" #include "g_includes.h"
...@@ -24,27 +23,27 @@ void App_Paramer_Init(void) ...@@ -24,27 +23,27 @@ void App_Paramer_Init(void)
INT8U i; 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 else
{ {
g_Style = 0;//只有"油耗" g_Style = 0; //只有"油耗"
} }
if(g_Style == 1) if (g_Style == 1)
{ {
//气压 + adblue //气压 + adblue
if(bCurMenuIDX>=_MN_DSP_SCREEN1_1)//记住上次KL15位置 if (bCurMenuIDX >= _MN_DSP_SCREEN1_1) //记住上次KL15位置
{ {
bCurMenuIDX = _MN_DSP_SCREEN1; bCurMenuIDX = _MN_DSP_SCREEN1;
bNextMenuIDX = _MN_DSP_SCREEN1; bNextMenuIDX = _MN_DSP_SCREEN1;
...@@ -54,7 +53,7 @@ void App_Paramer_Init(void) ...@@ -54,7 +53,7 @@ void App_Paramer_Init(void)
else else
{ {
//气压/adblue //气压/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; bCurMenuIDX = _MN_DSP_SCREEN1_1;
bNextMenuIDX = _MN_DSP_SCREEN1_1; bNextMenuIDX = _MN_DSP_SCREEN1_1;
...@@ -69,49 +68,49 @@ void App_Paramer_Init(void) ...@@ -69,49 +68,49 @@ void App_Paramer_Init(void)
SetMeuMsg.SoftWareVersion = 314; 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 else
{ {
ConfigItem.FuelCosumConfig = 7;//default: 0.7975L ConfigItem.FuelCosumConfig = 7; //default: 0.7975L
} }
//-- Can --// //-- Can --//
...@@ -123,8 +122,8 @@ void App_Paramer_Init(void) ...@@ -123,8 +122,8 @@ void App_Paramer_Init(void)
//g_canClock.ID65310Cn = 100 + T_Can3_5s;//T,200ms drop,2s //g_canClock.ID65310Cn = 100 + T_Can3_5s;//T,200ms drop,2s
//g_canClock.ID65042Cn = 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.ID64775_00Cn = 500 + T_Can3_5s; //T,1000ms
g_canClock.ID65226CnECM = 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.ID65226CnDCU = 500 + T_Can3_5s;//T,1000ms
//g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s //g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s
...@@ -139,8 +138,8 @@ void App_Paramer_Init(void) ...@@ -139,8 +138,8 @@ void App_Paramer_Init(void)
g_LED.pMILOffTime3 = T_3_5s; g_LED.pMILOffTime3 = T_3_5s;
//-- Cruise --// //-- Cruise --//
bCruiseClrScreen1=0; bCruiseClrScreen1 = 0;
bCruiseClrScreen=1; bCruiseClrScreen = 1;
g_ClearCruise = 1; g_ClearCruise = 1;
bCruiseSpeedLast = 0xffff; bCruiseSpeedLast = 0xffff;
...@@ -160,12 +159,12 @@ void App_Paramer_Init(void) ...@@ -160,12 +159,12 @@ void App_Paramer_Init(void)
g_EEaccKmClrStep = Disable; g_EEaccKmClrStep = Disable;
g_sysFlag.Bits.EEAccSaveState = Disable; g_sysFlag.Bits.EEAccSaveState = Disable;
g_Clock.TempFaultTimes=0; g_Clock.TempFaultTimes = 0;
g_Clock.TempReleaseTimes=0; g_Clock.TempReleaseTimes = 0;
g_CanSwith.ClrScreenDoor = 1; g_CanSwith.ClrScreenDoor = 1;
Disable_signal(g_sysFlag.Bits.TempLedEn); Disable_signal(g_sysFlag.Bits.TempLedEn);
g_ClearWin1 = 1; g_ClearWin1 = 1;
if(!g_sysFlag.Bits.WakeUpState) if (!g_sysFlag.Bits.WakeUpState)
{ {
Enable_signal(g_sysFlag.Bits.CanWakeUp); Enable_signal(g_sysFlag.Bits.CanWakeUp);
} }
...@@ -205,27 +204,27 @@ void App_Paramer_Init(void) ...@@ -205,27 +204,27 @@ void App_Paramer_Init(void)
g_tempMeter.CurPosition = null; g_tempMeter.CurPosition = null;
g_tempMeter.CurBoardVal = null; g_tempMeter.CurBoardVal = null;
g_tempMeter.MoveEn = Disable; g_tempMeter.MoveEn = Disable;
g_tempMeter.DispPosition = null ; g_tempMeter.DispPosition = null;
g_gas1Meter.Dir = keep_local; g_gas1Meter.Dir = keep_local;
g_gas1Meter.DestPosition = null; g_gas1Meter.DestPosition = null;
g_gas1Meter.CurPosition = null; g_gas1Meter.CurPosition = null;
g_gas1Meter.CurBoardVal = null; g_gas1Meter.CurBoardVal = null;
g_gas1Meter.MoveEn = Disable; g_gas1Meter.MoveEn = Disable;
g_gas1Meter.DispPosition = null ; g_gas1Meter.DispPosition = null;
g_gas2Meter.Dir = keep_local; g_gas2Meter.Dir = keep_local;
g_gas2Meter.DestPosition = null; g_gas2Meter.DestPosition = null;
g_gas2Meter.CurPosition = null; g_gas2Meter.CurPosition = null;
g_gas2Meter.CurBoardVal = null; g_gas2Meter.CurBoardVal = null;
g_gas2Meter.MoveEn = Disable; g_gas2Meter.MoveEn = Disable;
g_gas2Meter.DispPosition = null ; g_gas2Meter.DispPosition = null;
g_adblueMeter.Dir = keep_local; g_adblueMeter.Dir = keep_local;
g_adblueMeter.DestPosition = null; g_adblueMeter.DestPosition = null;
g_adblueMeter.CurPosition = null; g_adblueMeter.CurPosition = null;
g_adblueMeter.CurBoardVal = null; g_adblueMeter.CurBoardVal = null;
g_adblueMeter.MoveEn = Disable; g_adblueMeter.MoveEn = Disable;
g_adblueMeter.DispPosition = null ; g_adblueMeter.DispPosition = null;
//-- Start --// //-- Start --//
g_LED.pStartTime = null; g_LED.pStartTime = null;
...@@ -238,9 +237,9 @@ void App_Paramer_Init(void) ...@@ -238,9 +237,9 @@ void App_Paramer_Init(void)
g_accKmClrStep = null; g_accKmClrStep = null;
ODO_Updeta; ODO_Updeta;
Trip_Updeta; Trip_Updeta;
InstFuel_Updeta ; InstFuel_Updeta;
AveFuel_Updeta; AveFuel_Updeta;
DirKm_Updeta ; DirKm_Updeta;
Gas1_Updeta; Gas1_Updeta;
Gas2_Updeta; Gas2_Updeta;
Adblue_Updeta; Adblue_Updeta;
...@@ -250,19 +249,19 @@ void App_Paramer_Init(void) ...@@ -250,19 +249,19 @@ void App_Paramer_Init(void)
Enable_signal(g_sysFlag.Bits.LowModeInit); Enable_signal(g_sysFlag.Bits.LowModeInit);
//-- alarm --// //-- alarm --//
for(i = 0; i < TotalPicWarn; i++) for (i = 0; i < TotalPicWarn; i++)
{ {
bDSTable[i] = 0; bDSTable[i] = 0;
} }
bDSTableShowTime[PicDrSafeBelt]=0; bDSTableShowTime[PicDrSafeBelt] = 0;
bDSTableShowTime[PicExHaustBrake]=0; bDSTableShowTime[PicExHaustBrake] = 0;
bDSTableShowTime[PicPowerTakeoff]=0; bDSTableShowTime[PicPowerTakeoff] = 0;
bDSTableShowTime[PicOverSpeed]=0; bDSTableShowTime[PicOverSpeed] = 0;
bCurDsPos = 255; bCurDsPos = 255;
bLcdDsCnt = 0; bLcdDsCnt = 0;
//-- Beep --// //-- Beep --//
for(i = 0; i < 21; i++) for (i = 0; i < 21; i++)
{ {
g_Beep[i].Prio = DisAlr; g_Beep[i].Prio = DisAlr;
g_Beep[i].OnTime = null; g_Beep[i].OnTime = null;
...@@ -293,7 +292,7 @@ void App_Paramer_Init(void) ...@@ -293,7 +292,7 @@ void App_Paramer_Init(void)
//-- FuelEco --// //-- FuelEco --//
g_fuelEco.VehNullTime = 0; g_fuelEco.VehNullTime = 0;
//if(g_fuelEco.KeyOffTime > T_2_0hour) //if(g_fuelEco.KeyOffTime > T_2_0hour)
if(g_fuelEco.KeyOffTime > 14400) if (g_fuelEco.KeyOffTime > 14400)
{ {
g_fuelEco.SRFCTime = null; g_fuelEco.SRFCTime = null;
g_fuelEco.FuelSum1 = null; g_fuelEco.FuelSum1 = null;
...@@ -314,8 +313,8 @@ void App_Paramer_Init(void) ...@@ -314,8 +313,8 @@ void App_Paramer_Init(void)
ClrAveFuel1 = 1; ClrAveFuel1 = 1;
ClrAveFuel = 1; ClrAveFuel = 1;
g_FuelAlarm = Disable; g_FuelAlarm = Disable;
bSendFlag=0; bSendFlag = 0;
APPSendMsgInit=0; APPSendMsgInit = 0;
g_30LOGOFlag = 0; g_30LOGOFlag = 0;
WriteleFlag2E = 0; WriteleFlag2E = 0;
...@@ -355,8 +354,12 @@ void App_State_OFF(void) ...@@ -355,8 +354,12 @@ void App_State_OFF(void)
//-- Can Clear All --// //-- Can Clear All --//
g_CanSwith.CabLock = 0; g_CanSwith.CabLock = 0;
g_CanSwith.ABSLamp = 0;
g_CanSwith.ABSLamp1 = 0;
g_CanSwith.VacuumCylinder = 0; g_CanSwith.VacuumCylinder = 0;
g_CanSwith.OilLamp = 0; g_CanSwith.OilLamp = 0;
g_CanSwith.OilLamp1 = 0;
g_CanSwith.ExhaustBrake = 0; g_CanSwith.ExhaustBrake = 0;
g_CanSwith.DriverBelt = 0; g_CanSwith.DriverBelt = 0;
g_CanSwith.SCR_Y = 0; g_CanSwith.SCR_Y = 0;
...@@ -422,7 +425,7 @@ void App_State_OFF(void) ...@@ -422,7 +425,7 @@ void App_State_OFF(void)
g_LED.pBrakeShoeTime = null; g_LED.pBrakeShoeTime = null;
g_LED.pAirFilterTime = null; g_LED.pAirFilterTime = null;
g_LED.pPowerTakeoffTime = null; g_LED.pPowerTakeoffTime = null;
g_LED.pDiffLockTime = null;//关充放电指示灯 g_LED.pDiffLockTime = null; //关充放电指示灯
g_CanSwith.LDWSstate = null; g_CanSwith.LDWSstate = null;
g_CanSwith.AmberState_E8 = null; g_CanSwith.AmberState_E8 = null;
g_CanSwith.LDWScloseLCD = null; g_CanSwith.LDWScloseLCD = null;
...@@ -447,20 +450,20 @@ void App_State_OFF(void) ...@@ -447,20 +450,20 @@ void App_State_OFF(void)
bUpDataGears = 2; bUpDataGears = 2;
//-- off清队列 --// //-- off清队列 --//
for(i=0;i<TotalPicWarn;i++) for (i = 0; i < TotalPicWarn; i++)
{ {
_FEED_COP(); _FEED_COP();
bDSTable[i]=0; bDSTable[i] = 0;
} }
for(i=0;i<TotalPicWarn;i++) for (i = 0; i < TotalPicWarn; i++)
{ {
_FEED_COP(); _FEED_COP();
wDS_LcdQueue[i]=0; wDS_LcdQueue[i] = 0;
} }
for(i=0;i<TotalPicWarn;i++) for (i = 0; i < TotalPicWarn; i++)
{ {
_FEED_COP(); _FEED_COP();
bDSTableShowTime[i]=0; bDSTableShowTime[i] = 0;
} }
bCurDsPos = 255; bCurDsPos = 255;
bLcdDsCnt = 0; bLcdDsCnt = 0;
...@@ -484,12 +487,11 @@ void App_State_OFF(void) ...@@ -484,12 +487,11 @@ void App_State_OFF(void)
g_accTime = null; g_accTime = null;
EcuDuty = 0xffffffff; EcuDuty = 0xffffffff;
RadarBuzzerFlag = 0; RadarBuzzerFlag = 0;
g_30LOGOFlag=0; g_30LOGOFlag = 0;
Enable_signal(g_sysFlag.Bits.LowModeInit); Enable_signal(g_sysFlag.Bits.LowModeInit);
g_validFlag.Bits.BD8379Init=Enable; g_validFlag.Bits.BD8379Init = Enable;
g_LED.pStartTime = null; g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s; g_LED.pStopTime = T_3_5s;
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : App_State_OFF_Run * Function Name : App_State_OFF_Run
...@@ -515,7 +517,7 @@ void App_StarUpInfo(void) ...@@ -515,7 +517,7 @@ void App_StarUpInfo(void)
{ {
g_30LOGOFlag = 0; g_30LOGOFlag = 0;
pSTBOut = LOW; pSTBOut = LOW;
WriteleFlag2E=0; WriteleFlag2E = 0;
Enable_signal(g_validFlag.Bits.OffUpFuelSts); Enable_signal(g_validFlag.Bits.OffUpFuelSts);
Enable_signal(g_sysFlag.Bits.NetCtlKeep); Enable_signal(g_sysFlag.Bits.NetCtlKeep);
Enable_signal(g_sysFlag.Bits.BeepProcEn); Enable_signal(g_sysFlag.Bits.BeepProcEn);
...@@ -528,10 +530,9 @@ void App_StarUpInfo(void) ...@@ -528,10 +530,9 @@ void App_StarUpInfo(void)
Disable_signal(g_revMeter.MakeZero); Disable_signal(g_revMeter.MakeZero);
g_runStep = SYS_INIT_TASK; g_runStep = SYS_INIT_TASK;
g_sysFlag.Bits.CanWakeUp = CanWakeUpEn ; g_sysFlag.Bits.CanWakeUp = CanWakeUpEn;
g_sysFlag.Bits.CanState = CanOFF; g_sysFlag.Bits.CanState = CanOFF;
Enable_signal(g_sysFlag.Bits.SysOffEn); Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.LowModeInit); Enable_signal(g_sysFlag.Bits.LowModeInit);
...@@ -544,7 +545,7 @@ void App_StarUpInfo(void) ...@@ -544,7 +545,7 @@ void App_StarUpInfo(void)
EcuDuty = 0xffffffff; EcuDuty = 0xffffffff;
SetMeuMsg.BackLightLevel = 4; SetMeuMsg.BackLightLevel = 4;
if(g_pBeep->Prio != DisAlr) if (g_pBeep->Prio != DisAlr)
{ {
g_pBeep = &g_nopBeep; g_pBeep = &g_nopBeep;
} }
...@@ -554,12 +555,12 @@ void App_StarUpInfo(void) ...@@ -554,12 +555,12 @@ void App_StarUpInfo(void)
g_fuelEco.Dis100Km = 0; g_fuelEco.Dis100Km = 0;
g_fuelEco.FuelSum1 = 0; g_fuelEco.FuelSum1 = 0;
g_fuelEco.Dis100Km1 = 0; g_fuelEco.Dis100Km1 = 0;
g_fuelEco.DispAveFuel=0; g_fuelEco.DispAveFuel = 0;
g_fuelEco.DispSRFC=0; g_fuelEco.DispSRFC = 0;
RamShortAccKmA = 0; RamShortAccKmA = 0;
SetMeuMsg.Language = 1; SetMeuMsg.Language = 1;
bSendFlag=0; bSendFlag = 0;
APPSendMsgInit=0; APPSendMsgInit = 0;
//-- Diagnose --// //-- Diagnose --//
ECUNum[0] = 0x11; ECUNum[0] = 0x11;
...@@ -640,7 +641,7 @@ void App_Load_Data(void) ...@@ -640,7 +641,7 @@ void App_Load_Data(void)
g_revMeterInfo.DashStep[7] = 2880; g_revMeterInfo.DashStep[7] = 2880;
//-- Temp --// //-- Temp --//
if(ConfigItem.TempConfig == 0)//报警点为100 if (ConfigItem.TempConfig == 0) //报警点为100
{ {
g_tempMeterInfo.bVirtualVal = 7; g_tempMeterInfo.bVirtualVal = 7;
...@@ -662,7 +663,7 @@ void App_Load_Data(void) ...@@ -662,7 +663,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 160; g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0; g_tempMeterInfo.DashStep[7] = 0;
} }
else if(ConfigItem.TempConfig == 1)//报警点为104 else if (ConfigItem.TempConfig == 1) //报警点为105
{ {
g_tempMeterInfo.bVirtualVal = 7; g_tempMeterInfo.bVirtualVal = 7;
...@@ -672,7 +673,7 @@ void App_Load_Data(void) ...@@ -672,7 +673,7 @@ void App_Load_Data(void)
g_tempMeterInfo.Resistor[3] = 80; g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100; g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102; g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 104; g_tempMeterInfo.Resistor[6] = 105;
g_tempMeterInfo.Resistor[7] = 0; g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0; g_tempMeterInfo.DashStep[0] = 0;
...@@ -684,7 +685,7 @@ void App_Load_Data(void) ...@@ -684,7 +685,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 160; g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0; g_tempMeterInfo.DashStep[7] = 0;
} }
else if(ConfigItem.TempConfig == 2)//报警点为105 else if (ConfigItem.TempConfig == 2) //报警点为105
{ {
g_tempMeterInfo.bVirtualVal = 8; g_tempMeterInfo.bVirtualVal = 8;
...@@ -706,7 +707,7 @@ void App_Load_Data(void) ...@@ -706,7 +707,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 140; g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160; g_tempMeterInfo.DashStep[7] = 160;
} }
else if(ConfigItem.TempConfig == 3)//报警点为110 else if (ConfigItem.TempConfig == 3) //报警点为110
{ {
g_tempMeterInfo.bVirtualVal = 8; g_tempMeterInfo.bVirtualVal = 8;
...@@ -728,7 +729,7 @@ void App_Load_Data(void) ...@@ -728,7 +729,7 @@ void App_Load_Data(void)
g_tempMeterInfo.DashStep[6] = 140; g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160; g_tempMeterInfo.DashStep[7] = 160;
} }
else if(ConfigItem.TempConfig == 4)//报警点为120 else if (ConfigItem.TempConfig == 4) //报警点为120
{ {
g_tempMeterInfo.bVirtualVal = 7; g_tempMeterInfo.bVirtualVal = 7;
......
...@@ -49,13 +49,20 @@ void Gui_KL15LedDisplay(void) ...@@ -49,13 +49,20 @@ void Gui_KL15LedDisplay(void)
{ {
//---------直驱指示灯------ //---------直驱指示灯------
//01 取力器工作 //01 取力器工作
if (1) if (g_LED.pPowerTakeoffTime >= T_0_3s)
{ {
LED_Power_TakeOFF_Out = LEDON; //on 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 else
{ {
LED_Power_TakeOFF_Out = LEDOFF; //off LED_Power_TakeOFF_Out = LEDOFF; //off
bDSTable[PicPowerTakeoff] = 0;
bDSTableShowTime[PicPowerTakeoff] = 0;
} }
//08 安全带 //08 安全带
...@@ -69,7 +76,7 @@ void Gui_KL15LedDisplay(void) ...@@ -69,7 +76,7 @@ void Gui_KL15LedDisplay(void)
} }
//09 充电状态——指示灯 不受软件控制 //09 充电状态——指示灯 不受软件控制
//19 发动机排气系统温度高——指示灯 //19 发动机排气系统温度高——指示灯
if (1) if (g_CanSwith.DpfHiTemp == 0x01u)
{ {
LED_EXCSysHighTemp_OUT = LEDON; //on LED_EXCSysHighTemp_OUT = LEDON; //on
} }
...@@ -141,14 +148,24 @@ void Gui_KL15LedDisplay(void) ...@@ -141,14 +148,24 @@ void Gui_KL15LedDisplay(void)
} }
//BD8379_D1 油含水 15 油水分离 //BD8379_D1 油含水 15 油水分离
if (Test_Hyq) if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{ {
BD83790A |= BD8379_D1; //on BD83790A |= BD8379_D1; //on
} }
else else
{
if (g_CanSwith.WIF)
{
BD83790A |= BD8379_D1; //on
bDSTable[PicWIF] |= DS0_MASK;
}
else
{ {
BD83790A &= ~BD8379_D1; //off BD83790A &= ~BD8379_D1; //off
bDSTable[PicWIF] = 0;
} }
}
//BD8379_D2 Svs灯 25 发动机保护灯 //BD8379_D2 Svs灯 25 发动机保护灯
if (Test_Hyq) if (Test_Hyq)
{ {
...@@ -158,8 +175,22 @@ void Gui_KL15LedDisplay(void) ...@@ -158,8 +175,22 @@ void Gui_KL15LedDisplay(void)
{ {
BD83790A &= ~BD8379_D2; //off BD83790A &= ~BD8379_D2; //off
} }
//BD8379_D3 20 驾驶员警告 //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 BD83790A |= BD8379_D3; //on
} }
...@@ -167,6 +198,13 @@ void Gui_KL15LedDisplay(void) ...@@ -167,6 +198,13 @@ void Gui_KL15LedDisplay(void)
{ {
BD83790A &= ~BD8379_D3; //off BD83790A &= ~BD8379_D3; //off
} }
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
//BD8379_D4 预留 //BD8379_D4 预留
if (Test_Hyq) if (Test_Hyq)
{ {
...@@ -176,8 +214,11 @@ void Gui_KL15LedDisplay(void) ...@@ -176,8 +214,11 @@ void Gui_KL15LedDisplay(void)
{ {
BD83790A &= ~BD8379_D4; //off BD83790A &= ~BD8379_D4; //off
} }
//BD8379_D5 水温报警灯 5 发动机水温高 //BD8379_D5 水温报警灯 5 发动机水温高
if (Test_Hyq) if (DIDFlag.Bits.DID102CValid == Enable)
{
if (IOCTL_DID102C.FF_Byte == 1)
{ {
BD83790A |= BD8379_D5; //on BD83790A |= BD8379_D5; //on
} }
...@@ -185,8 +226,81 @@ void Gui_KL15LedDisplay(void) ...@@ -185,8 +226,81 @@ void Gui_KL15LedDisplay(void)
{ {
BD83790A &= ~BD8379_D5; //off 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 BD83790A |= BD8379_D6; //on
} }
...@@ -194,6 +308,44 @@ void Gui_KL15LedDisplay(void) ...@@ -194,6 +308,44 @@ void Gui_KL15LedDisplay(void)
{ {
BD83790A &= ~BD8379_D6; //off 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故障 //BD8379_D7 17 EPS故障
if (Test_Hyq) if (Test_Hyq)
{ {
...@@ -220,16 +372,16 @@ void Gui_KL15LedDisplay(void) ...@@ -220,16 +372,16 @@ void Gui_KL15LedDisplay(void)
{ {
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300)) 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 BD83790A |= BD8379_D8; //on
} }
} }
else 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) if (g_CanSwith.ABSLamp == 1u)
{ {
BD83790A |= BD8379_D8; //on BD83790A |= BD8379_D8; //on
...@@ -243,6 +395,22 @@ void Gui_KL15LedDisplay(void) ...@@ -243,6 +395,22 @@ void Gui_KL15LedDisplay(void)
DTC_ABSErrFlag = Disable; 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 else
{ {
; ;
...@@ -327,7 +495,7 @@ void Gui_KL15LedDisplay(void) ...@@ -327,7 +495,7 @@ void Gui_KL15LedDisplay(void)
else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1)) else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))
{ {
//if ((g_LED.pMILOffTime1 >= T_2_0s) && (OBDLamp == 0)) //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 BD83790B &= ~BD8379_D0; //off
DTC_OBDErrFlag = Disable; DTC_OBDErrFlag = Disable;
...@@ -355,13 +523,34 @@ void Gui_KL15LedDisplay(void) ...@@ -355,13 +523,34 @@ void Gui_KL15LedDisplay(void)
BD83790B &= ~BD8379_D1; //off BD83790B &= ~BD8379_D1; //off
} }
//BD8379_D2 预热指示灯 14 发动机预热 //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 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 //BD8379_D3 预留2
if (Test_Hyq) if (Test_Hyq)
...@@ -394,17 +583,59 @@ void Gui_KL15LedDisplay(void) ...@@ -394,17 +583,59 @@ void Gui_KL15LedDisplay(void)
} }
//BD8379_D6 11 发动机故障 //BD8379_D6 11 发动机故障
if (Test_Hyq) if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{ {
BD83790B |= BD8379_D6; //on 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 else
{ {
BD83790B &= ~BD8379_D6; //off BD83790B &= ~BD8379_D6; //off
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Disable;
}
}
else //掉线点亮
{
BD83790B |= BD8379_D6; //on
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Enable;
}
} }
//BD8379_D7 机油报警 3 低油压报警 //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 BD83790B |= BD8379_D7; //on
} }
...@@ -413,18 +644,45 @@ void Gui_KL15LedDisplay(void) ...@@ -413,18 +644,45 @@ void Gui_KL15LedDisplay(void)
BD83790B &= ~BD8379_D7; //off BD83790B &= ~BD8379_D7; //off
} }
//机油压力低-LCD
if (g_LED.pTFTOilTime > T_10_0s)
{
bDSTable[PicOilLow] |= DS0_MASK;
}
else
{
bDSTable[PicOilLow] = 0;
}
}
}
//BD8379_D8 18 DPF再生(黄色) //BD8379_D8 18 DPF再生(黄色)
if (Test_Hyq) if (g_CanSwith.DPF || g_CanSwith.DPFf)
{
if (g_CanSwith.DPF)
{ {
BD83790B |= BD8379_D8; //on BD83790B |= BD8379_D8; //on
} }
else else
{
if (g_CanSwith.OutFlashFlag)
{
BD83790B |= BD8379_D8; //on
}
else
{
BD83790B &= ~BD8379_D8; //off
}
}
}
else
{ {
BD83790B &= ~BD8379_D8; //off BD83790B &= ~BD8379_D8; //off
} }
//BD8379_D9 21 DPF再生(红色) //BD8379_D9 21 DPF再生(红色)
if (Test_Hyq) if (g_CanSwith.DPF_Red)
{ {
BD83790B |= BD8379_D9; //on BD83790B |= BD8379_D9; //on
} }
...@@ -434,15 +692,16 @@ void Gui_KL15LedDisplay(void) ...@@ -434,15 +692,16 @@ void Gui_KL15LedDisplay(void)
} }
//BD8379_D10 12 制动蹄片磨损报警 //BD8379_D10 12 制动蹄片磨损报警
if (Test_Hyq) if ((g_LED.pBrakeShoeTime >= T_0_3s) && (ConfigItem.BrakeShoeConfig == 0x01))
{ {
BD83790B |= BD8379_D10; //on BD83790B |= BD8379_D10; //on
bDSTable[PicBrakePiece] |= DS0_MASK;
} }
else else
{ {
BD83790B &= ~BD8379_D10; //off BD83790B &= ~BD8379_D10; //off
bDSTable[PicBrakePiece] = 0;
} }
//BD8379_D11 门开 门开在30电上 //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