Commit 80ab578f authored by hu's avatar hu

增加指示灯逻辑

parent b1ebd45e
#define GLOBALS_API_EE
#define GLOBALS_API_EE
#include "defines.h"
#include "g_includes.h"
#include "app_service.h"
......@@ -17,10 +16,10 @@ extern DIAG_2E_DATA Diag2eData;
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++;
*Dp++ = *Sp++;
}
}
......@@ -32,25 +31,25 @@ 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;
}
else
bCheckSun >>= 1;
bCheckSun >>= 1;
}
}
return(bCheckSun);
return (bCheckSun);
}
/*-------------------------------------------------------------------------
......@@ -63,19 +62,19 @@ INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub)
--------------------------------------------------------------------------*/
void Api_ReadAccKm(void)
{
INT8U check1 = null;
INT8U check2 = null;
INT8U check1 = null;
INT8U check2 = null;
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);
check1 = Api_CreateCRCCheckSum((INT8U *) &g_accKm, Register_Len - 2);
if((check1 != g_accKm.bCheckSun) || (g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000))
(void)bsp_IIC_ReadPage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
check1 = Api_CreateCRCCheckSum((INT8U *)&g_accKm, Register_Len - 2);
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) && \
(g_accKm.LongAccKm <= 10000000) && (g_oldAccKm.LongAccKm <= 10000000))
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);
if((check1 == g_accKm.bCheckSun) && (check2 == g_oldAccKm.bCheckSun))
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(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,26 +126,26 @@ 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);
if((g_accKm.Checkflag != CheckFlag) || (g_accKm.LongAccKm > 10000000) || (check1 != g_accKm.bCheckSun))
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))
{
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);
}
}
Api_CopyRam((INT8U *)&g_oldAccKm, (INT8U *)&g_accKm, Register_Len);
Enable_signal(g_sysFlag.Bits.AccSaveState);
Disable_signal(g_sysFlag.Bits.AccKmValid);
......@@ -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);
if(g_AccAddr.CurEEAccddr >= EEACC_END)
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, (INT8U)g_AccAddr.CurEEAccddr, (INT8U *)&g_accKm, Register_Len);
if (g_AccAddr.CurEEAccddr >= EEACC_END)
{
g_AccAddr.CurEEAccddr = EEACC_START;
}
......@@ -190,53 +189,52 @@ void Api_WriteAccReg(void)
--------------------------------------------------------------------------*/
void Api_ClearAccStock(void)
{
if(g_sysFlag.Bits.AccSaveState)
if (g_sysFlag.Bits.AccSaveState)
{
bsp_WDOG_Feed();
g_accKm.Checkflag = CheckFlag;
g_accKm.LongAccKm = null;
g_accKm.ShortAccKm = null;
g_accKm.FuelSum = 3000;
g_accKm.Dis100Km = 400;
g_accKm.RemnantPulse = null;
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);
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);
break;
case 2:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 16, (INT8U *)&g_accKm, Register_Len);
break;
case 3:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 32, (INT8U *)&g_accKm, Register_Len);
break;
case 4:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 48, (INT8U *)&g_accKm, Register_Len);
break;
case 5:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 64, (INT8U *)&g_accKm, Register_Len);
break;
case 6:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 80, (INT8U *)&g_accKm, Register_Len);
break;
case 7:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 96, (INT8U *)&g_accKm, Register_Len);
break;
case 8:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEBAKACC, (INT8U *)&g_accKm, Register_Len);
g_sysFlag.Bits.AccSaveState = Disable;
g_accKmClrStep = null;
g_sysFlag.Bits.ClearODO = 0;
break;
default:
;
case 1:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 0, (INT8U *)&g_accKm, Register_Len);
break;
case 2:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 16, (INT8U *)&g_accKm, Register_Len);
break;
case 3:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 32, (INT8U *)&g_accKm, Register_Len);
break;
case 4:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 48, (INT8U *)&g_accKm, Register_Len);
break;
case 5:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 64, (INT8U *)&g_accKm, Register_Len);
break;
case 6:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 80, (INT8U *)&g_accKm, Register_Len);
break;
case 7:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEACC_START + 96, (INT8U *)&g_accKm, Register_Len);
break;
case 8:
g_bReturn = bsp_IIC_WritePage(EEPROM_BLOCK0, EEBAKACC, (INT8U *)&g_accKm, Register_Len);
g_sysFlag.Bits.AccSaveState = Disable;
g_accKmClrStep = null;
g_sysFlag.Bits.ClearODO = 0;
break;
default:;
}
bsp_WDOG_Feed();
Api_CopyRam((INT8U *)&g_oldAccKm, (INT8U *)&g_accKm, sizeof(_Register));
}
......@@ -249,7 +247,7 @@ void Api_ClearAccStock(void)
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Api_ReadMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
void Api_ReadMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
{
(void)bsp_IIC_ReadPage(PhyAdd, MemAdd, (INT8U *)&Data[0], 16);
bsp_WDOG_Feed();
......@@ -265,7 +263,7 @@ void Api_ReadMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Api_WriteMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
void Api_WriteMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
{
bsp_WDOG_Feed();
(void)bsp_IIC_WritePage(PhyAdd, MemAdd, (INT8U *)&Data[0], 16);
......@@ -283,7 +281,7 @@ void Api_WriteMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Api_ReadProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
void Api_ReadProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
{
(void)bsp_IIC_ReadPage(PhyAdd, MemAdd, (INT8U *)&Data[0], 16);
bsp_WDOG_Feed();
......@@ -301,7 +299,7 @@ void Api_ReadProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Api_WriteProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
void Api_WriteProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data)
{
bsp_WDOG_Feed();
bsp_Delay(6000);
......@@ -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);
}
}
......@@ -343,134 +341,133 @@ void Write2EData(void)
void Init2EData(void)
{
INT8U i;
INT32U wTemp = null;
INT32U wTemp = null;
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);
//---- F192 ----//
(void)memset((INT8U *)&Diag2eData.D_F192[0], 0, 11);
(void)memset((INT8U *)&Diag2eData.D_F192[0], 0, 11);
//---- F199 ----//
(void)memset((INT8U *)&Diag2eData.D_F199[0], 0, 4);
(void)memset((INT8U *)&Diag2eData.D_F199[0], 0, 4);
//---- FCAA ----//
wTemp = 5624;//用来识别EPROM是否成功写入硬件配置
Diag2eData.D_FCAA[0] = (wTemp>>8) & 0xff;//Byte0-Byte1::Bit5 - Bit0 PPK
Diag2eData.D_FCAA[1] = wTemp & 0xff;
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国四、国五
//Byte2::Bit7 - Bit4 单位 : default:0 km/h,L/100km
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Ω
//Byte4::Bit7 冷却液液位报警 : default:0 未配置
Diag2eData.D_F1A8[5] = 0x02;//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);
//Byte1::Bit2 - Bit1 天蓝液 : default:2 18FE5600
//Byte1::Bit3 气压 : default:1 配置
//Byte1::Bit7 - Bit4 语言 : default:0 中文
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
//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Ω
//Byte4::Bit7 冷却液液位报警 : default:0 未配置
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;
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; //--//
//发动机状态
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f;//--//
//车道偏离
ConfigItem.LDWSConfig = Diag2eData.D_F1A8[3] & 0x01;
SetMeuMsg.Language = (Diag2eData.D_F1A8[1] >> 4) + 1; //--//
//发动机状态
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 = 2400 + g_RedArea * 200; //--//
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.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 --//
//超速报警值
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; //--//
//发动机状态
ConfigItem.EngConfig = Diag2eData.D_F1A8[2] & 0x0f;//--//
//车道偏离
ConfigItem.LDWSConfig = Diag2eData.D_F1A8[3] & 0x01;
SetMeuMsg.Language = (Diag2eData.D_F1A8[1] >> 4) + 1; //--//
//发动机状态
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 = 2400 + g_RedArea * 200; //--//
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.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;
}
}
/*-------------------------------------------------------------------------
* Function Name : App_2E_Write_handle
......@@ -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
......@@ -21,7 +21,7 @@ extern DIAG_2E_DATA Diag2eData;
--------------------------------------------------------------------------*/
void App_CalFuelBoard(void)
{
/* INT32U temp2; //江淮N721平台化24V表,
/* INT32U temp2; //江淮N721平台化24V表,
INT32U temp1;
INT16U RScale;
INT16U TempR1;
......@@ -58,46 +58,43 @@ void App_CalFuelBoard(void)
g_fuelMeter.CurBoardVal = RL;
*/
INT32U temp2; //江淮N721平台化12V表,
INT32U temp1;
INT16U RScale;
INT16U TempR1;
INT16U TempR2;
INT32U VR1;
INT32U VR2;
INT32U g_Vcc;
INT32U g_Vcpu;
INT32U RL;
TempR1 = 33; //是PIN23脚向内接入的 33K与27K
INT32U temp2; //江淮N721平台化12V表,
INT32U temp1;
INT16U RScale;
INT16U TempR1;
INT16U TempR2;
INT32U VR1;
INT32U VR2;
INT32U g_Vcc;
INT32U g_Vcpu;
INT32U RL;
TempR1 = 33; //是PIN23脚向内接入的 33K与27K
TempR2 = 27;
VR1 = 33000; //KL15_AD 单片机15电AD采集端配置的电阻,12V表配 33欧姆与10欧姆
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 = RL * 10;
}
if(RL > 3600)
RL = ((RScale * 5 * temp2) * 200) / (10240 * g_Vcc - (RScale * 5 * temp2)); ////图纸上是200欧姆(1.2K的6个并联),是PIN23脚向内接入的
RL = RL * 10;
}
if (RL > 3600)
{
RL = 3600;
}
g_fuelMeter.CurBoardVal = (INT16U)RL;
g_fuelMeter.CurBoardVal = (INT16U)RL;
}
/*-------------------------------------------------------------------------
* Function Name : App_CalFuelEconomy
......@@ -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.FuelSum /= 2;
g_fuelEco.Dis100Km /= 2;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco.CalAveFuel = (INT16U)((g_fuelEco.FuelSum+ConfigItem.FuelCosumConfig)*1000 /(g_fuelEco.Dis100Km+50));
if(g_fuelEco.DispAveFuel == null)
g_fuelEco.CalAveFuel = (INT16U)((g_fuelEco.FuelSum + ConfigItem.FuelCosumConfig) * 1000 / (g_fuelEco.Dis100Km + 50));
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;
}
......@@ -169,43 +166,43 @@ void App_CalFuelEconomy(void)
g_fuelEco.DispAveFuel = null;
}
}
//短程油耗
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.FuelSum1 /= 2;
g_fuelEco.Dis100Km1 /= 2;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco.CalSRFC = (INT16U)((g_fuelEco.FuelSum1+ConfigItem.FuelCosumConfig) * 1000/(g_fuelEco.Dis100Km1+50));
if(g_fuelEco.DispSRFC == null)
g_fuelEco.CalSRFC = (INT16U)((g_fuelEco.FuelSum1 + ConfigItem.FuelCosumConfig) * 1000 / (g_fuelEco.Dis100Km1 + 50));
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;
}
......@@ -217,20 +214,20 @@ void App_CalFuelEconomy(void)
}
}
else
{
{
g_fuelEco.AveFuelTime = null;
g_fuelEco.FuelSum = null;
g_fuelEco.Dis100Km = null;
g_fuelEco.DispAveFuel = null;
g_fuelEco.CalAveFuel = null;
AveFuel_Updeta;
g_fuelEco.SRFCTime = null;
g_fuelEco.FuelSum1 = null;
g_fuelEco.Dis100Km1 = null;
g_fuelEco.DispSRFC = null;
g_fuelEco.CalSRFC = null;
InstFuel_Updeta;
InstFuel_Updeta;
}
}
/*-------------------------------------------------------------------------
......@@ -243,23 +240,23 @@ 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.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1050;
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
FuelInitPara.DisplayZoneBoundary[5] = 325; //4格末 --50steps
FuelInitPara.DisplayZoneBoundary[6] = 250; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 180; //6格末 --70steps
FuelInitPara.DisplayZoneBoundary[8] = 80; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 30; //8格末 --90steps
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
FuelInitPara.DisplayZoneBoundary[5] = 325; //4格末 --50steps
FuelInitPara.DisplayZoneBoundary[6] = 250; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 180; //6格末 --70steps
FuelInitPara.DisplayZoneBoundary[8] = 80; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 30; //8格末 --90steps
FuelInitPara.DisplayZoneBoundary[10] = FuelInitPara.FuelShortCircuitR;
//-- no use --//
FuelInitPara.FuelCapacityBoundary[0] = 0;
FuelInitPara.FuelCapacityBoundary[1] = 0;
......@@ -273,23 +270,23 @@ 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.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500; //断路电阻--350欧
FuelInitPara.DisplayZoneBoundary[0] = 1460;
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
FuelInitPara.DisplayZoneBoundary[6] = 400; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 280; //6格末 --70steps
FuelInitPara.DisplayZoneBoundary[8] = 110; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 50; //8格末 --90steps
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
FuelInitPara.DisplayZoneBoundary[6] = 400; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 280; //6格末 --70steps
FuelInitPara.DisplayZoneBoundary[8] = 110; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 50; //8格末 --90steps
FuelInitPara.DisplayZoneBoundary[10] = FuelInitPara.FuelShortCircuitR;
//-- no use --//
FuelInitPara.FuelCapacityBoundary[0] = 0;
FuelInitPara.FuelCapacityBoundary[1] = 0;
......@@ -303,23 +300,23 @@ void App_CalFuelInit(void)
FuelInitPara.FuelCapacityBoundary[9] = 520;
FuelInitPara.FuelCapacityBoundary[10] = 520;
}
else //default config 1
else //default config 1
{
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
FuelInitPara.FuelOpenCircuitR = 3500;//断路电阻--350欧
FuelInitPara.FuelShortCircuitR = 10; //短路电阻--1欧
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[5] = 890; //4格末 --50steps
FuelInitPara.DisplayZoneBoundary[6] = 700; //5格末 --60steps
FuelInitPara.DisplayZoneBoundary[7] = 580; //6格末 --70steps
FuelInitPara.DisplayZoneBoundary[8] = 310; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 100; //8格末 --90steps
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
FuelInitPara.DisplayZoneBoundary[8] = 310; //7格末 --80steps
FuelInitPara.DisplayZoneBoundary[9] = 100; //8格末 --90steps
FuelInitPara.DisplayZoneBoundary[10] = FuelInitPara.FuelShortCircuitR;
//-- no use --//
FuelInitPara.FuelCapacityBoundary[0] = 0;
FuelInitPara.FuelCapacityBoundary[1] = 0;
......@@ -333,16 +330,16 @@ void App_CalFuelInit(void)
FuelInitPara.FuelCapacityBoundary[9] = 520;
FuelInitPara.FuelCapacityBoundary[10] = 520;
}
InitFuelParamter(&FuelInitPara);
g_AFC_INIT.CalcAFCMaxNum = 50; //max 100km,default 50
g_AFC_INIT.AFCMin = 40; //unit:L,accuracy:0.1
g_AFC_INIT.AFCMax = 199; //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.MaxDRMileage = 70000; //unit:km,accuracy:0.01
InitAFC( &g_AFC_INIT);
g_AFC_INIT.CalcAFCMaxNum = 50; //max 100km,default 50
g_AFC_INIT.AFCMin = 40; //unit:L,accuracy:0.1
g_AFC_INIT.AFCMax = 199; //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.MaxDRMileage = 70000; //unit:km,accuracy:0.01
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,52 +369,52 @@ 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;
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;
}
else
{
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;
}
else
{
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;
}
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();
......
......@@ -5,7 +5,7 @@
* Author: QTC
*/
#define GLOBALS_APP_SYS
#define GLOBALS_APP_SYS
#include "../app_Headers/g_includes.h"
/*-------------------------------------------------------------------------
......@@ -46,19 +46,18 @@ void App_Paramer_Init(void)
bWaterReAlarmCn = 30;
//
Dis_Num = 0;
g_canClock.BusOffTime = null;
g_canClock.BusOffTime = null;
g_canClock.CanKeepTime = null;
g_canClock.CanDataCn = null;
g_canClock.CanDataCn = null;
//Enable_signal(g_canClock.signal.ExistF004);
// g_canClock.IDF004Cn = 200; //10ms
// g_canClock.IDFE56Cn = 200; //10ms
g_Init.InitLedCheckTime = 0;
g_Init.InitLedCheckOBDTime = 0;
g_canMsgFE56.ProceF == EMPTY;
if(G_Button.MainMenu != 4)
if (G_Button.MainMenu != 4)
{
G_Button.MainMenu = 1;
......@@ -79,16 +78,11 @@ void App_Paramer_Init(void)
Disable_signal(g_sysFlag.Bits.FuelMeterInit);
Disable_signal(g_sysFlag.Bits.AdjEnable);
Disable_signal(g_sysFlag.Bits.PowerLvi);
if(!g_sysFlag.Bits.WakeUpState)
if (!g_sysFlag.Bits.WakeUpState)
{
Enable_signal(g_sysFlag.Bits.CanWakeUp);
}
//motor
g_vehMeter.Dir = keep_local;
g_vehMeter.DestPosition = null;
......@@ -159,15 +153,15 @@ void App_Paramer_Init(void)
g_runStep = SYS_INIT_TASK;
g_accTime = null;
g_accVeh = null;
g_accVeh = null;
g_accKmClrStep = null;
Api_Set10msTimer(T1_10ms, (_Clock *)&g_Clock);
Api_SetBaseTimer(T_100ms, (_Clock *)&g_Clock);
Gui_Offset_Init();
bDSTable[ID_FUELLOW] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_ADBLUE ] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_FUELLOW] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
bDSTable[ID_ADBLUE] &= (~(DS0_MASK | DS1_MASK)); //clear DS0 & DS1
////////////////////glz--20170107
CanMinuteTime = 0;
bCurMenuIDX = 0;
......@@ -185,7 +179,6 @@ void App_Paramer_Init(void)
--------------------------------------------------------------------------*/
void App_State_OFF(void)
{
}
/*-------------------------------------------------------------------------
* Function Name : App_StarUpInfo
......@@ -215,31 +208,19 @@ void App_StarUpInfo(void)
Disable_signal(g_gas1Meter.MakeZero);
Disable_signal(g_gas2Meter.MakeZero);
g_OverSpeed = 120;
g_fuelMeter.OldPosition = null;
Gui_MenuInit();
Gui_Offset_Init();
g_runStep = SYS_INIT_TASK;
pABSout = LEDOFF;
pOilout = LEDOFF;
pFuelOut = LEDOFF;
pTempOut = LEDOFF;
pABSout = LEDOFF;
pOilout = LEDOFF;
pFuelOut = LEDOFF;
pTempOut = LEDOFF;
}
/*-------------------------------------------------------------------------
......@@ -253,20 +234,19 @@ void App_StarUpInfo(void)
void App_Load_Data(void)
{
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *) &Rev_RedLight, 8);
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Rev_RedLight, 6);
if((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
bsp_IIC_ReadPage(0xa2, EE_REVREDLED_ADDR, (INT8U *)&Rev_RedLight, 8);
g_chksun = Api_CreateCRCCheckSum((INT8U *)&Rev_RedLight, 6);
if ((Rev_RedLight.bCheckFlag != 0x55) || (g_chksun != Rev_RedLight.bCheckSun))
{
Rev_RedLight.RevRedLight = 3200;
Rev_RedLight.bSetAdblue = 0;
Rev_RedLight.bSetCheck = 0;
Rev_RedLight.bSetAdblue = 0;
Rev_RedLight.bSetCheck = 0;
}
///
bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *) &Radio, 10);
g_chksun = Api_CreateCRCCheckSum((INT8U *) &Radio, 8);
if((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun))
//
bsp_IIC_ReadPage(0xa2, EE_RADIO_ADDR, (INT8U *)&Radio, 10);
g_chksun = Api_CreateCRCCheckSum((INT8U *)&Radio, 8);
if ((Radio.bCheckFlag != 0x55) || (g_chksun != Radio.bCheckSun))
{
Radio.RevRadio = 2;
Radio.VehRadio = 520;
......@@ -277,7 +257,7 @@ void App_Load_Data(void)
Api_ReadMeterInfo(0xa0, EE_VEH_ADDR, (INT8U *)&g_vehMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *)&g_vehMeterInfo.Resistor[0], g_vehMeterInfo.bFlag, 33);
if((g_vehMeterInfo.bFlag != 0x55) || (g_vehMeterInfo.bCheckSun != g_chksun))
if ((g_vehMeterInfo.bFlag != 0x55) || (g_vehMeterInfo.bCheckSun != g_chksun))
{
g_vehMeterInfo.bVirtualVal = 8;
g_vehMeterInfo.Resistor[0] = 0;
......@@ -290,13 +270,13 @@ void App_Load_Data(void)
g_vehMeterInfo.Resistor[7] = 140;
g_vehMeterInfo.DashStep[0] = 0;
g_vehMeterInfo.DashStep[1] = 360; //20
g_vehMeterInfo.DashStep[1] = 360; //20
g_vehMeterInfo.DashStep[2] = 735; //40
g_vehMeterInfo.DashStep[3] = 1085; //60
g_vehMeterInfo.DashStep[4] = 1445; //80
g_vehMeterInfo.DashStep[5] = 1805; //100
g_vehMeterInfo.DashStep[6] = 2165; //120
g_vehMeterInfo.DashStep[7] = 2525; // 140
g_vehMeterInfo.DashStep[3] = 1085; //60
g_vehMeterInfo.DashStep[4] = 1445; //80
g_vehMeterInfo.DashStep[5] = 1805; //100
g_vehMeterInfo.DashStep[6] = 2165; //120
g_vehMeterInfo.DashStep[7] = 2525; // 140
}
g_vehLcdInfo.bVirtualVal = g_vehMeterInfo.bVirtualVal;
......@@ -319,10 +299,10 @@ void App_Load_Data(void)
g_vehLcdInfo.DashStep[7] = g_vehMeterInfo.DashStep[7];
//
Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *) &g_revMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *) &g_revMeterInfo.Resistor[0], g_revMeterInfo.bFlag, 33);
Api_ReadMeterInfo(0xa0, EE_REV_ADDR, (INT8U *)&g_revMeterInfo);
g_chksun = Api_CreateCheckSun((INT8U *)&g_revMeterInfo.Resistor[0], g_revMeterInfo.bFlag, 33);
if((g_revMeterInfo.bFlag != 0x55) || (g_revMeterInfo.bCheckSun != g_chksun))
if ((g_revMeterInfo.bFlag != 0x55) || (g_revMeterInfo.bCheckSun != g_chksun))
{
g_revMeterInfo.bVirtualVal = 5;
g_revMeterInfo.Resistor[0] = 0;
......@@ -335,15 +315,16 @@ void App_Load_Data(void)
g_revMeterInfo.Resistor[7] = 0;
g_revMeterInfo.DashStep[0] = 0;
g_revMeterInfo.DashStep[1] = 256; //
g_revMeterInfo.DashStep[2] = 476; //
g_revMeterInfo.DashStep[3] = 1356; //
g_revMeterInfo.DashStep[4] = 2236; //
g_revMeterInfo.DashStep[5] = 0; //
g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; //
g_revMeterInfo.DashStep[1] = 256; //
g_revMeterInfo.DashStep[2] = 476; //
g_revMeterInfo.DashStep[3] = 1356; //
g_revMeterInfo.DashStep[4] = 2236; //
g_revMeterInfo.DashStep[5] = 0; //
g_revMeterInfo.DashStep[6] = 0; //
g_revMeterInfo.DashStep[7] = 0; //
}
//////
//
g_gas1MeterInfo.bVirtualVal = 7;
g_gas1MeterInfo.Resistor[0] = 102; //0
......@@ -356,13 +337,13 @@ void App_Load_Data(void)
g_gas1MeterInfo.Resistor[7] = 0;
g_gas1MeterInfo.DashStep[0] = 0;
g_gas1MeterInfo.DashStep[1] = 240; //
g_gas1MeterInfo.DashStep[2] = 480; //
g_gas1MeterInfo.DashStep[1] = 240; //
g_gas1MeterInfo.DashStep[2] = 480; //
g_gas1MeterInfo.DashStep[3] = 720; //
g_gas1MeterInfo.DashStep[4] = 960; //
g_gas1MeterInfo.DashStep[5] = 1200; //
g_gas1MeterInfo.DashStep[6] = 1440; //
g_gas1MeterInfo.DashStep[7] = 0; //
g_gas1MeterInfo.DashStep[5] = 1200; //
g_gas1MeterInfo.DashStep[6] = 1440; //
g_gas1MeterInfo.DashStep[7] = 0; //
//
g_gas2MeterInfo.bVirtualVal = 7;
......@@ -377,13 +358,13 @@ void App_Load_Data(void)
g_gas2MeterInfo.Resistor[7] = 0;
g_gas2MeterInfo.DashStep[0] = 0;
g_gas2MeterInfo.DashStep[1] = 240; //
g_gas2MeterInfo.DashStep[2] = 480; //
g_gas2MeterInfo.DashStep[1] = 240; //
g_gas2MeterInfo.DashStep[2] = 480; //
g_gas2MeterInfo.DashStep[3] = 720; //
g_gas2MeterInfo.DashStep[4] = 960; //
g_gas2MeterInfo.DashStep[5] = 1200; //
g_gas2MeterInfo.DashStep[6] = 1440; //
g_gas2MeterInfo.DashStep[7] = 0; //
g_gas2MeterInfo.DashStep[5] = 1200; //
g_gas2MeterInfo.DashStep[6] = 1440; //
g_gas2MeterInfo.DashStep[7] = 0; //
//////
g_tempMeterInfo.bVirtualVal = 6;
......@@ -392,7 +373,7 @@ void App_Load_Data(void)
g_tempMeterInfo.Resistor[2] = 112;
g_tempMeterInfo.Resistor[3] = 55;
g_tempMeterInfo.Resistor[4] = 40;
g_tempMeterInfo.Resistor[5] = 26; //
g_tempMeterInfo.Resistor[5] = 26; //
g_tempMeterInfo.Resistor[6] = 0; //
g_tempMeterInfo.Resistor[7] = 0; //
......@@ -413,9 +394,9 @@ void App_Load_Data(void)
g_tempcanMeterInfo.Resistor[2] = 80;
g_tempcanMeterInfo.Resistor[3] = 100;
g_tempcanMeterInfo.Resistor[4] = 110;
g_tempcanMeterInfo.Resistor[5] = 115; //
g_tempcanMeterInfo.Resistor[6] = 0; //
g_tempcanMeterInfo.Resistor[7] = 0; //
g_tempcanMeterInfo.Resistor[5] = 115; //
g_tempcanMeterInfo.Resistor[6] = 0; //
g_tempcanMeterInfo.Resistor[7] = 0; //
g_tempcanMeterInfo.DashStep[0] = 0;
g_tempcanMeterInfo.DashStep[1] = 35;
......@@ -445,7 +426,6 @@ void App_Load_Data(void)
g_fuelMeterInfo.DashStep[6] = 0;
g_fuelMeterInfo.DashStep[7] = 0;
g_fuelEcoParamer.bVirtualVal = 4;
g_fuelEcoParamer.Resistor[0] = 0;
......@@ -462,8 +442,7 @@ void App_Load_Data(void)
w1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1];
VehFreLimit = w / (w1 * Radio.VehRadio * Radio.VehNum / 3600) / 4;
w = TPM1Clock;
w1 = g_revMeterInfo.Resistor[ g_revMeterInfo.bVirtualVal - 1];
RevFreLimit = w / (w1 * Radio.RevRadio / 60) / 4;
w1 = g_revMeterInfo.Resistor[g_revMeterInfo.bVirtualVal - 1];
RevFreLimit = w / (w1 * Radio.RevRadio / 60) / 4;
Rev_Limit = App_CalMicroStep((INT32U)Rev_RedLight.RevRedLight, (_EE_MeterInfo *)&g_revMeterInfo);
}
......@@ -240,6 +240,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID64775_00Cn == null)
{
g_CanSwith.OilLamp1 = 0;
g_CanSwith.EngMIL1 = 0;
g_CanSwith.EngFailure1 = 0;
g_CanSwith.EngFailure4 = 0;
......@@ -321,8 +322,6 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_00Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_00);
}
}
......@@ -340,7 +339,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_29Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_29);
}
......@@ -359,7 +358,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_0FCn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_0F);
}
......@@ -378,7 +377,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID61440_10Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist61440_10);
}
......@@ -444,7 +443,7 @@ void App_CheckCanDrop(void)
}
if (g_canClock.ID65248Cn == null)
{
g_CanSwith.OilLamp = 0;
Disable_signal(g_canClock.signal.Exist65248);
}
......@@ -641,6 +640,7 @@ void App_CheckCanDrop(void)
if (g_canClock.ID61441Cn == null)
{
g_CanSwith.ABSLamp = 0;
g_CanSwith.ABSLamp1 = 0;
g_CanSwith.ASR = 0;
g_CanSwith.ESPoff = 0;
......
......@@ -163,6 +163,7 @@
#define wdt_reset() __RESET_WATCHDOG()
//-- 机油压力 --//
#define P_55kpa 14
#define P_60kpa 15
#define P_68kpa 17
#define P_80kpa 20
......
......@@ -11,7 +11,7 @@ Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12
AEFWarningDialog=FALSE
MainFrame=2,3,-1,-1,-1,-1,248,32,1208,692
MainFrame=2,3,-32000,-32000,-1,-1,248,32,1208,692
TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
Configuration=TBDML.hwc
Statusbar=1
......
......@@ -120,7 +120,7 @@ void App_ReceiveCanMsg(void)
}
//驾驶员警告(黄)
if ((g_canMsg65279.Data[1] & 0x07) == 0x01) //2020-10-08(改功能)
if ((g_canMsg65279.Data[1] & 0x07) == 0x01)
{
g_CanSwith.DriverWarn = S_on;
}
......@@ -166,11 +166,29 @@ void App_ReceiveCanMsg(void)
if (g_canMsg64892.ProceF == MSG_FULL)
{
//DPF指示灯
if ((g_canMsg64892.Data[0] & 0x07) == 0x01)
if ((g_canMsg64892.Data[0] & 0x07) == 1)
{
g_CanSwith.DPF = 1;
g_CanSwith.DPFf = 0;
g_CanSwith.DPF_Red = 0;
}
else if ((g_canMsg64892.Data[0] & 0x07) == 4)
{
g_CanSwith.DPFf = 1;
g_CanSwith.DPF = 0;
g_CanSwith.DPF_Red = 0;
}
else if ((g_canMsg64892.Data[0] & 0x07) == 2)
{
g_CanSwith.DPF_Red = 1;
g_CanSwith.DPF = 0;
g_CanSwith.DPFf = 0;
}
else
{
g_CanSwith.DPF = 0;
g_CanSwith.DPFf = 0;
g_CanSwith.DPF_Red = 0;
}
//新加禁止DPF指示
......@@ -194,7 +212,7 @@ void App_ReceiveCanMsg(void)
//}
//发动机排气温度高指示灯
if ((g_canMsg64892.Data[6] & 0x1c) == 0x01)
if ((g_canMsg64892.Data[6] & 0x1c) == 0x04)
{
g_CanSwith.DpfHiTemp = 1;
}
......@@ -209,8 +227,18 @@ void App_ReceiveCanMsg(void)
//64775 0x18FD0700
if (g_canMsg64775_00.ProceF == MSG_FULL)
{
//发动机排放故障OBD1
//发动机故障EPC1 Engine Red Stop Lamp Command Engine Red Stop Lamp Command Intel 0 4 2 Unsigned
if ((g_canMsg64775_00.Data[0] & 0x30) == 0x10)
{
g_CanSwith.EngFailure1 = 1;
}
else
{
g_CanSwith.EngFailure1 = 0;
}
//发动机排放故障OBD1 MIL OBD Malfunction Indicator Lamp Command Intel 0 6 2
if ((g_canMsg64775_00.Data[0] & 0xC0) == 0x40)
{
g_CanSwith.EngMIL1 = 1;
}
......@@ -219,6 +247,16 @@ void App_ReceiveCanMsg(void)
g_CanSwith.EngMIL1 = 0;
}
//Engine Oil Pressure Low Lamp "Engine Oil Pressure Low Lamp Command 机油压力低灯" Intel 1 12 2
if ((g_canMsg64775_00.Data[1] & 0x30) == 0x10)
{
g_CanSwith.OilLamp1 = 1;
}
else
{
g_CanSwith.OilLamp1 = 0;
}
g_canMsg64775_00.ProceF = EMPOTY;
}
......@@ -275,9 +313,9 @@ void App_ReceiveCanMsg(void)
//ECM_EFL/P1 0x18FEEF00 65263 500 8
if (g_canMsg65263.ProceF == MSG_FULL)
{
if ((ConfigItem.EngConfig == 2) || (ConfigItem.EngConfig == 3))
if (ConfigItem.EngConfig == 0x00)
{
if (g_canMsg65263.Data[3] < P_60kpa)
if (g_canMsg65263.Data[3] < P_55kpa)
{
g_CanSwith.OilLamp = 1;
}
......@@ -286,29 +324,7 @@ void App_ReceiveCanMsg(void)
g_CanSwith.OilLamp = 0;
}
}
else if (ConfigItem.EngConfig == 4)
{
if (g_canMsg65263.Data[3] < P_68kpa)
{
g_CanSwith.OilLamp = 1;
}
else if (g_canMsg65263.Data[3] > P_88kpa)
{
g_CanSwith.OilLamp = 0;
}
}
else if (ConfigItem.EngConfig == 5)
{
if (g_canMsg65263.Data[3] < P_80kpa)
{
g_CanSwith.OilLamp = 1;
}
else if (g_canMsg65263.Data[3] > P_100kpa)
{
g_CanSwith.OilLamp = 0;
}
}
else if ((ConfigItem.EngConfig == 9) || (ConfigItem.EngConfig == 10)) //后加的2020/05/11
else if (ConfigItem.EngConfig == 0x01)
{
if (g_canMsg65263.Data[3] < P_60kpa)
{
......@@ -476,7 +492,16 @@ void App_ReceiveCanMsg(void)
//ABS_EBC1 0x18F0010B 61441 100 8
if (g_canMsg61441.ProceF == MSG_FULL)
{
//ABS
//ABS 1
if ((g_canMsg61441.Data[0] & 0x30) == 0x10)
{
g_CanSwith.ABSLamp1 = 1;
}
else
{
g_CanSwith.ABSLamp1 = 0;
}
//ABS 0
if ((g_canMsg61441.Data[5] & 0x30) == 0x10)
{
g_CanSwith.ABSLamp = 1;
......@@ -485,6 +510,7 @@ void App_ReceiveCanMsg(void)
{
g_CanSwith.ABSLamp = 0;
}
/*
//ASR
if ((g_canMsg61441.Data[5] & 0xC0) == 0x40)
{
......@@ -494,7 +520,7 @@ void App_ReceiveCanMsg(void)
{
g_CanSwith.ASR = 0;
}
*/
g_canMsg61441.ProceF = EMPOTY;
}
......@@ -735,5 +761,4 @@ void App_K30ReceiveCanMsg(void)
g_canMsg60439.ProceF = EMPOTY;
}
}
......@@ -481,116 +481,120 @@ void Api_ClockGenerate(void)
{
g_LED.pParkTime = null;
}
/*
//EBD-pin5
if(pBrakeIn == LOW)
//机油压力-
if (LINE_IN_OILn == LOW)
{
if(g_LED.pBrakeTime < T_0_5s)
if (g_LED.pOilTime < T_0_5s)
{
g_LED.pBrakeTime ++;
g_LED.pOilTime++;
}
}
else
{
g_LED.pBrakeTime = null;
g_LED.pOilTime = null;
}
//ABS
if(pABSIn == LOW)
//机油压力-TFT
if (((LINE_IN_OILn == LOW) && (ConfigItem.EngConfig == 3)) ||
((g_CanSwith.OilLamp) && ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))) ||
((g_CanSwith.OilLamp1) && (ConfigItem.EngConfig == 2)))
{
if(g_LED.ABSFaultTimes < T_0_5s)
if (g_revMeter.CurBoardVal > 300)
{
g_LED.ABSFaultTimes ++;
if (g_LED.pTFTOilTime < T_15_0s)
{
g_LED.pTFTOilTime++;
}
}
else
{
g_LED.pTFTOilTime = 0;
}
}
else
{
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
g_LED.pTFTOilTime = null;
}
//制动蹄片磨损+
if (LINE_IN_HOOVES == HIGH)
{
if(g_LED.pSafeBelt1Time < T_0_5s)
if (g_LED.pBrakeShoeTime < T_0_5s)
{
g_LED.pSafeBelt1Time ++;
g_LED.pBrakeShoeTime++;
}
}
else
{
g_LED.pSafeBelt1Time = null;
g_LED.pBrakeShoeTime = null;
}
//机油压力-
if(pOilIn == LOW)
//取力器-
if (LINE_IN_Power_takeoff == HIGH)
{
if(g_LED.pOilTime < T_0_5s)
if (g_LED.pPowerTakeoffTime < T_0_5s)
{
g_LED.pOilTime ++;
g_LED.pPowerTakeoffTime++;
}
}
else
{
g_LED.pOilTime = null;
g_LED.pPowerTakeoffTime = null;
}
//机油压力-TFT
if(((pOilIn == LOW) && ((ConfigItem.EngConfig == 1)||(ConfigItem.EngConfig == 11)||(ConfigItem.EngConfig == 12)))||
((g_CanSwith.OilLamp) && (((ConfigItem.EngConfig >= 2) && (ConfigItem.EngConfig <= 5))||(ConfigItem.EngConfig == 9)||(ConfigItem.EngConfig == 10))))
/*
//EBD-pin5
if(pBrakeIn == LOW)
{
if(g_revMeter.CurBoardVal > 300)
{
if(g_LED.pTFTOilTime < T_15_0s)
{
g_LED.pTFTOilTime ++;
}
}
else
if(g_LED.pBrakeTime < T_0_5s)
{
g_LED.pTFTOilTime = 0;
g_LED.pBrakeTime ++;
}
}
else
{
g_LED.pTFTOilTime = null;
g_LED.pBrakeTime = null;
}
//排气制动+
if(pExhaustBrakIn == HIGH)
//ABS
if(pABSIn == LOW)
{
if(g_LED.pExhaustBrakTime < T_0_5s)
if(g_LED.ABSFaultTimes < T_0_5s)
{
g_LED.pExhaustBrakTime ++;
g_LED.ABSFaultTimes ++;
}
}
else
{
g_LED.pExhaustBrakTime = null;
}
//制动蹄片磨损+
if(pBrakeShoeIn == HIGH)
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
{
if(g_LED.pBrakeShoeTime < T_0_5s)
if(g_LED.pSafeBelt1Time < T_0_5s)
{
g_LED.pBrakeShoeTime ++;
g_LED.pSafeBelt1Time ++;
}
}
else
{
g_LED.pBrakeShoeTime = null;
g_LED.pSafeBelt1Time = null;
}
//取力器-
if(pPTOIn == HIGH)
//排气制动+
if(pExhaustBrakIn == HIGH)
{
if(g_LED.pPowerTakeoffTime < T_0_5s)
if(g_LED.pExhaustBrakTime < T_0_5s)
{
g_LED.pPowerTakeoffTime ++;
g_LED.pExhaustBrakTime ++;
}
}
else
{
g_LED.pPowerTakeoffTime = null;
g_LED.pExhaustBrakTime = null;
}
//驾驶室锁止-
if(pCabLockIn == LOW)
{
......
......@@ -157,7 +157,9 @@ typedef struct
INT8U DPF_Red : 1;
INT8U ECO : 1;
INT8U CanPowerOver : 1;
INT8U Reserve1 : 3;
INT8U ABSLamp1 : 1;
INT8U OilLamp1 : 1;
INT8U Reserve1 : 1;
INT8U EngFailure4 : 1; //EPC1
INT8U Hazard_Lights : 1; //危险灯
......@@ -853,6 +855,7 @@ typedef struct
INT8U OverSpdConfig;
INT8U LDWSConfig;
INT8U EngConfig;
INT8U BrakeShoeConfig;
} _Config;
typedef struct
......
......@@ -5,8 +5,7 @@
* Author: QTC
*/
#define GLOBALS_APP_System
#define GLOBALS_APP_System
#include "defines.h"
#include "g_includes.h"
#include "app_Service.h"
......@@ -21,309 +20,309 @@
--------------------------------------------------------------------------*/
void App_Paramer_Init(void)
{
INT8U i;
INT8U i;
//-- 主界面初始化 --//
if((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 1;//气压 + adblue
}
else if((ConfigItem.GasConfig == 0) &&((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 2;//adblue
}
else if((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig != 0 ) && (ConfigItem.AdblueConfig != 1)))
{
g_Style = 3;//气压
}
else
{
g_Style = 0;//只有"油耗"
}
if(g_Style == 1)
{
//气压 + adblue
if(bCurMenuIDX>=_MN_DSP_SCREEN1_1)//记住上次KL15位置
{
bCurMenuIDX = _MN_DSP_SCREEN1;
bNextMenuIDX = _MN_DSP_SCREEN1;
}
bMenuSwFlag = 1;
}
else
{
//气压/adblue
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;
}
bMenuSwFlag = 1;
}
//-- 版本信息 --//
SetMeuMsg.PartsNumber = 3820100;
SetMeuMsg.PartsNumber1 = 6060;
SetMeuMsg.HardwareVersion = 3;
SetMeuMsg.SoftWareVersion = 314;
//修正因子
if(ConfigItem.EngConfig == 0)
{
ConfigItem.FuelCosumConfig = 6;//0.695L
}
else if(ConfigItem.EngConfig == 1)
{
ConfigItem.FuelCosumConfig = 6;//0.66L
}
else if(ConfigItem.EngConfig == 2)
{
ConfigItem.FuelCosumConfig = 7;//0.7975L
}
else if(ConfigItem.EngConfig == 3)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
}
else if(ConfigItem.EngConfig == 4)
{
ConfigItem.FuelCosumConfig = 10;//1.055L
}
else if(ConfigItem.EngConfig == 5)
{
ConfigItem.FuelCosumConfig = 10;//1.04L
}
else if(ConfigItem.EngConfig == 9)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
}
else if(ConfigItem.EngConfig == 10)
{
ConfigItem.FuelCosumConfig = 7;//0.7975L
}
else if(ConfigItem.EngConfig == 11)
{
ConfigItem.FuelCosumConfig = 6;//0.66L
}
else if(ConfigItem.EngConfig == 12)
{
ConfigItem.FuelCosumConfig = 7;//0.765L
}
else
{
ConfigItem.FuelCosumConfig = 7;//default: 0.7975L
}
//-- Can --//
//Enable_signal(g_canClock.signal.Exist65310); //安全气囊 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist64775_00); //OBD1 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65226ECM);//OBD2 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65226DCU);//OBD3 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65268); //TPMS系统故障 (掉线点亮)
//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.ID65226CnDCU = 500 + T_Can3_5s;//T,1000ms
//g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s
g_CanSwith.VDCFullyOpert = 1;
g_CanSwith.VDCLampStatus = 0;
g_canClock.ID65110Start_00Cn = 0;
g_canClock.ID65110Start_3DCn = 0;
//-- led --//
g_LED.pMILOffTime1 = T_3_5s;
g_LED.pMILOffTime2 = T_3_5s;
g_LED.pMILOffTime3 = T_3_5s;
//-- Cruise --//
bCruiseClrScreen1=0;
bCruiseClrScreen=1;
g_ClearCruise = 1;
bCruiseSpeedLast = 0xffff;
g_sysFlag.Bits.BeepProcEn = Enable;
CheckStep = 0;
EcuDuty = 0xffffffff;
//-- 诊断 --//
DTC_OBDErrFlag = Disable;
DTC_EPCErrFlag = Disable;
DTC_ABSErrFlag = Disable;
DTC_AirBagFlag = Disable;
DTC_TPMSErrFlag = Disable;
DTC_SafebeltFlag = Disable;
DTC_BrakeErrFlag = Disable;
EELoadFlag.bits.bit0 = Disable;
g_EEaccKmClrStep = Disable;
g_sysFlag.Bits.EEAccSaveState = Disable;
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)
{
Enable_signal(g_sysFlag.Bits.CanWakeUp);
}
//-- Meter --//
g_Init.InitFuelTime = null;
g_Init.InitTempTime = null;
g_Init.InitGas1Time = null;
g_Init.InitGas2Time = null;
g_Init.InitAdblueTime = null;
Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.AccKmValid);
Enable_signal(g_sysFlag.Bits.BeepProcEn);
Disable_signal(g_sysFlag.Bits.TempMeterInit);
Enable_signal(g_sysFlag.Bits.Gas1MeterInit);
Enable_signal(g_sysFlag.Bits.Gas2MeterInit);
Enable_signal(g_sysFlag.Bits.AdbuleMeterInit);
Disable_signal(g_sysFlag.Bits.AdjEnable);
Disable_signal(g_sysFlag.Bits.ClearODO); //2020-10-08 改功能
//-- Motor --//
g_vehMeter.Dir = keep_local;
g_vehMeter.DestPosition = null;
g_vehMeter.CurPosition = null;
g_vehMeter.CurBoardVal = null;
g_vehMeter.OldBoardVal = null;
g_vehMeter.MoveEn = Disable;
g_revMeter.Dir = keep_local;
g_revMeter.DestPosition = null;
g_revMeter.CurPosition = null;
g_revMeter.CurBoardVal = null;
g_revMeter.MoveEn = Disable;
g_tempMeter.Dir = keep_local;
g_tempMeter.DestPosition = null;
g_tempMeter.CurPosition = null;
g_tempMeter.CurBoardVal = null;
g_tempMeter.MoveEn = Disable;
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_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_adblueMeter.Dir = keep_local;
g_adblueMeter.DestPosition = null;
g_adblueMeter.CurPosition = null;
g_adblueMeter.CurBoardVal = null;
g_adblueMeter.MoveEn = Disable;
g_adblueMeter.DispPosition = null ;
//-- Start --//
g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s;
g_Init.InitLogoTime = null;
g_runStep = SYS_INIT_TASK;
g_accTime = null;
g_baseTime = null;
g_accVeh = null;
g_accKmClrStep = null;
ODO_Updeta;
Trip_Updeta;
InstFuel_Updeta ;
AveFuel_Updeta;
DirKm_Updeta ;
Gas1_Updeta;
Gas2_Updeta;
Adblue_Updeta;
Time_Updeta;
bUpDataGears = 2;
bOldGears = bUpDataGears + 1;
Enable_signal(g_sysFlag.Bits.LowModeInit);
//-- alarm --//
for(i = 0; i < TotalPicWarn; i++)
{
bDSTable[i] = 0;
}
bDSTableShowTime[PicDrSafeBelt]=0;
bDSTableShowTime[PicExHaustBrake]=0;
bDSTableShowTime[PicPowerTakeoff]=0;
bDSTableShowTime[PicOverSpeed]=0;
bCurDsPos = 255;
bLcdDsCnt = 0;
//-- Beep --//
for(i = 0; i < 21; i++)
//-- 主界面初始化 --//
if ((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 1; //气压 + adblue
}
else if ((ConfigItem.GasConfig == 0) && ((ConfigItem.AdblueConfig == 0) || (ConfigItem.AdblueConfig == 1)))
{
g_Style = 2; //adblue
}
else if ((ConfigItem.GasConfig == 1) && ((ConfigItem.AdblueConfig != 0) && (ConfigItem.AdblueConfig != 1)))
{
g_Style = 3; //气压
}
else
{
g_Style = 0; //只有"油耗"
}
if (g_Style == 1)
{
//气压 + adblue
if (bCurMenuIDX >= _MN_DSP_SCREEN1_1) //记住上次KL15位置
{
g_Beep[i].Prio = DisAlr;
g_Beep[i].OnTime = null;
g_Beep[i].OffTime = null;
g_Beep[i].BeepTime = null;
g_Beep[i].BeepCn = null;
g_Beep[i].BeepOK = null;
g_Beep[i].BeepInit = null;
g_Beep[i].CurBeepCn = null;
bCurMenuIDX = _MN_DSP_SCREEN1;
bNextMenuIDX = _MN_DSP_SCREEN1;
}
g_pBeep->BeepTime = null;
Enable_signal(g_sysFlag.Bits.BeepProcEn);
g_nopBeep.Prio = DisAlr;
g_nopBeep.OnTime = null;
g_nopBeep.OffTime = null;
g_nopBeep.BeepTime = null;
g_nopBeep.OnceFlag = null;
g_nopBeep.BeepOK = null;
g_nopBeep.BeepCn = null;
g_nopBeep.CurBeepCn = null;
g_pBeep = &g_nopBeep;
//-- Key --//
RotateKeyMenu.Rotary1Old = pKeyRIn;
RotateKeyMenu.RotateState = 255;
bOldMenuIDX = 0;
//-- FuelEco --//
g_fuelEco.VehNullTime = 0;
//if(g_fuelEco.KeyOffTime > T_2_0hour)
if(g_fuelEco.KeyOffTime > 14400)
bMenuSwFlag = 1;
}
else
{
//气压/adblue
if ((bCurMenuIDX != _MN_DSP_SCREEN1_1) && (bCurMenuIDX != _MN_DSP_SCREEN3_1) && (bCurMenuIDX != _MN_DSP_SCREEN2_1)) //记住上次KL15位置
{
g_fuelEco.SRFCTime = null;
g_fuelEco.FuelSum1 = null;
g_fuelEco.Dis100Km1 = null;
g_fuelEco.DispSRFC = null;
g_fuelEco.CalSRFC = null;
InstFuel_Updeta;
bCurMenuIDX = _MN_DSP_SCREEN1_1;
bNextMenuIDX = _MN_DSP_SCREEN1_1;
}
g_fuelEco.KeyOffTime = null;
//-- Other --//
g_Clock.CoolLevelNTimes = 0;
g_Clock.CoolLevelYTimes = 0;
g_Clock.CoolLevelYTimes1 = 0;
g_CanSwith.TpmsDrop = 0;
g_Init.InitBeepTime = 0;
bUpDataFlag = 1;
ClrAveFuel1 = 1;
ClrAveFuel = 1;
g_FuelAlarm = Disable;
bSendFlag=0;
APPSendMsgInit=0;
g_30LOGOFlag = 0;
WriteleFlag2E = 0;
g_CanSwith.OldDriverBelt = 0;
g_CanSwith.OldPsngrBelt = 0;
g_SetMenuState = 0;
Gas_Timer = 0;
bMenuSwFlag = 1;
}
//-- 版本信息 --//
SetMeuMsg.PartsNumber = 3820100;
SetMeuMsg.PartsNumber1 = 6060;
SetMeuMsg.HardwareVersion = 3;
SetMeuMsg.SoftWareVersion = 314;
//修正因子
if (ConfigItem.EngConfig == 0)
{
ConfigItem.FuelCosumConfig = 6; //0.695L
}
else if (ConfigItem.EngConfig == 1)
{
ConfigItem.FuelCosumConfig = 6; //0.66L
}
else if (ConfigItem.EngConfig == 2)
{
ConfigItem.FuelCosumConfig = 7; //0.7975L
}
else if (ConfigItem.EngConfig == 3)
{
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else if (ConfigItem.EngConfig == 4)
{
ConfigItem.FuelCosumConfig = 10; //1.055L
}
else if (ConfigItem.EngConfig == 5)
{
ConfigItem.FuelCosumConfig = 10; //1.04L
}
else if (ConfigItem.EngConfig == 9)
{
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else if (ConfigItem.EngConfig == 10)
{
ConfigItem.FuelCosumConfig = 7; //0.7975L
}
else if (ConfigItem.EngConfig == 11)
{
ConfigItem.FuelCosumConfig = 6; //0.66L
}
else if (ConfigItem.EngConfig == 12)
{
ConfigItem.FuelCosumConfig = 7; //0.765L
}
else
{
ConfigItem.FuelCosumConfig = 7; //default: 0.7975L
}
//-- Can --//
//Enable_signal(g_canClock.signal.Exist65310); //安全气囊 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist64775_00); //OBD1 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65226ECM);//OBD2 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65226DCU);//OBD3 (掉线点亮)
//Enable_signal(g_canClock.signal.Exist65268); //TPMS系统故障 (掉线点亮)
//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.ID65226CnDCU = 500 + T_Can3_5s;//T,1000ms
//g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s
g_CanSwith.VDCFullyOpert = 1;
g_CanSwith.VDCLampStatus = 0;
g_canClock.ID65110Start_00Cn = 0;
g_canClock.ID65110Start_3DCn = 0;
//-- led --//
g_LED.pMILOffTime1 = T_3_5s;
g_LED.pMILOffTime2 = T_3_5s;
g_LED.pMILOffTime3 = T_3_5s;
//-- Cruise --//
bCruiseClrScreen1 = 0;
bCruiseClrScreen = 1;
g_ClearCruise = 1;
bCruiseSpeedLast = 0xffff;
g_sysFlag.Bits.BeepProcEn = Enable;
CheckStep = 0;
EcuDuty = 0xffffffff;
//-- 诊断 --//
DTC_OBDErrFlag = Disable;
DTC_EPCErrFlag = Disable;
DTC_ABSErrFlag = Disable;
DTC_AirBagFlag = Disable;
DTC_TPMSErrFlag = Disable;
DTC_SafebeltFlag = Disable;
DTC_BrakeErrFlag = Disable;
EELoadFlag.bits.bit0 = Disable;
g_EEaccKmClrStep = Disable;
g_sysFlag.Bits.EEAccSaveState = Disable;
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)
{
Enable_signal(g_sysFlag.Bits.CanWakeUp);
}
//-- Meter --//
g_Init.InitFuelTime = null;
g_Init.InitTempTime = null;
g_Init.InitGas1Time = null;
g_Init.InitGas2Time = null;
g_Init.InitAdblueTime = null;
Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.AccKmValid);
Enable_signal(g_sysFlag.Bits.BeepProcEn);
Disable_signal(g_sysFlag.Bits.TempMeterInit);
Enable_signal(g_sysFlag.Bits.Gas1MeterInit);
Enable_signal(g_sysFlag.Bits.Gas2MeterInit);
Enable_signal(g_sysFlag.Bits.AdbuleMeterInit);
Disable_signal(g_sysFlag.Bits.AdjEnable);
Disable_signal(g_sysFlag.Bits.ClearODO); //2020-10-08 改功能
//-- Motor --//
g_vehMeter.Dir = keep_local;
g_vehMeter.DestPosition = null;
g_vehMeter.CurPosition = null;
g_vehMeter.CurBoardVal = null;
g_vehMeter.OldBoardVal = null;
g_vehMeter.MoveEn = Disable;
g_revMeter.Dir = keep_local;
g_revMeter.DestPosition = null;
g_revMeter.CurPosition = null;
g_revMeter.CurBoardVal = null;
g_revMeter.MoveEn = Disable;
g_tempMeter.Dir = keep_local;
g_tempMeter.DestPosition = null;
g_tempMeter.CurPosition = null;
g_tempMeter.CurBoardVal = null;
g_tempMeter.MoveEn = Disable;
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_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_adblueMeter.Dir = keep_local;
g_adblueMeter.DestPosition = null;
g_adblueMeter.CurPosition = null;
g_adblueMeter.CurBoardVal = null;
g_adblueMeter.MoveEn = Disable;
g_adblueMeter.DispPosition = null;
//-- Start --//
g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s;
g_Init.InitLogoTime = null;
g_runStep = SYS_INIT_TASK;
g_accTime = null;
g_baseTime = null;
g_accVeh = null;
g_accKmClrStep = null;
ODO_Updeta;
Trip_Updeta;
InstFuel_Updeta;
AveFuel_Updeta;
DirKm_Updeta;
Gas1_Updeta;
Gas2_Updeta;
Adblue_Updeta;
Time_Updeta;
bUpDataGears = 2;
bOldGears = bUpDataGears + 1;
Enable_signal(g_sysFlag.Bits.LowModeInit);
//-- alarm --//
for (i = 0; i < TotalPicWarn; i++)
{
bDSTable[i] = 0;
}
bDSTableShowTime[PicDrSafeBelt] = 0;
bDSTableShowTime[PicExHaustBrake] = 0;
bDSTableShowTime[PicPowerTakeoff] = 0;
bDSTableShowTime[PicOverSpeed] = 0;
bCurDsPos = 255;
bLcdDsCnt = 0;
//-- Beep --//
for (i = 0; i < 21; i++)
{
g_Beep[i].Prio = DisAlr;
g_Beep[i].OnTime = null;
g_Beep[i].OffTime = null;
g_Beep[i].BeepTime = null;
g_Beep[i].BeepCn = null;
g_Beep[i].BeepOK = null;
g_Beep[i].BeepInit = null;
g_Beep[i].CurBeepCn = null;
}
g_pBeep->BeepTime = null;
Enable_signal(g_sysFlag.Bits.BeepProcEn);
g_nopBeep.Prio = DisAlr;
g_nopBeep.OnTime = null;
g_nopBeep.OffTime = null;
g_nopBeep.BeepTime = null;
g_nopBeep.OnceFlag = null;
g_nopBeep.BeepOK = null;
g_nopBeep.BeepCn = null;
g_nopBeep.CurBeepCn = null;
g_pBeep = &g_nopBeep;
//-- Key --//
RotateKeyMenu.Rotary1Old = pKeyRIn;
RotateKeyMenu.RotateState = 255;
bOldMenuIDX = 0;
//-- FuelEco --//
g_fuelEco.VehNullTime = 0;
//if(g_fuelEco.KeyOffTime > T_2_0hour)
if (g_fuelEco.KeyOffTime > 14400)
{
g_fuelEco.SRFCTime = null;
g_fuelEco.FuelSum1 = null;
g_fuelEco.Dis100Km1 = null;
g_fuelEco.DispSRFC = null;
g_fuelEco.CalSRFC = null;
InstFuel_Updeta;
}
g_fuelEco.KeyOffTime = null;
//-- Other --//
g_Clock.CoolLevelNTimes = 0;
g_Clock.CoolLevelYTimes = 0;
g_Clock.CoolLevelYTimes1 = 0;
g_CanSwith.TpmsDrop = 0;
g_Init.InitBeepTime = 0;
bUpDataFlag = 1;
ClrAveFuel1 = 1;
ClrAveFuel = 1;
g_FuelAlarm = Disable;
bSendFlag = 0;
APPSendMsgInit = 0;
g_30LOGOFlag = 0;
WriteleFlag2E = 0;
g_CanSwith.OldDriverBelt = 0;
g_CanSwith.OldPsngrBelt = 0;
g_SetMenuState = 0;
Gas_Timer = 0;
}
/*-------------------------------------------------------------------------
* Function Name : App_State_OFF
......@@ -335,161 +334,164 @@ void App_Paramer_Init(void)
--------------------------------------------------------------------------*/
void App_State_OFF(void)
{
INT8U i;
//-- Meter --//
g_fuelMeter.DispPosition = 0;
g_fuelMeter.CurBoardVal = 1;
g_vehMeter.BoardVal = null;
g_vehMeter.CurBoardVal = null;
g_vehMeter.DestPosition = null;
g_revMeter.CurBoardVal = null;
g_revMeter.DestPosition = null;
g_tempMeter.CurBoardVal = null;
g_tempMeter.DestPosition = null;
g_gas1Meter.CurBoardVal = null;
g_gas1Meter.DestPosition = null;
g_gas2Meter.CurBoardVal = null;
g_gas2Meter.DestPosition = null;
//-- Can Clear All --//
g_CanSwith.CabLock = 0;
g_CanSwith.VacuumCylinder = 0;
g_CanSwith.OilLamp = 0;
g_CanSwith.ExhaustBrake = 0;
g_CanSwith.DriverBelt = 0;
g_CanSwith.SCR_Y = 0;
g_CanSwith.SCR_R = 0;
g_CanSwith.ASR = 0;
g_CanSwith.RearDefogger = 0;
g_CanSwith.HillHolder = 0;
g_CanSwith.VDCLampStatus = 0;
g_CanSwith.OutFlashFlag = 0;
g_CanSwith.ESPoff = 0;
g_CanSwith.DPF = 0;
g_CanSwith.InhibiteDPF = 0; //2020/05/12
g_CanSwith.DpfHiTemp = 0;
g_CanSwith.PreHeat = 0;
g_CanSwith.EngMIL1 = 0;
g_CanSwith.EngMIL2 = 0;
g_CanSwith.EngMIL3 = 0;
g_CanSwith.EngFailure1 = 0;
g_CanSwith.EngFailure2 = 0;
g_CanSwith.EngFailure3 = 0;
g_CanSwith.EngFailure4 = 0;
g_CanSwith.STOP1 = 0;
g_CanSwith.STOP2 = 0;
g_CanSwith.VDCFullyOpert = 1;
g_CanSwith.VDCLampStatus = 0;
g_CanSwith.WIF = 0;
g_CanSwith.DriverWarn = 0;
g_CanSwith.ParkErr = 0;
g_CanSwith.AutoHoldAct = 0;
g_CanSwith.AutoHoldWork = 0;
g_CanSwith.ECO = 0;
g_CanSwith.CanPowerOver = 0;
g_CanSwith.DPF_Red = 0; //2020/08/04
//-- Time Clr --//
g_LED.pABESTime = 0;
g_LED.CheckLightsTime = 0;
g_LED.pStartTime = 0;
g_LED.pOverSpeedTime = 0;
g_LED.BrakeSysFaultTimes = 0;
g_LED.ABSFaultTimes = 0;
g_LED.EpsFailedTimes = 0;
g_LED.CalibratedStTimes = 0;
g_LED.pBrakeTime = null;
g_LED.pParkTime = null;
g_LED.pBrakeABSTime = null;
g_LED.pSafeBelt1Time = null;
g_LED.pWIFTime = null;
g_LED.pRTime = null;
g_LED.pNTime = null;
g_LED.pMILOnTime1 = null;
g_LED.pMILOnTime2 = null;
g_LED.pMILOnTime3 = null;
g_LED.pMILOffTime1 = null;
g_LED.pMILOffTime2 = null;
g_LED.pMILOffTime3 = null;
g_LED.pOilTime = null;
g_LED.pTFTOilTime = null;
g_LED.pMirrDefostTime = null;
g_LED.pHillHolderTime = null;
g_LED.pCabLockTime = null;
g_LED.pExhaustBrakTime = null;
g_LED.pBrakeShoeTime = null;
g_LED.pAirFilterTime = null;
g_LED.pPowerTakeoffTime = null;
g_LED.pDiffLockTime = null;//关充放电指示灯
g_CanSwith.LDWSstate = null;
g_CanSwith.AmberState_E8 = null;
g_CanSwith.LDWScloseLCD = null;
g_CanSwith.LDWSopenLCD = null;
g_CanSwith.AmberState_2A = null;
g_CanSwith.TpmsFault = null;
g_CanSwith.TpmsLowBat = null;
g_CanSwith.TempThreshold = null;
g_CanSwith.PressThreshold = null;
//-- Led OFF--//
//BD83790B &= ~BD8379_D10;//off-排辅开关
//BD83790B &= ~BD8379_D11;//off-制动蹄片磨损
//BD83790B &= ~BD8379_D0;//off-电子驻车故障/临时停车故障
//BD83790B &= ~BD8379_D1;//off-临时停车开启/工作
//DB8379_WriteData(ON);//Do Led off
//-- Beep --//
g_Init.InitBeepTime = T_3_0s;
RadarBuzzerFre1 = 0;
RadarBuzzerFlag = 0;
bUpDataGears = 2;
//-- off清队列 --//
for(i=0;i<TotalPicWarn;i++)
{
_FEED_COP();
bDSTable[i]=0;
}
for(i=0;i<TotalPicWarn;i++)
{
_FEED_COP();
wDS_LcdQueue[i]=0;
}
for(i=0;i<TotalPicWarn;i++)
{
_FEED_COP();
bDSTableShowTime[i]=0;
}
bCurDsPos = 255;
bLcdDsCnt = 0;
g_CanSwith.ClrScreenDoor = 1;
//-- Sleep_Flag --//
Disable_signal(g_SleepInfo.sleepOut);
Enable_signal(g_sysFlag.Bits.OffClearWin);
Enable_signal(g_sysFlag.Bits.OffDorDisClrWin);
//-- DTC --//
DTC_OBDErrFlag = Disable;
DTC_EPCErrFlag = Disable;
DTC_ABSErrFlag = Disable;
DTC_AirBagFlag = Disable;
DTC_TPMSErrFlag = Disable;
DTC_SafebeltFlag = Disable;
DTC_BrakeErrFlag = Disable;
//-- Other --//
g_accTime = null;
EcuDuty = 0xffffffff;
RadarBuzzerFlag = 0;
g_30LOGOFlag=0;
Enable_signal(g_sysFlag.Bits.LowModeInit);
g_validFlag.Bits.BD8379Init=Enable;
g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s;
INT8U i;
//-- Meter --//
g_fuelMeter.DispPosition = 0;
g_fuelMeter.CurBoardVal = 1;
g_vehMeter.BoardVal = null;
g_vehMeter.CurBoardVal = null;
g_vehMeter.DestPosition = null;
g_revMeter.CurBoardVal = null;
g_revMeter.DestPosition = null;
g_tempMeter.CurBoardVal = null;
g_tempMeter.DestPosition = null;
g_gas1Meter.CurBoardVal = null;
g_gas1Meter.DestPosition = null;
g_gas2Meter.CurBoardVal = null;
g_gas2Meter.DestPosition = null;
//-- 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;
g_CanSwith.SCR_R = 0;
g_CanSwith.ASR = 0;
g_CanSwith.RearDefogger = 0;
g_CanSwith.HillHolder = 0;
g_CanSwith.VDCLampStatus = 0;
g_CanSwith.OutFlashFlag = 0;
g_CanSwith.ESPoff = 0;
g_CanSwith.DPF = 0;
g_CanSwith.InhibiteDPF = 0; //2020/05/12
g_CanSwith.DpfHiTemp = 0;
g_CanSwith.PreHeat = 0;
g_CanSwith.EngMIL1 = 0;
g_CanSwith.EngMIL2 = 0;
g_CanSwith.EngMIL3 = 0;
g_CanSwith.EngFailure1 = 0;
g_CanSwith.EngFailure2 = 0;
g_CanSwith.EngFailure3 = 0;
g_CanSwith.EngFailure4 = 0;
g_CanSwith.STOP1 = 0;
g_CanSwith.STOP2 = 0;
g_CanSwith.VDCFullyOpert = 1;
g_CanSwith.VDCLampStatus = 0;
g_CanSwith.WIF = 0;
g_CanSwith.DriverWarn = 0;
g_CanSwith.ParkErr = 0;
g_CanSwith.AutoHoldAct = 0;
g_CanSwith.AutoHoldWork = 0;
g_CanSwith.ECO = 0;
g_CanSwith.CanPowerOver = 0;
g_CanSwith.DPF_Red = 0; //2020/08/04
//-- Time Clr --//
g_LED.pABESTime = 0;
g_LED.CheckLightsTime = 0;
g_LED.pStartTime = 0;
g_LED.pOverSpeedTime = 0;
g_LED.BrakeSysFaultTimes = 0;
g_LED.ABSFaultTimes = 0;
g_LED.EpsFailedTimes = 0;
g_LED.CalibratedStTimes = 0;
g_LED.pBrakeTime = null;
g_LED.pParkTime = null;
g_LED.pBrakeABSTime = null;
g_LED.pSafeBelt1Time = null;
g_LED.pWIFTime = null;
g_LED.pRTime = null;
g_LED.pNTime = null;
g_LED.pMILOnTime1 = null;
g_LED.pMILOnTime2 = null;
g_LED.pMILOnTime3 = null;
g_LED.pMILOffTime1 = null;
g_LED.pMILOffTime2 = null;
g_LED.pMILOffTime3 = null;
g_LED.pOilTime = null;
g_LED.pTFTOilTime = null;
g_LED.pMirrDefostTime = null;
g_LED.pHillHolderTime = null;
g_LED.pCabLockTime = null;
g_LED.pExhaustBrakTime = null;
g_LED.pBrakeShoeTime = null;
g_LED.pAirFilterTime = null;
g_LED.pPowerTakeoffTime = null;
g_LED.pDiffLockTime = null; //关充放电指示灯
g_CanSwith.LDWSstate = null;
g_CanSwith.AmberState_E8 = null;
g_CanSwith.LDWScloseLCD = null;
g_CanSwith.LDWSopenLCD = null;
g_CanSwith.AmberState_2A = null;
g_CanSwith.TpmsFault = null;
g_CanSwith.TpmsLowBat = null;
g_CanSwith.TempThreshold = null;
g_CanSwith.PressThreshold = null;
//-- Led OFF--//
//BD83790B &= ~BD8379_D10;//off-排辅开关
//BD83790B &= ~BD8379_D11;//off-制动蹄片磨损
//BD83790B &= ~BD8379_D0;//off-电子驻车故障/临时停车故障
//BD83790B &= ~BD8379_D1;//off-临时停车开启/工作
//DB8379_WriteData(ON);//Do Led off
//-- Beep --//
g_Init.InitBeepTime = T_3_0s;
RadarBuzzerFre1 = 0;
RadarBuzzerFlag = 0;
bUpDataGears = 2;
//-- off清队列 --//
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
bDSTable[i] = 0;
}
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
wDS_LcdQueue[i] = 0;
}
for (i = 0; i < TotalPicWarn; i++)
{
_FEED_COP();
bDSTableShowTime[i] = 0;
}
bCurDsPos = 255;
bLcdDsCnt = 0;
g_CanSwith.ClrScreenDoor = 1;
//-- Sleep_Flag --//
Disable_signal(g_SleepInfo.sleepOut);
Enable_signal(g_sysFlag.Bits.OffClearWin);
Enable_signal(g_sysFlag.Bits.OffDorDisClrWin);
//-- DTC --//
DTC_OBDErrFlag = Disable;
DTC_EPCErrFlag = Disable;
DTC_ABSErrFlag = Disable;
DTC_AirBagFlag = Disable;
DTC_TPMSErrFlag = Disable;
DTC_SafebeltFlag = Disable;
DTC_BrakeErrFlag = Disable;
//-- Other --//
g_accTime = null;
EcuDuty = 0xffffffff;
RadarBuzzerFlag = 0;
g_30LOGOFlag = 0;
Enable_signal(g_sysFlag.Bits.LowModeInit);
g_validFlag.Bits.BD8379Init = Enable;
g_LED.pStartTime = null;
g_LED.pStopTime = T_3_5s;
}
/*-------------------------------------------------------------------------
* Function Name : App_State_OFF_Run
......@@ -513,59 +515,58 @@ void App_State_OFF_Run(void)
--------------------------------------------------------------------------*/
void App_StarUpInfo(void)
{
g_30LOGOFlag = 0;
pSTBOut = LOW;
WriteleFlag2E=0;
Enable_signal(g_validFlag.Bits.OffUpFuelSts);
Enable_signal(g_sysFlag.Bits.NetCtlKeep);
Enable_signal(g_sysFlag.Bits.BeepProcEn);
Api_SetCanTimer(T_8s, (_Clock *)&g_Clock);
Enable_signal(g_sysFlag.Bits.AdbuleMeterInit);
Disable_signal(g_vehMeter.MakeZero);
Disable_signal(g_revMeter.MakeZero);
g_runStep = SYS_INIT_TASK;
g_sysFlag.Bits.CanWakeUp = CanWakeUpEn ;
g_sysFlag.Bits.CanState = CanOFF;
Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.LowModeInit);
g_nopBeep.Prio = DisAlr;
g_nopBeep.OnTime = null;
g_nopBeep.OffTime = null;
g_nopBeep.BeepTime = null;
g_nopBeep.BeepCn = null;
g_nopBeep.CurBeepCn = null;
EcuDuty = 0xffffffff;
SetMeuMsg.BackLightLevel = 4;
if(g_pBeep->Prio != DisAlr)
{
g_pBeep = &g_nopBeep;
}
RotateKeyMenu.Rotary1Old = pKeyRIn;
RotateKeyMenu.RotateState = 255;
g_fuelEco.FuelSum = 0;
g_fuelEco.Dis100Km = 0;
g_fuelEco.FuelSum1 = 0;
g_fuelEco.Dis100Km1 = 0;
g_fuelEco.DispAveFuel=0;
g_fuelEco.DispSRFC=0;
RamShortAccKmA = 0;
SetMeuMsg.Language = 1;
bSendFlag=0;
APPSendMsgInit=0;
//-- Diagnose --//
ECUNum[0] = 0x11;
ECUNum[1] = 0x22;
ECUNum[2] = 0x33;
ECUNum[3] = 0x44;
g_30LOGOFlag = 0;
pSTBOut = LOW;
WriteleFlag2E = 0;
Enable_signal(g_validFlag.Bits.OffUpFuelSts);
Enable_signal(g_sysFlag.Bits.NetCtlKeep);
Enable_signal(g_sysFlag.Bits.BeepProcEn);
Api_SetCanTimer(T_8s, (_Clock *)&g_Clock);
Enable_signal(g_sysFlag.Bits.AdbuleMeterInit);
Disable_signal(g_vehMeter.MakeZero);
Disable_signal(g_revMeter.MakeZero);
g_runStep = SYS_INIT_TASK;
g_sysFlag.Bits.CanWakeUp = CanWakeUpEn;
g_sysFlag.Bits.CanState = CanOFF;
Enable_signal(g_sysFlag.Bits.SysOffEn);
Enable_signal(g_sysFlag.Bits.LowModeInit);
g_nopBeep.Prio = DisAlr;
g_nopBeep.OnTime = null;
g_nopBeep.OffTime = null;
g_nopBeep.BeepTime = null;
g_nopBeep.BeepCn = null;
g_nopBeep.CurBeepCn = null;
EcuDuty = 0xffffffff;
SetMeuMsg.BackLightLevel = 4;
if (g_pBeep->Prio != DisAlr)
{
g_pBeep = &g_nopBeep;
}
RotateKeyMenu.Rotary1Old = pKeyRIn;
RotateKeyMenu.RotateState = 255;
g_fuelEco.FuelSum = 0;
g_fuelEco.Dis100Km = 0;
g_fuelEco.FuelSum1 = 0;
g_fuelEco.Dis100Km1 = 0;
g_fuelEco.DispAveFuel = 0;
g_fuelEco.DispSRFC = 0;
RamShortAccKmA = 0;
SetMeuMsg.Language = 1;
bSendFlag = 0;
APPSendMsgInit = 0;
//-- Diagnose --//
ECUNum[0] = 0x11;
ECUNum[1] = 0x22;
ECUNum[2] = 0x33;
ECUNum[3] = 0x44;
}
/*-------------------------------------------------------------------------
* Function Name : App_StarUpInfo1
......@@ -577,10 +578,10 @@ void App_StarUpInfo(void)
--------------------------------------------------------------------------*/
void App_StarUpInfo1(void)
{
//-- DB8379 --//
BD83790A = 0;
BD83790B = 0;
DB8379_Init();
//-- DB8379 --//
BD83790A = 0;
BD83790B = 0;
DB8379_Init();
}
/*-------------------------------------------------------------------------
* Function Name : App_Load_Data
......@@ -592,215 +593,215 @@ void App_StarUpInfo1(void)
--------------------------------------------------------------------------*/
void App_Load_Data(void)
{
//-- Radio --//
Radio.RevRadio = 2;
Radio.VehC3Radio = 2; //f = 2v
Radio.VehNum = 8;
//-- veh --//
g_vehMeterInfo.bVirtualVal = 8;
g_vehMeterInfo.Resistor[0] = 0;
g_vehMeterInfo.Resistor[1] = 20;
g_vehMeterInfo.Resistor[2] = 40;
g_vehMeterInfo.Resistor[3] = 60;
g_vehMeterInfo.Resistor[4] = 80;
g_vehMeterInfo.Resistor[5] = 100;
g_vehMeterInfo.Resistor[6] = 140;
g_vehMeterInfo.Resistor[7] = 180;
g_vehMeterInfo.DashStep[0] = 0;
g_vehMeterInfo.DashStep[1] = 320;
g_vehMeterInfo.DashStep[2] = 636;
g_vehMeterInfo.DashStep[3] = 960;
g_vehMeterInfo.DashStep[4] = 1284;
g_vehMeterInfo.DashStep[5] = 1596;
g_vehMeterInfo.DashStep[6] = 2244;
g_vehMeterInfo.DashStep[7] = 2880;
//-- Rev --//
g_revMeterInfo.bVirtualVal = 8;
g_revMeterInfo.Resistor[0] = 0;
g_revMeterInfo.Resistor[1] = 500;
g_revMeterInfo.Resistor[2] = 1000;
g_revMeterInfo.Resistor[3] = 1500;
g_revMeterInfo.Resistor[4] = 2000;
g_revMeterInfo.Resistor[5] = 2500;
g_revMeterInfo.Resistor[6] = 3000;
g_revMeterInfo.Resistor[7] = 4000;
g_revMeterInfo.DashStep[0] = 0;
g_revMeterInfo.DashStep[1] = 360;
g_revMeterInfo.DashStep[2] = 720;
g_revMeterInfo.DashStep[3] = 1080;
g_revMeterInfo.DashStep[4] = 1400;
g_revMeterInfo.DashStep[5] = 1800;
g_revMeterInfo.DashStep[6] = 2160;
g_revMeterInfo.DashStep[7] = 2880;
//-- Temp --//
if(ConfigItem.TempConfig == 0)//报警点为100
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 95;
g_tempMeterInfo.Resistor[5] = 97;
g_tempMeterInfo.Resistor[6] = 100;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if(ConfigItem.TempConfig == 1)//报警点为104
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 104;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if(ConfigItem.TempConfig == 2)//报警点为105
{
g_tempMeterInfo.bVirtualVal = 8;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 104;
g_tempMeterInfo.Resistor[7] = 105;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if(ConfigItem.TempConfig == 3)//报警点为110
{
g_tempMeterInfo.bVirtualVal = 8;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 102;
g_tempMeterInfo.Resistor[5] = 105;
g_tempMeterInfo.Resistor[6] = 108;
g_tempMeterInfo.Resistor[7] = 110;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if(ConfigItem.TempConfig == 4)//报警点为120
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 120;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else
{
;
}
//-- gas --//
g_gasMeterInfo.bVirtualVal = 9;
g_gasMeterInfo.Resistor[0] = 0;
g_gasMeterInfo.Resistor[1] = 65; //0.66v
g_gasMeterInfo.Resistor[2] = 83;
g_gasMeterInfo.Resistor[3] = 183;
g_gasMeterInfo.Resistor[4] = 283;
g_gasMeterInfo.Resistor[5] = 327;
g_gasMeterInfo.Resistor[6] = 350;
g_gasMeterInfo.Resistor[7] = 417;
g_gasMeterInfo.Resistor[8] = 450;
g_gasMeterInfo.DashStep[0] = 0;
g_gasMeterInfo.DashStep[1] = 20;
g_gasMeterInfo.DashStep[2] = 40;
g_gasMeterInfo.DashStep[3] = 100;
g_gasMeterInfo.DashStep[4] = 160;
g_gasMeterInfo.DashStep[5] = 180;
g_gasMeterInfo.DashStep[6] = 200;
g_gasMeterInfo.DashStep[7] = 240;
g_gasMeterInfo.DashStep[8] = 260;
//-- adblue --//
g_adblueMeterInfo.bVirtualVal = 8;
g_adblueMeterInfo.Resistor[0] = 0;
g_adblueMeterInfo.Resistor[1] = 50; //5%
g_adblueMeterInfo.Resistor[2] = 104; //10.4%
g_adblueMeterInfo.Resistor[3] = 304;
g_adblueMeterInfo.Resistor[4] = 504;
g_adblueMeterInfo.Resistor[5] = 704;
g_adblueMeterInfo.Resistor[6] = 804;
g_adblueMeterInfo.Resistor[7] = 904;
g_adblueMeterInfo.DashStep[0] = 0;
g_adblueMeterInfo.DashStep[1] = 20;
g_adblueMeterInfo.DashStep[2] = 40;
g_adblueMeterInfo.DashStep[3] = 80;
g_adblueMeterInfo.DashStep[4] = 120;
g_adblueMeterInfo.DashStep[5] = 160;
g_adblueMeterInfo.DashStep[6] = 180;
g_adblueMeterInfo.DashStep[7] = 200;
//
w_Veh = TPM1Clock;
w_Veh1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1];
VehFreLimit = (INT16U)(w_Veh / (w_Veh1 * Radio.VehRadio / 3600) / 4);
//-- Radio --//
Radio.RevRadio = 2;
Radio.VehC3Radio = 2; //f = 2v
Radio.VehNum = 8;
//-- veh --//
g_vehMeterInfo.bVirtualVal = 8;
g_vehMeterInfo.Resistor[0] = 0;
g_vehMeterInfo.Resistor[1] = 20;
g_vehMeterInfo.Resistor[2] = 40;
g_vehMeterInfo.Resistor[3] = 60;
g_vehMeterInfo.Resistor[4] = 80;
g_vehMeterInfo.Resistor[5] = 100;
g_vehMeterInfo.Resistor[6] = 140;
g_vehMeterInfo.Resistor[7] = 180;
g_vehMeterInfo.DashStep[0] = 0;
g_vehMeterInfo.DashStep[1] = 320;
g_vehMeterInfo.DashStep[2] = 636;
g_vehMeterInfo.DashStep[3] = 960;
g_vehMeterInfo.DashStep[4] = 1284;
g_vehMeterInfo.DashStep[5] = 1596;
g_vehMeterInfo.DashStep[6] = 2244;
g_vehMeterInfo.DashStep[7] = 2880;
//-- Rev --//
g_revMeterInfo.bVirtualVal = 8;
g_revMeterInfo.Resistor[0] = 0;
g_revMeterInfo.Resistor[1] = 500;
g_revMeterInfo.Resistor[2] = 1000;
g_revMeterInfo.Resistor[3] = 1500;
g_revMeterInfo.Resistor[4] = 2000;
g_revMeterInfo.Resistor[5] = 2500;
g_revMeterInfo.Resistor[6] = 3000;
g_revMeterInfo.Resistor[7] = 4000;
g_revMeterInfo.DashStep[0] = 0;
g_revMeterInfo.DashStep[1] = 360;
g_revMeterInfo.DashStep[2] = 720;
g_revMeterInfo.DashStep[3] = 1080;
g_revMeterInfo.DashStep[4] = 1400;
g_revMeterInfo.DashStep[5] = 1800;
g_revMeterInfo.DashStep[6] = 2160;
g_revMeterInfo.DashStep[7] = 2880;
//-- Temp --//
if (ConfigItem.TempConfig == 0) //报警点为100
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 95;
g_tempMeterInfo.Resistor[5] = 97;
g_tempMeterInfo.Resistor[6] = 100;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if (ConfigItem.TempConfig == 1) //报警点为105
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 105;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else if (ConfigItem.TempConfig == 2) //报警点为105
{
g_tempMeterInfo.bVirtualVal = 8;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 104;
g_tempMeterInfo.Resistor[7] = 105;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if (ConfigItem.TempConfig == 3) //报警点为110
{
g_tempMeterInfo.bVirtualVal = 8;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 102;
g_tempMeterInfo.Resistor[5] = 105;
g_tempMeterInfo.Resistor[6] = 108;
g_tempMeterInfo.Resistor[7] = 110;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 140;
g_tempMeterInfo.DashStep[7] = 160;
}
else if (ConfigItem.TempConfig == 4) //报警点为120
{
g_tempMeterInfo.bVirtualVal = 7;
g_tempMeterInfo.Resistor[0] = 0;
g_tempMeterInfo.Resistor[1] = 50; //50degC
g_tempMeterInfo.Resistor[2] = 70;
g_tempMeterInfo.Resistor[3] = 80;
g_tempMeterInfo.Resistor[4] = 100;
g_tempMeterInfo.Resistor[5] = 102;
g_tempMeterInfo.Resistor[6] = 120;
g_tempMeterInfo.Resistor[7] = 0;
g_tempMeterInfo.DashStep[0] = 0;
g_tempMeterInfo.DashStep[1] = 20;
g_tempMeterInfo.DashStep[2] = 60;
g_tempMeterInfo.DashStep[3] = 80;
g_tempMeterInfo.DashStep[4] = 100;
g_tempMeterInfo.DashStep[5] = 120;
g_tempMeterInfo.DashStep[6] = 160;
g_tempMeterInfo.DashStep[7] = 0;
}
else
{
;
}
//-- gas --//
g_gasMeterInfo.bVirtualVal = 9;
g_gasMeterInfo.Resistor[0] = 0;
g_gasMeterInfo.Resistor[1] = 65; //0.66v
g_gasMeterInfo.Resistor[2] = 83;
g_gasMeterInfo.Resistor[3] = 183;
g_gasMeterInfo.Resistor[4] = 283;
g_gasMeterInfo.Resistor[5] = 327;
g_gasMeterInfo.Resistor[6] = 350;
g_gasMeterInfo.Resistor[7] = 417;
g_gasMeterInfo.Resistor[8] = 450;
g_gasMeterInfo.DashStep[0] = 0;
g_gasMeterInfo.DashStep[1] = 20;
g_gasMeterInfo.DashStep[2] = 40;
g_gasMeterInfo.DashStep[3] = 100;
g_gasMeterInfo.DashStep[4] = 160;
g_gasMeterInfo.DashStep[5] = 180;
g_gasMeterInfo.DashStep[6] = 200;
g_gasMeterInfo.DashStep[7] = 240;
g_gasMeterInfo.DashStep[8] = 260;
//-- adblue --//
g_adblueMeterInfo.bVirtualVal = 8;
g_adblueMeterInfo.Resistor[0] = 0;
g_adblueMeterInfo.Resistor[1] = 50; //5%
g_adblueMeterInfo.Resistor[2] = 104; //10.4%
g_adblueMeterInfo.Resistor[3] = 304;
g_adblueMeterInfo.Resistor[4] = 504;
g_adblueMeterInfo.Resistor[5] = 704;
g_adblueMeterInfo.Resistor[6] = 804;
g_adblueMeterInfo.Resistor[7] = 904;
g_adblueMeterInfo.DashStep[0] = 0;
g_adblueMeterInfo.DashStep[1] = 20;
g_adblueMeterInfo.DashStep[2] = 40;
g_adblueMeterInfo.DashStep[3] = 80;
g_adblueMeterInfo.DashStep[4] = 120;
g_adblueMeterInfo.DashStep[5] = 160;
g_adblueMeterInfo.DashStep[6] = 180;
g_adblueMeterInfo.DashStep[7] = 200;
//
w_Veh = TPM1Clock;
w_Veh1 = g_vehMeterInfo.Resistor[g_vehMeterInfo.bVirtualVal - 1];
VehFreLimit = (INT16U)(w_Veh / (w_Veh1 * Radio.VehRadio / 3600) / 4);
}
\ No newline at end of file
......@@ -49,13 +49,20 @@ void Gui_KL15LedDisplay(void)
{
//---------直驱指示灯------
//01 取力器工作
if (1)
if (g_LED.pPowerTakeoffTime >= T_0_3s)
{
LED_Power_TakeOFF_Out = LEDON; //on
if (bCurMenuIDX != _MN_SHOW_ERRINFO)
bDSTable[PicPowerTakeoff] |= DS0_MASK;
if ((bDSTableShowTime[PicPowerTakeoff] == T1_5s) && ((bDSTable[PicPowerTakeoff] & DS0_MASK) == DS0_MASK))
bDSTable[PicPowerTakeoff] = 0;
}
else
{
LED_Power_TakeOFF_Out = LEDOFF; //off
bDSTable[PicPowerTakeoff] = 0;
bDSTableShowTime[PicPowerTakeoff] = 0;
}
//08 安全带
......@@ -69,7 +76,7 @@ void Gui_KL15LedDisplay(void)
}
//09 充电状态——指示灯 不受软件控制
//19 发动机排气系统温度高——指示灯
if (1)
if (g_CanSwith.DpfHiTemp == 0x01u)
{
LED_EXCSysHighTemp_OUT = LEDON; //on
}
......@@ -141,14 +148,24 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D1 油含水 15 油水分离
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D1; //on
}
else
{
BD83790A &= ~BD8379_D1; //off
if (g_CanSwith.WIF)
{
BD83790A |= BD8379_D1; //on
bDSTable[PicWIF] |= DS0_MASK;
}
else
{
BD83790A &= ~BD8379_D1; //off
bDSTable[PicWIF] = 0;
}
}
//BD8379_D2 Svs灯 25 发动机保护灯
if (Test_Hyq)
{
......@@ -158,15 +175,36 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D2; //off
}
//BD8379_D3 20 驾驶员警告
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D3; //on
}
else
{
BD83790A &= ~BD8379_D3; //off
if (g_CanSwith.DriverWarn == S_on)
{
BD83790A |= BD8379_D3; //on
}
else if (g_CanSwith.DriverWarn == S_Flash)
{
//Flash
if (g_CanSwith.OutFlashFlag)
{
BD83790A |= BD8379_D3; //on
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
else
{
BD83790A &= ~BD8379_D3; //off
}
}
//BD8379_D4 预留
if (Test_Hyq)
{
......@@ -176,23 +214,137 @@ void Gui_KL15LedDisplay(void)
{
BD83790A &= ~BD8379_D4; //off
}
//BD8379_D5 水温报警灯 5 发动机水温高
if (Test_Hyq)
if (DIDFlag.Bits.DID102CValid == Enable)
{
BD83790A |= BD8379_D5; //on
if (IOCTL_DID102C.FF_Byte == 1)
{
BD83790A |= BD8379_D5; //on
}
else
{
BD83790A &= ~BD8379_D5; //off
}
}
else
{
BD83790A &= ~BD8379_D5; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D5; //on
}
else
{
if ((g_canClock.signal.Exist65262) && (!g_sysFlag.Bits.TempMeterInit) && (CheckStep == 2))
{
if (g_tempMeter.CurPosition >= 160) //8格点亮
{
BD83790A |= BD8379_D5; //on
bDSTable[PicTempHigh] |= DS0_MASK;
}
else
{
if (ConfigItem.TempConfig == 0)
{
if (g_tempMeter.CurPosition <= 133) //解报98degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 1)
{
if (g_tempMeter.CurPosition <= 120) //解报102degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 2)
{
if (g_tempMeter.CurPosition <= 130) //解报103degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 3)
{
if (g_tempMeter.CurPosition <= 140) //解报108degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else if (ConfigItem.TempConfig == 4)
{
if (g_tempMeter.CurPosition <= 155) //解报118degC
{
BD83790A &= ~BD8379_D5; //off
bDSTable[PicTempHigh] = 0;
}
}
else
{
;
}
}
}
else
{
BD83790A &= ~BD8379_D5; //off
}
}
}
//BD8379_D6 24 巡航指示灯
if (Test_Hyq)
//BD8379_D6 24 巡航指示灯 定速巡航
if (DIDFlag.Bits.DID1018Valid == Enable)
{
BD83790A |= BD8379_D6; //on
if (IOCTL_DID1018.FF_Byte == 1)
{
BD83790A |= BD8379_D6; //on
}
else
{
BD83790A &= ~BD8379_D6; //off
}
}
else
{
BD83790A &= ~BD8379_D6; //off
if (g_CanSwith.CruSysAct)
{
BD83790A |= BD8379_D6; //on
}
else
{
BD83790A &= ~BD8379_D6; //off
}
//定速巡航-LCD
if ((g_CanSwith.CruSysAct) &&
(bCruiseSpeedCur >= 30) && (bCruiseSpeedCur <= 250))
{
if (bCruiseSpeedLast != bCruiseSpeedCur)
{
//非故障信息界面-插入显示
if (bCurMenuIDX != _MN_SHOW_ERRINFO)
bDSTable[PicCruise] |= DS0_MASK;
bDSTableShowTime[PicCruise] = 0;
bDSUpdateFlag = 1;
bCruiseSpeedLast = bCruiseSpeedCur;
}
//显示完删除队列-N
if ((bDSTableShowTime[PicCruise] == T1_5s) && ((bDSTable[PicCruise] & DS0_MASK) == DS0_MASK))
bDSTable[PicCruise] = 0;
}
else
{
bCruiseSpeedLast = 0xffff;
g_ClearCruise = 1;
bDSTable[PicCruise] = 0;
}
}
//BD8379_D7 17 EPS故障
if (Test_Hyq)
......@@ -220,16 +372,16 @@ void Gui_KL15LedDisplay(void)
{
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1) || (ConfigItem.ABS_ESCConfig == 2))
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1))
{
BD83790A |= BD8379_D8; //on
}
}
else
{
if ((ConfigItem.ABS_ESCConfig == 0) || (ConfigItem.ABS_ESCConfig == 1) || (ConfigItem.ABS_ESCConfig == 2))
if (ConfigItem.ABS_ESCConfig == 0)
{
//can
//ABS_warn_lamp 0x18F0010B 5 46 2
if (g_CanSwith.ABSLamp == 1u)
{
BD83790A |= BD8379_D8; //on
......@@ -243,6 +395,22 @@ void Gui_KL15LedDisplay(void)
DTC_ABSErrFlag = Disable;
}
}
else if (ConfigItem.ABS_ESCConfig == 1)
{
//ABS_active 0x18F0010B 0 4 2
if (g_CanSwith.ABSLamp1 == 1u)
{
BD83790A |= BD8379_D8; //on
bDSTable[PicABS] |= DS0_MASK;
DTC_ABSErrFlag = Enable;
}
else
{
BD83790A &= ~BD8379_D8; //off
bDSTable[PicABS] = 0;
DTC_ABSErrFlag = Disable;
}
}
else
{
;
......@@ -327,7 +495,7 @@ void Gui_KL15LedDisplay(void)
else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))
{
//if ((g_LED.pMILOffTime1 >= T_2_0s) && (OBDLamp == 0))
if (g_LED.pMILOffTime1 >= T_2_0s)
if (g_LED.pMILOffTime1 >= T_2_0s) //延时熄灭
{
BD83790B &= ~BD8379_D0; //off
DTC_OBDErrFlag = Disable;
......@@ -355,13 +523,34 @@ void Gui_KL15LedDisplay(void)
BD83790B &= ~BD8379_D1; //off
}
//BD8379_D2 预热指示灯 14 发动机预热
if (Test_Hyq)
if (DIDFlag.Bits.DID102AValid == Enable)
{
BD83790B |= BD8379_D2; //on
if (IOCTL_DID102A.FF_Byte == 1)
{
BD83790A |= BD8379_D2; //on
}
else
{
BD83790A &= ~BD8379_D2; //off
}
}
else
{
BD83790B &= ~BD8379_D2; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790A |= BD8379_D2; //on
}
else
{
if (g_CanSwith.PreHeat)
{
BD83790A |= BD8379_D2; //on
}
else
{
BD83790A &= ~BD8379_D2; //off
}
}
}
//BD8379_D3 预留2
if (Test_Hyq)
......@@ -394,29 +583,98 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D6 11 发动机故障
if (Test_Hyq)
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790B |= BD8379_D6; //on
}
else
else if ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1)) //?ó?????????ó????
{
BD83790B &= ~BD8379_D6; //off
if (g_canClock.signal.Exist64775_00)
{
if (g_CanSwith.EngFailure1)
{
BD83790B |= BD8379_D6; //on
bDSTable[PicEPC] |= DS0_MASK;
DTC_EPCErrFlag = Enable;
}
else
{
BD83790B &= ~BD8379_D6; //off
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Disable;
}
}
else //掉线点亮
{
BD83790B |= BD8379_D6; //on
bDSTable[PicEPC] = 0;
DTC_EPCErrFlag = Enable;
}
}
//BD8379_D7 机油报警 3 低油压报警
if (Test_Hyq)
if (DIDFlag.Bits.DID100BValid == Enable)
{
BD83790B |= BD8379_D7; //on
if (IOCTL_DID100B.FF_Byte == 1)
{
BD83790B |= BD8379_D7; //on
}
else
{
BD83790B &= ~BD8379_D7; //off
}
}
else
{
BD83790B &= ~BD8379_D7; //off
if ((g_LED.CheckLightsTime < T_CheckTime) && (g_revMeter.CurBoardVal < 300))
{
BD83790B |= BD8379_D7; //on
}
else
{
if (((g_LED.pOilTime >= T_0_5s) && (ConfigItem.EngConfig == 3)) ||
((g_CanSwith.OilLamp) && ((ConfigItem.EngConfig == 0) || (ConfigItem.EngConfig == 1))) ||
((g_CanSwith.OilLamp1) && (ConfigItem.EngConfig == 2)))
{
BD83790B |= BD8379_D7; //on
}
else
{
BD83790B &= ~BD8379_D7; //off
}
//机油压力低-LCD
if (g_LED.pTFTOilTime > T_10_0s)
{
bDSTable[PicOilLow] |= DS0_MASK;
}
else
{
bDSTable[PicOilLow] = 0;
}
}
}
//BD8379_D8 18 DPF再生(黄色)
if (Test_Hyq)
if (g_CanSwith.DPF || g_CanSwith.DPFf)
{
BD83790B |= BD8379_D8; //on
if (g_CanSwith.DPF)
{
BD83790B |= BD8379_D8; //on
}
else
{
if (g_CanSwith.OutFlashFlag)
{
BD83790B |= BD8379_D8; //on
}
else
{
BD83790B &= ~BD8379_D8; //off
}
}
}
else
{
......@@ -424,7 +682,7 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D9 21 DPF再生(红色)
if (Test_Hyq)
if (g_CanSwith.DPF_Red)
{
BD83790B |= BD8379_D9; //on
}
......@@ -434,15 +692,16 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D10 12 制动蹄片磨损报警
if (Test_Hyq)
if ((g_LED.pBrakeShoeTime >= T_0_3s) && (ConfigItem.BrakeShoeConfig == 0x01))
{
BD83790B |= BD8379_D10; //on
bDSTable[PicBrakePiece] |= DS0_MASK;
}
else
{
BD83790B &= ~BD8379_D10; //off
bDSTable[PicBrakePiece] = 0;
}
//BD8379_D11 门开 门开在30电上
}
/*-------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment