Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MV18
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SCCNJ
MV18
Commits
80ab578f
Commit
80ab578f
authored
Oct 08, 2021
by
hu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加指示灯逻辑
parent
b1ebd45e
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1518 additions
and
1252 deletions
+1518
-1252
api_EEPROM.c
Sources/EEPROM/api_EEPROM.c
+171
-174
FuelProcess.c
Sources/Fuel/FuelProcess.c
+148
-151
System.c
Sources/USER/System.c
+57
-78
app_CAN.c
Sources/app_CAN.c
+6
-6
defines.h
Sources/defines.h
+1
-0
TBDML.ini
TBDML.ini
+1
-1
api_CAN.c
api_Sources/api_CAN.c
+57
-32
api_RTC.c
api_Sources/api_RTC.c
+59
-55
g_VarType.h
app_Headers/g_VarType.h
+4
-1
app_System.c
app_Sources/app_System.c
+724
-723
gui_Led.c
gui_Sources/gui_Led.c
+290
-31
No files found.
Sources/EEPROM/api_EEPROM.c
View file @
80ab578f
#define GLOBALS_API_EE
#include "defines.h"
#include "g_includes.h"
...
...
@@ -18,7 +17,7 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
{
INT8U
b
;
for
(
b
=
0
;
b
<
Nub
;
b
++
)
for
(
b
=
0
;
b
<
Nub
;
b
++
)
{
*
Dp
++
=
*
Sp
++
;
}
...
...
@@ -32,17 +31,17 @@ void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub)
* Return : None
* onther :
--------------------------------------------------------------------------*/
INT8U
Api_CreateCRCCheckSum
(
INT8U
*
p
,
INT8U
Nub
)
INT8U
Api_CreateCRCCheckSum
(
INT8U
*
p
,
INT8U
Nub
)
{
INT8U
bCheckSun
;
INT8U
i
;
bCheckSun
=
null
;
while
(
Nub
--
)
while
(
Nub
--
)
{
bCheckSun
^=
*
p
++
;
for
(
i
=
0
;
i
<
8
;
i
++
)
for
(
i
=
0
;
i
<
8
;
i
++
)
{
if
(
bCheckSun
&
0x01
)
if
(
bCheckSun
&
0x01
)
{
bCheckSun
=
(
bCheckSun
>>
1
)
^
0x8C
;
}
...
...
@@ -50,7 +49,7 @@ INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub)
bCheckSun
>>=
1
;
}
}
return
(
bCheckSun
);
return
(
bCheckSun
);
}
/*-------------------------------------------------------------------------
...
...
@@ -69,13 +68,13 @@ void Api_ReadAccKm(void)
g_AccAddr
.
CurEEAccddr
=
EEACC_START
;
bsp_WDOG_Feed
();
for
(;
g_AccAddr
.
CurEEAccddr
<
EEACC_END
;)
for
(;
g_AccAddr
.
CurEEAccddr
<
EEACC_END
;)
{
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
if
((
check1
!=
g_accKm
.
bCheckSun
)
||
(
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
))
if
((
check1
!=
g_accKm
.
bCheckSun
)
||
(
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
))
{
g_AccAddr
.
CurEEAccddr
+=
Register_Len
;
}
...
...
@@ -85,24 +84,24 @@ void Api_ReadAccKm(void)
}
bsp_WDOG_Feed
();
}
for
(;
g_AccAddr
.
CurEEAccddr
<=
(
EEACC_END
-
Register_Len
);)
for
(;
g_AccAddr
.
CurEEAccddr
<=
(
EEACC_END
-
Register_Len
);)
{
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
g_AccAddr
.
CurEEAccddr
+
Register_Len
,
(
INT8U
*
)
&
g_oldAccKm
,
Register_Len
);
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
g_AccAddr
.
CurEEAccddr
+
Register_Len
,
(
INT8U
*
)
&
g_oldAccKm
,
Register_Len
);
bsp_WDOG_Feed
();
if
((
g_accKm
.
Checkflag
==
CheckFlag
)
&&
(
g_oldAccKm
.
Checkflag
==
CheckFlag
)
&&
\
if
((
g_accKm
.
Checkflag
==
CheckFlag
)
&&
(
g_oldAccKm
.
Checkflag
==
CheckFlag
)
&&
(
g_accKm
.
LongAccKm
<=
10000000
)
&&
(
g_oldAccKm
.
LongAccKm
<=
10000000
))
{
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
check2
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_oldAccKm
,
Register_Len
-
2
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
check2
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_oldAccKm
,
Register_Len
-
2
);
if
((
check1
==
g_accKm
.
bCheckSun
)
&&
(
check2
==
g_oldAccKm
.
bCheckSun
))
if
((
check1
==
g_accKm
.
bCheckSun
)
&&
(
check2
==
g_oldAccKm
.
bCheckSun
))
{
if
(
g_accKm
.
LongAccKm
<=
g_oldAccKm
.
LongAccKm
)
if
(
g_accKm
.
LongAccKm
<=
g_oldAccKm
.
LongAccKm
)
{
if
((
g_accKm
.
LongAccKm
+
100
)
>
g_oldAccKm
.
LongAccKm
)
if
((
g_accKm
.
LongAccKm
+
100
)
>
g_oldAccKm
.
LongAccKm
)
{
g_AccAddr
.
CurEEAccddr
+=
Register_Len
;
}
...
...
@@ -127,23 +126,23 @@ void Api_ReadAccKm(void)
}
bsp_WDOG_Feed
();
}
g_ReadState
=
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
g_ReadState
=
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
if
((
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
)
||
(
check1
!=
g_accKm
.
bCheckSun
))
if
((
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
)
||
(
check1
!=
g_accKm
.
bCheckSun
))
{
g_ReadState
=
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
EEBAKACC
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
if
((
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
)
||
(
check1
!=
g_accKm
.
bCheckSun
))
g_ReadState
=
bsp_IIC_ReadPage
(
EEPROM_BLOCK0
,
EEBAKACC
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
check1
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
if
((
g_accKm
.
Checkflag
!=
CheckFlag
)
||
(
g_accKm
.
LongAccKm
>
10000000
)
||
(
check1
!=
g_accKm
.
bCheckSun
))
{
g_accKm
.
Checkflag
=
CheckFlag
;
g_accKm
.
LongAccKm
=
null
;
g_accKm
.
ShortAccKm
=
null
;
RamShortAccKmA
=
0
;
RamShortAccKmA
=
0
;
g_accKm
.
RemnantPulse
=
null
;
g_accKm
.
FuelSum
=
3000
;
g_accKm
.
Dis100Km
=
400
;
g_accKm
.
bCheckSun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
g_accKm
.
bCheckSun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
}
}
...
...
@@ -161,14 +160,14 @@ void Api_ReadAccKm(void)
--------------------------------------------------------------------------*/
void
Api_WriteAccReg
(
void
)
{
if
((
g_accKm
.
LongAccKm
<=
10000000
)
&&
(
g_ReadState
==
RunComplete
))
if
((
g_accKm
.
LongAccKm
<=
10000000
)
&&
(
g_ReadState
==
RunComplete
))
{
g_accKm
.
Checkflag
=
CheckFlag
;
g_accKm
.
bCheckSun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
Register_Len
-
2
);
g_bReturn
=
bsp_IIC_WritePage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
g_bReturn
=
bsp_IIC_WritePage
(
EEPROM_BLOCK0
,
(
INT8U
)
g_AccAddr
.
CurEEAccddr
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
if
(
g_AccAddr
.
CurEEAccddr
>=
EEACC_END
)
if
(
g_AccAddr
.
CurEEAccddr
>=
EEACC_END
)
{
g_AccAddr
.
CurEEAccddr
=
EEACC_START
;
}
...
...
@@ -190,7 +189,7 @@ void Api_WriteAccReg(void)
--------------------------------------------------------------------------*/
void
Api_ClearAccStock
(
void
)
{
if
(
g_sysFlag
.
Bits
.
AccSaveState
)
if
(
g_sysFlag
.
Bits
.
AccSaveState
)
{
bsp_WDOG_Feed
();
...
...
@@ -203,8 +202,8 @@ void Api_ClearAccStock(void)
g_accKm
.
bCheckSun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
g_accKm
,
sizeof
(
_Register
)
-
2
);
bsp_Delay
(
5000
);
g_accKmClrStep
++
;
switch
(
g_accKmClrStep
)
g_accKmClrStep
++
;
switch
(
g_accKmClrStep
)
{
case
1
:
g_bReturn
=
bsp_IIC_WritePage
(
EEPROM_BLOCK0
,
EEACC_START
+
0
,
(
INT8U
*
)
&
g_accKm
,
Register_Len
);
...
...
@@ -233,8 +232,7 @@ void Api_ClearAccStock(void)
g_accKmClrStep
=
null
;
g_sysFlag
.
Bits
.
ClearODO
=
0
;
break
;
default:
;
default:
;
}
bsp_WDOG_Feed
();
...
...
@@ -328,7 +326,7 @@ void Write2EData(void)
INT8U
i
;
for
(
i
=
0
;
i
<
(
sizeof
(
Diag2eData
)
/
16
);
i
++
)
{
(
void
)
bsp_IIC_WritePage
(
EEPROM_BLOCK_DIAG_2E
,
(
EE_2E_ADDR
+
(
i
*
16
)),
(
INT8U
*
)
&
Diag2eData
+
i
*
16
,
16
);
(
void
)
bsp_IIC_WritePage
(
EEPROM_BLOCK_DIAG_2E
,
(
EE_2E_ADDR
+
(
i
*
16
)),
(
INT8U
*
)
&
Diag2eData
+
i
*
16
,
16
);
bsp_Delay
(
6000
);
}
}
...
...
@@ -347,12 +345,12 @@ void Init2EData(void)
for
(
i
=
0
;
i
<
(
sizeof
(
Diag2eData
)
/
16
);
i
++
)
{
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK_DIAG_2E
,
(
EE_2E_ADDR
+
(
i
*
16
)),
(
INT8U
*
)
&
Diag2eData
+
i
*
16
,
16
);
(
void
)
bsp_IIC_ReadPage
(
EEPROM_BLOCK_DIAG_2E
,
(
EE_2E_ADDR
+
(
i
*
16
)),
(
INT8U
*
)
&
Diag2eData
+
i
*
16
,
16
);
bsp_Delay
(
6000
);
}
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Diag2eData
,
sizeof
(
Diag2eData
)
-
2
);
if
((
Diag2eData
.
bFlag
!=
CheckFlag
)
||
(
g_chksun
!=
Diag2eData
.
bCheckSum
))
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Diag2eData
,
sizeof
(
Diag2eData
)
-
2
);
if
((
Diag2eData
.
bFlag
!=
CheckFlag
)
||
(
g_chksun
!=
Diag2eData
.
bCheckSum
))
{
//---- F190 ----//
(
void
)
memset
((
INT8U
*
)
&
Diag2eData
.
D_F190
[
0
],
0
,
17
);
...
...
@@ -365,80 +363,77 @@ void Init2EData(void)
//---- FCAA ----//
wTemp
=
5624
;
//用来识别EPROM是否成功写入硬件配置
Diag2eData
.
D_FCAA
[
0
]
=
(
wTemp
>>
8
)
&
0xff
;
//Byte0-Byte1::Bit5 - Bit0 PPK
wTemp
=
5624
;
//用来识别EPROM是否成功写入硬件配置
Diag2eData
.
D_FCAA
[
0
]
=
(
wTemp
>>
8
)
&
0xff
;
//Byte0-Byte1::Bit5 - Bit0 PPK
Diag2eData
.
D_FCAA
[
1
]
=
wTemp
&
0xff
;
//ppk
Radio
.
VehRadio
=
((
INT16U
)
Diag2eData
.
D_FCAA
[
0
]
<<
8
)
|
((
INT16U
)
Diag2eData
.
D_FCAA
[
1
]);
Radio
.
VehRadio
=
((
INT16U
)
Diag2eData
.
D_FCAA
[
0
]
<<
8
)
|
((
INT16U
)
Diag2eData
.
D_FCAA
[
1
]);
//---- F1A8 ----//
Diag2eData
.
D_F1A8
[
0
]
=
90
;
//Byte0 实际是120,后面+30 超速报警值 : default:120km/h
Diag2eData
.
D_F1A8
[
0
]
=
90
;
//Byte0 实际是120,后面+30 超速报警值 : default:120km/h
Diag2eData
.
D_F1A8
[
1
]
=
0x09
;
//Byte1::Bit0 超速报警 : default:1 配置
//Byte1::Bit2 - Bit1 天蓝液 : default:2 18FE5600
//Byte1::Bit3 气压 : default:1 配置
//Byte1::Bit7 - Bit4 语言 : default:0 中文
Diag2eData
.
D_F1A8
[
2
]
=
0x01
;
//Byte2::Bit3 - Bit0 发动机状态 : default:2 北京康明斯 国四、国五;MF3.2、4.8国四、国五
Diag2eData
.
D_F1A8
[
2
]
=
0x00
;
//Byte2::Bit3 - Bit0 发动机状态 : default:0 0x0:全柴Q23国六发动机 0x1:云内D20国六发动机
//Byte2::Bit7 - Bit4 单位 : default:0 km/h,L/100km
Diag2eData
.
D_F1A8
[
3
]
=
0x46
;
//3200-5000rpm
Diag2eData
.
D_F1A8
[
3
]
=
0x46
;
//3200-5000rpm
//Byte3::Bit0 车道偏离LDWS : default:0 未配置
//Byte3::Bit3 - Bit1 水温表报警点 : default:2 105degC
//Byte3::Bit7 - Bit4 转速表红区 : default:2 3200rpm
Diag2eData
.
D_F1A8
[
4
]
=
0x20
;
//Byte4::Bit6 - Bit5 燃油表参数 : default:0 E点105Ω;F点7Ω
Diag2eData
.
D_F1A8
[
4
]
=
0x20
;
//Byte4::Bit6 - Bit5 燃油表参数 : default:0 E点105Ω;F点7Ω
//Byte4::Bit7 冷却液液位报警 : default:0 未配置
Diag2eData
.
D_F1A8
[
5
]
=
0x0
2
;
//Byte5::Bit1 - Bit0 (ABS+EBD)/ESC : default:2 CAN总线ABS+EBD
Diag2eData
.
D_F1A8
[
5
]
=
0x0
0
;
//Byte5::Bit1 - Bit0 (ABS+EBD)/ESC : default:2 CAN总线ABS+EBD
//Byte5::Bit2 安全气囊 : default:0 未配置
//Byte5::Bit5 - Bit4 胎压监测 : default:0 未配置
//Byte5::Bit7 - Bit6 发动机防盗 : default:0 未配置
Diag2eData
.
D_F1A8
[
6
]
=
0x00
;
(
void
)
memset
(
&
Diag2eData
.
D_F1A8
[
7
],
0
,
14
);
Diag2eData
.
D_F1A8
[
7
]
=
0x00
;
//Byte7::Bit3 - Bit2 蹄片磨损 : default:0 屏蔽
//(void)memset(&Diag2eData.D_F1A8[7], 0, 14);
//超速报警值
SetMeuMsg
.
OverSpeed
=
Diag2eData
.
D_F1A8
[
0
]
+
30
;
//--//
//超速报警
ConfigItem
.
OverSpdConfig
=
(
Diag2eData
.
D_F1A8
[
1
])
&
0x01
;
//天蓝液
ConfigItem
.
AdblueConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
1
)
&
0x03
;
ConfigItem
.
AdblueConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
1
)
&
0x03
;
//气压
ConfigItem
.
GasConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
3
)
&
0x01
;
ConfigItem
.
GasConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
3
)
&
0x01
;
//语言
SetMeuMsg
.
Language
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
4
)
+
1
;
//--//
SetMeuMsg
.
Language
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
4
)
+
1
;
//--//
//发动机状态
ConfigItem
.
EngConfig
=
Diag2eData
.
D_F1A8
[
2
]
&
0x0f
;
//--//
ConfigItem
.
EngConfig
=
Diag2eData
.
D_F1A8
[
2
]
&
0x0f
;
//--//
//车道偏离
ConfigItem
.
LDWSConfig
=
Diag2eData
.
D_F1A8
[
3
]
&
0x01
;
//水温表报警点
ConfigItem
.
TempConfig
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
1
)
&
0x07
;
ConfigItem
.
TempConfig
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
1
)
&
0x07
;
//转速红区配置
g_RedArea
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
4
)
&
0x0F
;
g_RedArea
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
4
)
&
0x0F
;
g_RedArea
=
2400
+
g_RedArea
*
200
;
//--//
//燃油
ConfigItem
.
FuelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
5
)
&
0x03
;
ConfigItem
.
FuelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
5
)
&
0x03
;
//冷却液位低
ConfigItem
.
CoolLevelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
7
)
&
0x01
;
//--//
ConfigItem
.
CoolLevelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
7
)
&
0x01
;
//--//
//制动系统故障-EBD
ConfigItem
.
ABS_ESCConfig
=
Diag2eData
.
D_F1A8
[
5
]
&
0x03
;
//安全气囊
ConfigItem
.
AirBagConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
2
)
&
0x01
;
ConfigItem
.
AirBagConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
2
)
&
0x01
;
//胎压监测
ConfigItem
.
TpmsConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
4
)
&
0x03
;
//--//
ConfigItem
.
TpmsConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
4
)
&
0x03
;
//--//
//蹄片磨损配置
ConfigItem
.
BrakeShoeConfig
=
(
Diag2eData
.
D_F1A8
[
7
]
>>
2
)
&
0x03
;
}
else
{
//-- FCAA --//
//ppk
Radio
.
VehRadio
=
((
INT16U
)
Diag2eData
.
D_FCAA
[
0
]
<<
8
)
|
((
INT16U
)
Diag2eData
.
D_FCAA
[
1
]);
Radio
.
VehRadio
=
((
INT16U
)
Diag2eData
.
D_FCAA
[
0
]
<<
8
)
|
((
INT16U
)
Diag2eData
.
D_FCAA
[
1
]);
//-- F1A8 --//
//超速报警值
...
...
@@ -446,30 +441,32 @@ void Init2EData(void)
//超速报警
ConfigItem
.
OverSpdConfig
=
(
Diag2eData
.
D_F1A8
[
1
])
&
0x01
;
//天蓝液
ConfigItem
.
AdblueConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
1
)
&
0x03
;
ConfigItem
.
AdblueConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
1
)
&
0x03
;
//气压
ConfigItem
.
GasConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
3
)
&
0x01
;
ConfigItem
.
GasConfig
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
3
)
&
0x01
;
//语言
SetMeuMsg
.
Language
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
4
)
+
1
;
//--//
SetMeuMsg
.
Language
=
(
Diag2eData
.
D_F1A8
[
1
]
>>
4
)
+
1
;
//--//
//发动机状态
ConfigItem
.
EngConfig
=
Diag2eData
.
D_F1A8
[
2
]
&
0x0f
;
//--//
ConfigItem
.
EngConfig
=
Diag2eData
.
D_F1A8
[
2
]
&
0x0f
;
//--//
//车道偏离
ConfigItem
.
LDWSConfig
=
Diag2eData
.
D_F1A8
[
3
]
&
0x01
;
//水温表报警点
ConfigItem
.
TempConfig
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
1
)
&
0x07
;
ConfigItem
.
TempConfig
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
1
)
&
0x07
;
//转速红区配置
g_RedArea
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
4
)
&
0x0F
;
g_RedArea
=
(
Diag2eData
.
D_F1A8
[
3
]
>>
4
)
&
0x0F
;
g_RedArea
=
2400
+
g_RedArea
*
200
;
//--//
//燃油
ConfigItem
.
FuelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
5
)
&
0x03
;
ConfigItem
.
FuelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
5
)
&
0x03
;
//冷却液位低
ConfigItem
.
CoolLevelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
7
)
&
0x01
;
//--//
ConfigItem
.
CoolLevelConfig
=
(
Diag2eData
.
D_F1A8
[
4
]
>>
7
)
&
0x01
;
//--//
//制动系统故障-EBD
ConfigItem
.
ABS_ESCConfig
=
Diag2eData
.
D_F1A8
[
5
]
&
0x03
;
//安全气囊
ConfigItem
.
AirBagConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
2
)
&
0x01
;
ConfigItem
.
AirBagConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
2
)
&
0x01
;
//胎压监测
ConfigItem
.
TpmsConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
4
)
&
0x03
;
//--//
ConfigItem
.
TpmsConfig
=
(
Diag2eData
.
D_F1A8
[
5
]
>>
4
)
&
0x03
;
//--//
//蹄片磨损配置
ConfigItem
.
BrakeShoeConfig
=
(
Diag2eData
.
D_F1A8
[
7
]
>>
2
)
&
0x03
;
}
}
/*-------------------------------------------------------------------------
...
...
@@ -482,7 +479,7 @@ void Init2EData(void)
--------------------------------------------------------------------------*/
void
App_2E_Write_handle
(
void
)
{
Diag2eData
.
bFlag
=
0x55
;
Diag2eData
.
bCheckSum
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Diag2eData
,
sizeof
(
Diag2eData
)
-
2
);
Diag2eData
.
bFlag
=
0x55
;
Diag2eData
.
bCheckSum
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Diag2eData
,
sizeof
(
Diag2eData
)
-
2
);
Write2EData
();
}
\ No newline at end of file
Sources/Fuel/FuelProcess.c
View file @
80ab578f
...
...
@@ -59,9 +59,6 @@ void App_CalFuelBoard(void)
g_fuelMeter.CurBoardVal = RL;
*/
INT32U
temp2
;
//江淮N721平台化12V表,
INT32U
temp1
;
INT16U
RScale
;
...
...
@@ -79,20 +76,20 @@ void App_CalFuelBoard(void)
VR1
=
33000
;
//KL15_AD 单片机15电AD采集端配置的电阻,12V表配 33欧姆与10欧姆
VR2
=
10000
;
RScale
=
(
TempR1
+
TempR2
)
*
10
/
TempR2
;
temp2
=
(
g_adcResult
.
FuelEven
[
3
]
+
g_adcResult
.
FuelEven
[
4
]
+
g_adcResult
.
FuelEven
[
5
])
*
10
/
3
;
temp1
=
(
g_adcResult
.
BatLevel
[
3
]
+
g_adcResult
.
BatLevel
[
4
]
+
g_adcResult
.
BatLevel
[
5
])
*
10
/
3
;
temp1
=
(
temp1
*
5
*
(
VR1
+
VR2
))
/
(
1024
*
VR2
);
RScale
=
(
TempR1
+
TempR2
)
*
10
/
TempR2
;
temp2
=
(
g_adcResult
.
FuelEven
[
3
]
+
g_adcResult
.
FuelEven
[
4
]
+
g_adcResult
.
FuelEven
[
5
])
*
10
/
3
;
temp1
=
(
g_adcResult
.
BatLevel
[
3
]
+
g_adcResult
.
BatLevel
[
4
]
+
g_adcResult
.
BatLevel
[
5
])
*
10
/
3
;
temp1
=
(
temp1
*
5
*
(
VR1
+
VR2
))
/
(
1024
*
VR2
);
g_Vcc
=
temp1
;
g_FuelVCC
=
(
INT16U
)
g_Vcc
;
g_Vcpu
=
temp2
*
5
/
1024
;
if
((
g_Vcpu
*
RScale
)
<
(
g_Vcc
*
10
))
if
((
g_Vcpu
*
RScale
)
<
(
g_Vcc
*
10
))
{
RL
=
((
RScale
*
5
*
temp2
)
*
200
)
/
(
10240
*
g_Vcc
-
(
RScale
*
5
*
temp2
));
////图纸上是200欧姆(1.2K的6个并联),是PIN23脚向内接入的
RL
=
((
RScale
*
5
*
temp2
)
*
200
)
/
(
10240
*
g_Vcc
-
(
RScale
*
5
*
temp2
));
////图纸上是200欧姆(1.2K的6个并联),是PIN23脚向内接入的
RL
=
RL
*
10
;
}
if
(
RL
>
3600
)
if
(
RL
>
3600
)
{
RL
=
3600
;
}
...
...
@@ -109,57 +106,57 @@ void App_CalFuelBoard(void)
--------------------------------------------------------------------------*/
void
App_CalFuelEconomy
(
void
)
{
if
((
g_FuelState
==
FuelSensorNormal
)
&&
(
g_canClock
.
signal
.
Exist65266
))
if
((
g_FuelState
==
FuelSensorNormal
)
&&
(
g_canClock
.
signal
.
Exist65266
))
{
if
(
g_fuelEco
.
VehNullTime
<=
T_1_0min
)
if
(
g_fuelEco
.
VehNullTime
<=
T_1_0min
)
{
if
(
g_revMeter
.
CurBoardVal
>
null
)
if
(
g_revMeter
.
CurBoardVal
>
null
)
{
if
((
FuelConsumption
/
100000
)
>=
1
)
//100mL
if
((
FuelConsumption
/
100000
)
>=
1
)
//100mL
{
g_fuelEco
.
FuelSum
+=
1
;
g_fuelEco
.
FuelSum1
+=
1
;
FuelConsumption
=
FuelConsumption
%
100000
;
g_fuelEco
.
FuelSum1
+=
1
;
FuelConsumption
=
FuelConsumption
%
100000
;
}
}
}
//平均油耗
if
((
g_fuelEco
.
AveFuelTime
>=
T_5_0s
)
||
(
g_fuelEco
.
DispAveFuel
==
null
))
if
((
g_fuelEco
.
AveFuelTime
>=
T_5_0s
)
||
(
g_fuelEco
.
DispAveFuel
==
null
))
{
g_fuelEco
.
AveFuelTime
=
null
;
if
(
g_fuelEco
.
Dis100Km
>=
1
)
//清零后行驶里程100m显示
if
(
g_fuelEco
.
Dis100Km
>=
1
)
//清零后行驶里程100m显示
{
//大于500km,累计 S 或油耗累计 L除2
if
((
g_fuelEco
.
Dis100Km
>=
5000
))
if
((
g_fuelEco
.
Dis100Km
>=
5000
))
{
g_fuelEco
.
FuelSum
/=
2
;
g_fuelEco
.
Dis100Km
/=
2
;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco
.
CalAveFuel
=
(
INT16U
)((
g_fuelEco
.
FuelSum
+
ConfigItem
.
FuelCosumConfig
)
*
1000
/
(
g_fuelEco
.
Dis100Km
+
50
));
g_fuelEco
.
CalAveFuel
=
(
INT16U
)((
g_fuelEco
.
FuelSum
+
ConfigItem
.
FuelCosumConfig
)
*
1000
/
(
g_fuelEco
.
Dis100Km
+
50
));
if
(
g_fuelEco
.
DispAveFuel
==
null
)
if
(
g_fuelEco
.
DispAveFuel
==
null
)
{
g_fuelEco
.
DispAveFuel
=
g_fuelEco
.
CalAveFuel
;
}
if
(
g_fuelEco
.
CalAveFuel
>
g_fuelEco
.
DispAveFuel
)
if
(
g_fuelEco
.
CalAveFuel
>
g_fuelEco
.
DispAveFuel
)
{
g_fuelEco
.
DispAveFuel
++
;
g_fuelEco
.
DispAveFuel
++
;
}
else
if
(
g_fuelEco
.
DispAveFuel
>
g_fuelEco
.
CalAveFuel
)
else
if
(
g_fuelEco
.
DispAveFuel
>
g_fuelEco
.
CalAveFuel
)
{
g_fuelEco
.
DispAveFuel
--
;
g_fuelEco
.
DispAveFuel
--
;
}
if
(
g_fuelEco
.
DispAveFuel
>
699
)
//最大限制69.9L/100km
if
(
g_fuelEco
.
DispAveFuel
>
699
)
//最大限制69.9L/100km
{
g_fuelEco
.
DispAveFuel
=
699
;
}
if
(
g_fuelEco
.
DispAveFuel
<
60
)
//最低限制6.0L/100km
if
(
g_fuelEco
.
DispAveFuel
<
60
)
//最低限制6.0L/100km
{
g_fuelEco
.
DispAveFuel
=
60
;
}
...
...
@@ -171,41 +168,41 @@ void App_CalFuelEconomy(void)
}
//短程油耗
if
((
g_fuelEco
.
SRFCTime
>=
T_5_0s
)
||
(
g_fuelEco
.
DispSRFC
==
null
))
if
((
g_fuelEco
.
SRFCTime
>=
T_5_0s
)
||
(
g_fuelEco
.
DispSRFC
==
null
))
{
g_fuelEco
.
SRFCTime
=
null
;
if
(
g_fuelEco
.
Dis100Km1
>=
1
)
//清零后行驶里程100m显示
if
(
g_fuelEco
.
Dis100Km1
>=
1
)
//清零后行驶里程100m显示
{
//大于500km,累计 S 或油耗累计 L除2
if
((
g_fuelEco
.
Dis100Km1
>=
5000
))
if
((
g_fuelEco
.
Dis100Km1
>=
5000
))
{
g_fuelEco
.
FuelSum1
/=
2
;
g_fuelEco
.
Dis100Km1
/=
2
;
}
//公式:(燃油消耗+修正因子) /(行驶距离+5km)
g_fuelEco
.
CalSRFC
=
(
INT16U
)((
g_fuelEco
.
FuelSum1
+
ConfigItem
.
FuelCosumConfig
)
*
1000
/
(
g_fuelEco
.
Dis100Km1
+
50
));
g_fuelEco
.
CalSRFC
=
(
INT16U
)((
g_fuelEco
.
FuelSum1
+
ConfigItem
.
FuelCosumConfig
)
*
1000
/
(
g_fuelEco
.
Dis100Km1
+
50
));
if
(
g_fuelEco
.
DispSRFC
==
null
)
if
(
g_fuelEco
.
DispSRFC
==
null
)
{
g_fuelEco
.
DispSRFC
=
g_fuelEco
.
CalSRFC
;
}
if
(
g_fuelEco
.
CalSRFC
>
g_fuelEco
.
DispSRFC
)
if
(
g_fuelEco
.
CalSRFC
>
g_fuelEco
.
DispSRFC
)
{
g_fuelEco
.
DispSRFC
++
;
g_fuelEco
.
DispSRFC
++
;
}
else
if
(
g_fuelEco
.
DispSRFC
>
g_fuelEco
.
CalSRFC
)
else
if
(
g_fuelEco
.
DispSRFC
>
g_fuelEco
.
CalSRFC
)
{
g_fuelEco
.
DispSRFC
--
;
g_fuelEco
.
DispSRFC
--
;
}
if
(
g_fuelEco
.
DispSRFC
>
699
)
//最大限制69.9L/100km
if
(
g_fuelEco
.
DispSRFC
>
699
)
//最大限制69.9L/100km
{
g_fuelEco
.
DispSRFC
=
699
;
}
if
(
g_fuelEco
.
DispSRFC
<
60
)
//最大限制6.0L/100km
if
(
g_fuelEco
.
DispSRFC
<
60
)
//最大限制6.0L/100km
{
g_fuelEco
.
DispSRFC
=
60
;
}
...
...
@@ -243,13 +240,13 @@ void App_CalFuelEconomy(void)
--------------------------------------------------------------------------*/
void
App_CalFuelInit
(
void
)
{
if
(
ConfigItem
.
FuelConfig
==
0
)
if
(
ConfigItem
.
FuelConfig
==
0
)
{
FuelInitPara
.
FuelShortCircuitR
=
10
;
//短路电阻--1欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
DisplayZoneBoundary
[
0
]
=
1050
;
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1050
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1050
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
2
]
=
880
;
//1格末 --20steps
FuelInitPara
.
DisplayZoneBoundary
[
3
]
=
700
;
//2格末 --30steps
FuelInitPara
.
DisplayZoneBoundary
[
4
]
=
510
;
//3格末 --40steps
...
...
@@ -273,14 +270,14 @@ void App_CalFuelInit(void)
FuelInitPara
.
FuelCapacityBoundary
[
9
]
=
520
;
FuelInitPara
.
FuelCapacityBoundary
[
10
]
=
520
;
}
else
if
(
ConfigItem
.
FuelConfig
==
3
)
else
if
(
ConfigItem
.
FuelConfig
==
3
)
{
FuelInitPara
.
FuelShortCircuitR
=
10
;
//短路电阻--1欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
DisplayZoneBoundary
[
0
]
=
1460
;
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1460
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
2
]
=
1250
;
//1格末 --20steps
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1460
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
2
]
=
1250
;
//1格末 --20steps
FuelInitPara
.
DisplayZoneBoundary
[
3
]
=
820
;
//2格末 --30steps
FuelInitPara
.
DisplayZoneBoundary
[
4
]
=
670
;
//3格末 --40steps
FuelInitPara
.
DisplayZoneBoundary
[
5
]
=
520
;
//4格末 --50steps
...
...
@@ -306,13 +303,13 @@ void App_CalFuelInit(void)
else
//default config 1
{
FuelInitPara
.
FuelShortCircuitR
=
10
;
//短路电阻--1欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
FuelOpenCircuitR
=
3500
;
//断路电阻--350欧
FuelInitPara
.
DisplayZoneBoundary
[
0
]
=
1950
;
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1950
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
2
]
=
1720
;
//1格末 --20steps
FuelInitPara
.
DisplayZoneBoundary
[
3
]
=
1420
;
//2格末 --30steps
FuelInitPara
.
DisplayZoneBoundary
[
4
]
=
1170
;
//3格末 --40steps
FuelInitPara
.
DisplayZoneBoundary
[
1
]
=
1950
;
//E(0格末) --10steps
FuelInitPara
.
DisplayZoneBoundary
[
2
]
=
1720
;
//1格末 --20steps
FuelInitPara
.
DisplayZoneBoundary
[
3
]
=
1420
;
//2格末 --30steps
FuelInitPara
.
DisplayZoneBoundary
[
4
]
=
1170
;
//3格末 --40steps
FuelInitPara
.
DisplayZoneBoundary
[
5
]
=
890
;
//4格末 --50steps
FuelInitPara
.
DisplayZoneBoundary
[
6
]
=
700
;
//5格末 --60steps
FuelInitPara
.
DisplayZoneBoundary
[
7
]
=
580
;
//6格末 --70steps
...
...
@@ -342,7 +339,7 @@ void App_CalFuelInit(void)
g_AFC_INIT
.
AFCPreinstall
=
75
;
//unit:L,accuracy:0.1
g_AFC_INIT
.
CurODO
=
g_accKm
.
LongAccKm
*
100
;
// unit:m,accuracy:1
g_AFC_INIT
.
MaxDRMileage
=
70000
;
//unit:km,accuracy:0.01
InitAFC
(
&
g_AFC_INIT
);
InitAFC
(
&
g_AFC_INIT
);
SetFuelSensorRecoverGroupCnt
(
40
);
SetFuelSensorOpenCircuitGroupCnt
(
40
);
SetFuelSensorShortCircuitGroupCnt
(
10
);
//5s
...
...
@@ -364,7 +361,7 @@ void App_FuelManage(void)
AFCPara
.
RPM
=
g_revMeter
.
CurBoardVal
;
AFCPara
.
Speed
=
(
INT8U
)
g_vehMeter
.
CurBoardVal
;
SetAFCPara
(
&
AFCPara
);
if
(
g_fuelMeter
.
CurBoardVal
==
0
)
if
(
g_fuelMeter
.
CurBoardVal
==
0
)
{
g_fuelMeter
.
CurBoardVal
=
1
;
}
...
...
@@ -372,15 +369,15 @@ void App_FuelManage(void)
FuelFSM
();
g_fuelMeter
.
BoardVal
=
GetFuelResistance
();
g_FuelState
=
GetFuelSensorState
();
if
(
CheckStep
==
2
)
if
(
CheckStep
==
2
)
{
if
(
DIDFlag
.
Bits
.
DID1006Valid
==
Enable
)
//所有表
if
(
DIDFlag
.
Bits
.
DID1006Valid
==
Enable
)
//所有表
{
if
(
IOCTL_DID1006
.
FF_Byte
==
1
)
if
(
IOCTL_DID1006
.
FF_Byte
==
1
)
{
g_fuelMeter
.
DispPosition
=
8
;
}
else
if
(
IOCTL_DID1006
.
FF_Byte
==
2
)
else
if
(
IOCTL_DID1006
.
FF_Byte
==
2
)
{
g_fuelMeter
.
DestPosition
=
4
;
}
...
...
@@ -389,13 +386,13 @@ void App_FuelManage(void)
g_fuelMeter
.
DestPosition
=
0
;
}
}
else
if
(
DIDFlag
.
Bits
.
DID1004Valid
==
Enable
)
else
if
(
DIDFlag
.
Bits
.
DID1004Valid
==
Enable
)
{
if
(
IOCTL_DID1003
.
FF_Byte
==
1
)
if
(
IOCTL_DID1003
.
FF_Byte
==
1
)
{
g_fuelMeter
.
DispPosition
=
8
;
}
else
if
(
IOCTL_DID1003
.
FF_Byte
==
2
)
else
if
(
IOCTL_DID1003
.
FF_Byte
==
2
)
{
g_fuelMeter
.
DestPosition
=
4
;
}
...
...
@@ -404,20 +401,20 @@ void App_FuelManage(void)
g_fuelMeter
.
DestPosition
=
0
;
}
}
else
if
((
g_FuelState
==
FuelSensorShortCircuit
)
||
(
g_FuelState
==
FuelSensorOpenCircuit
))
else
if
((
g_FuelState
==
FuelSensorShortCircuit
)
||
(
g_FuelState
==
FuelSensorOpenCircuit
))
{
if
(
g_FuelState
==
FuelSensorShortCircuit
)
//短路
if
(
g_FuelState
==
FuelSensorShortCircuit
)
//短路
{
g_fuelMeter
.
DispPosition
=
8
;
}
else
if
(
g_FuelState
==
FuelSensorOpenCircuit
)
//开路
else
if
(
g_FuelState
==
FuelSensorOpenCircuit
)
//开路
{
g_fuelMeter
.
DispPosition
=
0
;
}
g_FuelAlarm
=
Enable
;
}
else
if
((
g_fuelMeter
.
BoardVal
)
&&
(
g_FuelState
==
FuelSensorNormal
))
else
if
((
g_fuelMeter
.
BoardVal
)
&&
(
g_FuelState
==
FuelSensorNormal
))
{
g_fuelMeter
.
DispPosition
=
GetFuelSeg
();
g_fuelMeter
.
CurPosition
=
GetFuelStep
();
...
...
Sources/USER/System.c
View file @
80ab578f
...
...
@@ -52,13 +52,12 @@ void App_Paramer_Init(void)
//Enable_signal(g_canClock.signal.ExistF004);
// g_canClock.IDF004Cn = 200; //10ms
// g_canClock.IDFE56Cn = 200; //10ms
g_Init
.
InitLedCheckTime
=
0
;
g_Init
.
InitLedCheckOBDTime
=
0
;
g_canMsgFE56
.
ProceF
==
EMPTY
;
if
(
G_Button
.
MainMenu
!=
4
)
if
(
G_Button
.
MainMenu
!=
4
)
{
G_Button
.
MainMenu
=
1
;
...
...
@@ -79,16 +78,11 @@ void App_Paramer_Init(void)
Disable_signal
(
g_sysFlag
.
Bits
.
FuelMeterInit
);
Disable_signal
(
g_sysFlag
.
Bits
.
AdjEnable
);
Disable_signal
(
g_sysFlag
.
Bits
.
PowerLvi
);
if
(
!
g_sysFlag
.
Bits
.
WakeUpState
)
if
(
!
g_sysFlag
.
Bits
.
WakeUpState
)
{
Enable_signal
(
g_sysFlag
.
Bits
.
CanWakeUp
);
}
//motor
g_vehMeter
.
Dir
=
keep_local
;
g_vehMeter
.
DestPosition
=
null
;
...
...
@@ -167,7 +161,7 @@ void App_Paramer_Init(void)
Api_SetBaseTimer
(
T_100ms
,
(
_Clock
*
)
&
g_Clock
);
Gui_Offset_Init
();
bDSTable
[
ID_FUELLOW
]
&=
(
~
(
DS0_MASK
|
DS1_MASK
));
//clear DS0 & DS1
bDSTable
[
ID_ADBLUE
]
&=
(
~
(
DS0_MASK
|
DS1_MASK
));
//clear DS0 & DS1
bDSTable
[
ID_ADBLUE
]
&=
(
~
(
DS0_MASK
|
DS1_MASK
));
//clear DS0 & DS1
////////////////////glz--20170107
CanMinuteTime
=
0
;
bCurMenuIDX
=
0
;
...
...
@@ -185,7 +179,6 @@ void App_Paramer_Init(void)
--------------------------------------------------------------------------*/
void
App_State_OFF
(
void
)
{
}
/*-------------------------------------------------------------------------
* Function Name : App_StarUpInfo
...
...
@@ -215,31 +208,19 @@ void App_StarUpInfo(void)
Disable_signal
(
g_gas1Meter
.
MakeZero
);
Disable_signal
(
g_gas2Meter
.
MakeZero
);
g_OverSpeed
=
120
;
g_fuelMeter
.
OldPosition
=
null
;
Gui_MenuInit
();
Gui_Offset_Init
();
g_runStep
=
SYS_INIT_TASK
;
pABSout
=
LEDOFF
;
pOilout
=
LEDOFF
;
pFuelOut
=
LEDOFF
;
pTempOut
=
LEDOFF
;
}
/*-------------------------------------------------------------------------
...
...
@@ -253,20 +234,19 @@ void App_StarUpInfo(void)
void
App_Load_Data
(
void
)
{
bsp_IIC_ReadPage
(
0xa2
,
EE_REVREDLED_ADDR
,
(
INT8U
*
)
&
Rev_RedLight
,
8
);
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Rev_RedLight
,
6
);
if
((
Rev_RedLight
.
bCheckFlag
!=
0x55
)
||
(
g_chksun
!=
Rev_RedLight
.
bCheckSun
))
bsp_IIC_ReadPage
(
0xa2
,
EE_REVREDLED_ADDR
,
(
INT8U
*
)
&
Rev_RedLight
,
8
);
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Rev_RedLight
,
6
);
if
((
Rev_RedLight
.
bCheckFlag
!=
0x55
)
||
(
g_chksun
!=
Rev_RedLight
.
bCheckSun
))
{
Rev_RedLight
.
RevRedLight
=
3200
;
Rev_RedLight
.
bSetAdblue
=
0
;
Rev_RedLight
.
bSetCheck
=
0
;
}
///
bsp_IIC_ReadPage
(
0xa2
,
EE_RADIO_ADDR
,
(
INT8U
*
)
&
Radio
,
10
);
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Radio
,
8
);
if
((
Radio
.
bCheckFlag
!=
0x55
)
||
(
g_chksun
!=
Radio
.
bCheckSun
))
//
bsp_IIC_ReadPage
(
0xa2
,
EE_RADIO_ADDR
,
(
INT8U
*
)
&
Radio
,
10
);
g_chksun
=
Api_CreateCRCCheckSum
((
INT8U
*
)
&
Radio
,
8
);
if
((
Radio
.
bCheckFlag
!=
0x55
)
||
(
g_chksun
!=
Radio
.
bCheckSun
))
{
Radio
.
RevRadio
=
2
;
Radio
.
VehRadio
=
520
;
...
...
@@ -277,7 +257,7 @@ void App_Load_Data(void)
Api_ReadMeterInfo
(
0xa0
,
EE_VEH_ADDR
,
(
INT8U
*
)
&
g_vehMeterInfo
);
g_chksun
=
Api_CreateCheckSun
((
INT8U
*
)
&
g_vehMeterInfo
.
Resistor
[
0
],
g_vehMeterInfo
.
bFlag
,
33
);
if
((
g_vehMeterInfo
.
bFlag
!=
0x55
)
||
(
g_vehMeterInfo
.
bCheckSun
!=
g_chksun
))
if
((
g_vehMeterInfo
.
bFlag
!=
0x55
)
||
(
g_vehMeterInfo
.
bCheckSun
!=
g_chksun
))
{
g_vehMeterInfo
.
bVirtualVal
=
8
;
g_vehMeterInfo
.
Resistor
[
0
]
=
0
;
...
...
@@ -319,10 +299,10 @@ void App_Load_Data(void)
g_vehLcdInfo
.
DashStep
[
7
]
=
g_vehMeterInfo
.
DashStep
[
7
];
//
Api_ReadMeterInfo
(
0xa0
,
EE_REV_ADDR
,
(
INT8U
*
)
&
g_revMeterInfo
);
g_chksun
=
Api_CreateCheckSun
((
INT8U
*
)
&
g_revMeterInfo
.
Resistor
[
0
],
g_revMeterInfo
.
bFlag
,
33
);
Api_ReadMeterInfo
(
0xa0
,
EE_REV_ADDR
,
(
INT8U
*
)
&
g_revMeterInfo
);
g_chksun
=
Api_CreateCheckSun
((
INT8U
*
)
&
g_revMeterInfo
.
Resistor
[
0
],
g_revMeterInfo
.
bFlag
,
33
);
if
((
g_revMeterInfo
.
bFlag
!=
0x55
)
||
(
g_revMeterInfo
.
bCheckSun
!=
g_chksun
))
if
((
g_revMeterInfo
.
bFlag
!=
0x55
)
||
(
g_revMeterInfo
.
bCheckSun
!=
g_chksun
))
{
g_revMeterInfo
.
bVirtualVal
=
5
;
g_revMeterInfo
.
Resistor
[
0
]
=
0
;
...
...
@@ -343,7 +323,8 @@ void App_Load_Data(void)
g_revMeterInfo
.
DashStep
[
6
]
=
0
;
//
g_revMeterInfo
.
DashStep
[
7
]
=
0
;
//
}
//////
//
g_gas1MeterInfo
.
bVirtualVal
=
7
;
g_gas1MeterInfo
.
Resistor
[
0
]
=
102
;
//0
...
...
@@ -445,7 +426,6 @@ void App_Load_Data(void)
g_fuelMeterInfo
.
DashStep
[
6
]
=
0
;
g_fuelMeterInfo
.
DashStep
[
7
]
=
0
;
g_fuelEcoParamer
.
bVirtualVal
=
4
;
g_fuelEcoParamer
.
Resistor
[
0
]
=
0
;
...
...
@@ -462,8 +442,7 @@ void App_Load_Data(void)
w1
=
g_vehMeterInfo
.
Resistor
[
g_vehMeterInfo
.
bVirtualVal
-
1
];
VehFreLimit
=
w
/
(
w1
*
Radio
.
VehRadio
*
Radio
.
VehNum
/
3600
)
/
4
;
w
=
TPM1Clock
;
w1
=
g_revMeterInfo
.
Resistor
[
g_revMeterInfo
.
bVirtualVal
-
1
];
w1
=
g_revMeterInfo
.
Resistor
[
g_revMeterInfo
.
bVirtualVal
-
1
];
RevFreLimit
=
w
/
(
w1
*
Radio
.
RevRadio
/
60
)
/
4
;
Rev_Limit
=
App_CalMicroStep
((
INT32U
)
Rev_RedLight
.
RevRedLight
,
(
_EE_MeterInfo
*
)
&
g_revMeterInfo
);
}
Sources/app_CAN.c
View file @
80ab578f
...
...
@@ -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
;
...
...
Sources/defines.h
View file @
80ab578f
...
...
@@ -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
...
...
TBDML.ini
View file @
80ab578f
...
...
@@ -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
...
...
api_Sources/api_CAN.c
View file @
80ab578f
...
...
@@ -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
)
==
0x0
1
)
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
)
==
0x0
1
)
if
((
g_canMsg64892
.
Data
[
6
]
&
0x1c
)
==
0x0
4
)
{
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_
60
kpa
)
if
(
g_canMsg65263
.
Data
[
3
]
<
P_
55
kpa
)
{
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
;
}
}
api_Sources/api_RTC.c
View file @
80ab578f
...
...
@@ -482,113 +482,117 @@ void Api_ClockGenerate(void)
g_LED
.
pParkTime
=
null
;
}
/*
//EBD-pin5
if(pBrakeIn == LOW)
//机油压力-
if
(
LINE_IN_OILn
==
LOW
)
{
if
(g_LED.pBrake
Time < T_0_5s)
if
(
g_LED
.
pOil
Time
<
T_0_5s
)
{
g_LED.p
BrakeTime
++;
g_LED
.
p
OilTime
++
;
}
}
else
{
g_LED.p
Brake
Time = null;
g_LED
.
p
Oil
Time
=
null
;
}
//ABS
if(pABSIn == LOW)
//机油压力-TFT
if
(((
LINE_IN_OILn
==
LOW
)
&&
(
ConfigItem
.
EngConfig
==
3
))
||
((
g_CanSwith
.
OilLamp
)
&&
((
ConfigItem
.
EngConfig
==
0
)
||
(
ConfigItem
.
EngConfig
==
1
)))
||
((
g_CanSwith
.
OilLamp1
)
&&
(
ConfigItem
.
EngConfig
==
2
)))
{
if
(g_LED.ABSFaultTimes < T_0_5s
)
if
(
g_revMeter
.
CurBoardVal
>
300
)
{
g_LED.ABSFaultTimes ++;
if
(
g_LED
.
pTFTOilTime
<
T_15_0s
)
{
g_LED
.
pTFTOilTime
++
;
}
}
else
{
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
{
if(g_LED.pSafeBelt1Time < T_0_5s)
{
g_LED.pSafeBelt1Time ++;
g_LED
.
pTFTOilTime
=
0
;
}
}
else
{
g_LED.p
SafeBelt1
Time = null;
g_LED
.
p
TFTOil
Time
=
null
;
}
//
机油压力-
if
(pOilIn == LOW
)
//
制动蹄片磨损+
if
(
LINE_IN_HOOVES
==
HIGH
)
{
if
(g_LED.pOil
Time < T_0_5s)
if
(
g_LED
.
pBrakeShoe
Time
<
T_0_5s
)
{
g_LED.p
OilTime
++;
g_LED
.
p
BrakeShoeTime
++
;
}
}
else
{
g_LED.p
Oil
Time = null;
g_LED
.
p
BrakeShoe
Time
=
null
;
}
//机油压力-TFT
if(((pOilIn == LOW) && ((ConfigItem.EngConfig == 1)||(ConfigItem.EngConfig == 11)||(ConfigItem.EngConfig == 12)))||
((g_CanSwith.OilLamp) && (((ConfigItem.EngConfig >= 2) && (ConfigItem.EngConfig <= 5))||(ConfigItem.EngConfig == 9)||(ConfigItem.EngConfig == 10))))
{
if(g_revMeter.CurBoardVal > 300)
//取力器-
if
(
LINE_IN_Power_takeoff
==
HIGH
)
{
if(g_LED.pTFTOilTime < T_15_0
s)
if
(
g_LED
.
pPowerTakeoffTime
<
T_0_5
s
)
{
g_LED.pTFTOilTime
++;
g_LED
.
pPowerTakeoffTime
++
;
}
}
else
{
g_LED.pTFTOilTime = 0;
g_LED
.
pPowerTakeoffTime
=
null
;
}
/*
//EBD-pin5
if(pBrakeIn == LOW)
{
if(g_LED.pBrakeTime < T_0_5s)
{
g_LED.pBrakeTime ++;
}
}
else
{
g_LED.p
TFTOil
Time = null;
g_LED.p
Brake
Time = null;
}
//排气制动+
if(pExhaustBrakIn == HIGH)
//ABS
if(pABSIn == LOW)
{
if(g_LED.
pExhaustBrakTime
< T_0_5s)
if(g_LED.
ABSFaultTimes
< T_0_5s)
{
g_LED.
pExhaustBrakTime
++;
g_LED.
ABSFaultTimes
++;
}
}
else
{
g_LED.
pExhaustBrakTime
= null;
g_LED.
ABSFaultTimes
= null;
}
//
制动蹄片磨损+
if(p
BrakeShoeIn == HIGH
)
//
安全带
if(p
SafeBelt1In == LOW
)
{
if(g_LED.p
BrakeShoe
Time < T_0_5s)
if(g_LED.p
SafeBelt1
Time < T_0_5s)
{
g_LED.p
BrakeShoe
Time ++;
g_LED.p
SafeBelt1
Time ++;
}
}
else
{
g_LED.p
BrakeShoe
Time = null;
g_LED.p
SafeBelt1
Time = null;
}
//取力器-
if(pPTOIn == HIGH)
//排气制动+
if(pExhaustBrakIn == HIGH)
{
if(g_LED.p
PowerTakeoff
Time < T_0_5s)
if(g_LED.p
ExhaustBrak
Time < T_0_5s)
{
g_LED.p
PowerTakeoff
Time ++;
g_LED.p
ExhaustBrak
Time ++;
}
}
else
{
g_LED.p
PowerTakeoff
Time = null;
g_LED.p
ExhaustBrak
Time = null;
}
//驾驶室锁止-
...
...
app_Headers/g_VarType.h
View file @
80ab578f
...
...
@@ -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
...
...
app_Sources/app_System.c
View file @
80ab578f
...
...
@@ -5,7 +5,6 @@
* Author: QTC
*/
#define GLOBALS_APP_System
#include "defines.h"
#include "g_includes.h"
...
...
@@ -24,27 +23,27 @@ void App_Paramer_Init(void)
INT8U
i
;
//-- 主界面初始化 --//
if
((
ConfigItem
.
GasConfig
==
1
)
&&
((
ConfigItem
.
AdblueConfig
==
0
)
||
(
ConfigItem
.
AdblueConfig
==
1
)))
if
((
ConfigItem
.
GasConfig
==
1
)
&&
((
ConfigItem
.
AdblueConfig
==
0
)
||
(
ConfigItem
.
AdblueConfig
==
1
)))
{
g_Style
=
1
;
//气压 + adblue
g_Style
=
1
;
//气压 + adblue
}
else
if
((
ConfigItem
.
GasConfig
==
0
)
&&
((
ConfigItem
.
AdblueConfig
==
0
)
||
(
ConfigItem
.
AdblueConfig
==
1
)))
else
if
((
ConfigItem
.
GasConfig
==
0
)
&&
((
ConfigItem
.
AdblueConfig
==
0
)
||
(
ConfigItem
.
AdblueConfig
==
1
)))
{
g_Style
=
2
;
//adblue
g_Style
=
2
;
//adblue
}
else
if
((
ConfigItem
.
GasConfig
==
1
)
&&
((
ConfigItem
.
AdblueConfig
!=
0
)
&&
(
ConfigItem
.
AdblueConfig
!=
1
)))
else
if
((
ConfigItem
.
GasConfig
==
1
)
&&
((
ConfigItem
.
AdblueConfig
!=
0
)
&&
(
ConfigItem
.
AdblueConfig
!=
1
)))
{
g_Style
=
3
;
//气压
g_Style
=
3
;
//气压
}
else
{
g_Style
=
0
;
//只有"油耗"
g_Style
=
0
;
//只有"油耗"
}
if
(
g_Style
==
1
)
if
(
g_Style
==
1
)
{
//气压 + adblue
if
(
bCurMenuIDX
>=
_MN_DSP_SCREEN1_1
)
//记住上次KL15位置
if
(
bCurMenuIDX
>=
_MN_DSP_SCREEN1_1
)
//记住上次KL15位置
{
bCurMenuIDX
=
_MN_DSP_SCREEN1
;
bNextMenuIDX
=
_MN_DSP_SCREEN1
;
...
...
@@ -54,7 +53,7 @@ void App_Paramer_Init(void)
else
{
//气压/adblue
if
((
bCurMenuIDX
!=
_MN_DSP_SCREEN1_1
)
&&
(
bCurMenuIDX
!=
_MN_DSP_SCREEN3_1
)
&&
(
bCurMenuIDX
!=
_MN_DSP_SCREEN2_1
))
//记住上次KL15位置
if
((
bCurMenuIDX
!=
_MN_DSP_SCREEN1_1
)
&&
(
bCurMenuIDX
!=
_MN_DSP_SCREEN3_1
)
&&
(
bCurMenuIDX
!=
_MN_DSP_SCREEN2_1
))
//记住上次KL15位置
{
bCurMenuIDX
=
_MN_DSP_SCREEN1_1
;
bNextMenuIDX
=
_MN_DSP_SCREEN1_1
;
...
...
@@ -69,49 +68,49 @@ void App_Paramer_Init(void)
SetMeuMsg
.
SoftWareVersion
=
314
;
//修正因子
if
(
ConfigItem
.
EngConfig
==
0
)
if
(
ConfigItem
.
EngConfig
==
0
)
{
ConfigItem
.
FuelCosumConfig
=
6
;
//0.695L
ConfigItem
.
FuelCosumConfig
=
6
;
//0.695L
}
else
if
(
ConfigItem
.
EngConfig
==
1
)
else
if
(
ConfigItem
.
EngConfig
==
1
)
{
ConfigItem
.
FuelCosumConfig
=
6
;
//0.66L
ConfigItem
.
FuelCosumConfig
=
6
;
//0.66L
}
else
if
(
ConfigItem
.
EngConfig
==
2
)
else
if
(
ConfigItem
.
EngConfig
==
2
)
{
ConfigItem
.
FuelCosumConfig
=
7
;
//0.7975L
ConfigItem
.
FuelCosumConfig
=
7
;
//0.7975L
}
else
if
(
ConfigItem
.
EngConfig
==
3
)
else
if
(
ConfigItem
.
EngConfig
==
3
)
{
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
}
else
if
(
ConfigItem
.
EngConfig
==
4
)
else
if
(
ConfigItem
.
EngConfig
==
4
)
{
ConfigItem
.
FuelCosumConfig
=
10
;
//1.055L
ConfigItem
.
FuelCosumConfig
=
10
;
//1.055L
}
else
if
(
ConfigItem
.
EngConfig
==
5
)
else
if
(
ConfigItem
.
EngConfig
==
5
)
{
ConfigItem
.
FuelCosumConfig
=
10
;
//1.04L
ConfigItem
.
FuelCosumConfig
=
10
;
//1.04L
}
else
if
(
ConfigItem
.
EngConfig
==
9
)
else
if
(
ConfigItem
.
EngConfig
==
9
)
{
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
}
else
if
(
ConfigItem
.
EngConfig
==
10
)
else
if
(
ConfigItem
.
EngConfig
==
10
)
{
ConfigItem
.
FuelCosumConfig
=
7
;
//0.7975L
ConfigItem
.
FuelCosumConfig
=
7
;
//0.7975L
}
else
if
(
ConfigItem
.
EngConfig
==
11
)
else
if
(
ConfigItem
.
EngConfig
==
11
)
{
ConfigItem
.
FuelCosumConfig
=
6
;
//0.66L
ConfigItem
.
FuelCosumConfig
=
6
;
//0.66L
}
else
if
(
ConfigItem
.
EngConfig
==
12
)
else
if
(
ConfigItem
.
EngConfig
==
12
)
{
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
ConfigItem
.
FuelCosumConfig
=
7
;
//0.765L
}
else
{
ConfigItem
.
FuelCosumConfig
=
7
;
//default: 0.7975L
ConfigItem
.
FuelCosumConfig
=
7
;
//default: 0.7975L
}
//-- Can --//
...
...
@@ -123,8 +122,8 @@ void App_Paramer_Init(void)
//g_canClock.ID65310Cn = 100 + T_Can3_5s;//T,200ms drop,2s
//g_canClock.ID65042Cn = 100 + T_Can3_5s;//T,200ms drop,2s
g_canClock
.
ID64775_00Cn
=
500
+
T_Can3_5s
;
//T,1000ms
g_canClock
.
ID65226CnECM
=
500
+
T_Can3_5s
;
//T,1000ms
g_canClock
.
ID64775_00Cn
=
500
+
T_Can3_5s
;
//T,1000ms
g_canClock
.
ID65226CnECM
=
500
+
T_Can3_5s
;
//T,1000ms
//g_canClock.ID65226CnDCU = 500 + T_Can3_5s;//T,1000ms
//g_canClock.ID65268Cn = 100 + T_Can3_5s;//T,200ms drop,2s
...
...
@@ -139,8 +138,8 @@ void App_Paramer_Init(void)
g_LED
.
pMILOffTime3
=
T_3_5s
;
//-- Cruise --//
bCruiseClrScreen1
=
0
;
bCruiseClrScreen
=
1
;
bCruiseClrScreen1
=
0
;
bCruiseClrScreen
=
1
;
g_ClearCruise
=
1
;
bCruiseSpeedLast
=
0xffff
;
...
...
@@ -160,12 +159,12 @@ void App_Paramer_Init(void)
g_EEaccKmClrStep
=
Disable
;
g_sysFlag
.
Bits
.
EEAccSaveState
=
Disable
;
g_Clock
.
TempFaultTimes
=
0
;
g_Clock
.
TempReleaseTimes
=
0
;
g_Clock
.
TempFaultTimes
=
0
;
g_Clock
.
TempReleaseTimes
=
0
;
g_CanSwith
.
ClrScreenDoor
=
1
;
Disable_signal
(
g_sysFlag
.
Bits
.
TempLedEn
);
g_ClearWin1
=
1
;
if
(
!
g_sysFlag
.
Bits
.
WakeUpState
)
if
(
!
g_sysFlag
.
Bits
.
WakeUpState
)
{
Enable_signal
(
g_sysFlag
.
Bits
.
CanWakeUp
);
}
...
...
@@ -205,27 +204,27 @@ void App_Paramer_Init(void)
g_tempMeter
.
CurPosition
=
null
;
g_tempMeter
.
CurBoardVal
=
null
;
g_tempMeter
.
MoveEn
=
Disable
;
g_tempMeter
.
DispPosition
=
null
;
g_tempMeter
.
DispPosition
=
null
;
g_gas1Meter
.
Dir
=
keep_local
;
g_gas1Meter
.
DestPosition
=
null
;
g_gas1Meter
.
CurPosition
=
null
;
g_gas1Meter
.
CurBoardVal
=
null
;
g_gas1Meter
.
MoveEn
=
Disable
;
g_gas1Meter
.
DispPosition
=
null
;
g_gas1Meter
.
DispPosition
=
null
;
g_gas2Meter
.
Dir
=
keep_local
;
g_gas2Meter
.
DestPosition
=
null
;
g_gas2Meter
.
CurPosition
=
null
;
g_gas2Meter
.
CurBoardVal
=
null
;
g_gas2Meter
.
MoveEn
=
Disable
;
g_gas2Meter
.
DispPosition
=
null
;
g_gas2Meter
.
DispPosition
=
null
;
g_adblueMeter
.
Dir
=
keep_local
;
g_adblueMeter
.
DestPosition
=
null
;
g_adblueMeter
.
CurPosition
=
null
;
g_adblueMeter
.
CurBoardVal
=
null
;
g_adblueMeter
.
MoveEn
=
Disable
;
g_adblueMeter
.
DispPosition
=
null
;
g_adblueMeter
.
DispPosition
=
null
;
//-- Start --//
g_LED
.
pStartTime
=
null
;
...
...
@@ -238,9 +237,9 @@ void App_Paramer_Init(void)
g_accKmClrStep
=
null
;
ODO_Updeta
;
Trip_Updeta
;
InstFuel_Updeta
;
InstFuel_Updeta
;
AveFuel_Updeta
;
DirKm_Updeta
;
DirKm_Updeta
;
Gas1_Updeta
;
Gas2_Updeta
;
Adblue_Updeta
;
...
...
@@ -250,19 +249,19 @@ void App_Paramer_Init(void)
Enable_signal
(
g_sysFlag
.
Bits
.
LowModeInit
);
//-- alarm --//
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
{
bDSTable
[
i
]
=
0
;
}
bDSTableShowTime
[
PicDrSafeBelt
]
=
0
;
bDSTableShowTime
[
PicExHaustBrake
]
=
0
;
bDSTableShowTime
[
PicPowerTakeoff
]
=
0
;
bDSTableShowTime
[
PicOverSpeed
]
=
0
;
bDSTableShowTime
[
PicDrSafeBelt
]
=
0
;
bDSTableShowTime
[
PicExHaustBrake
]
=
0
;
bDSTableShowTime
[
PicPowerTakeoff
]
=
0
;
bDSTableShowTime
[
PicOverSpeed
]
=
0
;
bCurDsPos
=
255
;
bLcdDsCnt
=
0
;
//-- Beep --//
for
(
i
=
0
;
i
<
21
;
i
++
)
for
(
i
=
0
;
i
<
21
;
i
++
)
{
g_Beep
[
i
].
Prio
=
DisAlr
;
g_Beep
[
i
].
OnTime
=
null
;
...
...
@@ -293,7 +292,7 @@ void App_Paramer_Init(void)
//-- FuelEco --//
g_fuelEco
.
VehNullTime
=
0
;
//if(g_fuelEco.KeyOffTime > T_2_0hour)
if
(
g_fuelEco
.
KeyOffTime
>
14400
)
if
(
g_fuelEco
.
KeyOffTime
>
14400
)
{
g_fuelEco
.
SRFCTime
=
null
;
g_fuelEco
.
FuelSum1
=
null
;
...
...
@@ -314,8 +313,8 @@ void App_Paramer_Init(void)
ClrAveFuel1
=
1
;
ClrAveFuel
=
1
;
g_FuelAlarm
=
Disable
;
bSendFlag
=
0
;
APPSendMsgInit
=
0
;
bSendFlag
=
0
;
APPSendMsgInit
=
0
;
g_30LOGOFlag
=
0
;
WriteleFlag2E
=
0
;
...
...
@@ -355,8 +354,12 @@ void App_State_OFF(void)
//-- Can Clear All --//
g_CanSwith
.
CabLock
=
0
;
g_CanSwith
.
ABSLamp
=
0
;
g_CanSwith
.
ABSLamp1
=
0
;
g_CanSwith
.
VacuumCylinder
=
0
;
g_CanSwith
.
OilLamp
=
0
;
g_CanSwith
.
OilLamp1
=
0
;
g_CanSwith
.
ExhaustBrake
=
0
;
g_CanSwith
.
DriverBelt
=
0
;
g_CanSwith
.
SCR_Y
=
0
;
...
...
@@ -422,7 +425,7 @@ void App_State_OFF(void)
g_LED
.
pBrakeShoeTime
=
null
;
g_LED
.
pAirFilterTime
=
null
;
g_LED
.
pPowerTakeoffTime
=
null
;
g_LED
.
pDiffLockTime
=
null
;
//关充放电指示灯
g_LED
.
pDiffLockTime
=
null
;
//关充放电指示灯
g_CanSwith
.
LDWSstate
=
null
;
g_CanSwith
.
AmberState_E8
=
null
;
g_CanSwith
.
LDWScloseLCD
=
null
;
...
...
@@ -447,20 +450,20 @@ void App_State_OFF(void)
bUpDataGears
=
2
;
//-- off清队列 --//
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
{
_FEED_COP
();
bDSTable
[
i
]
=
0
;
bDSTable
[
i
]
=
0
;
}
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
{
_FEED_COP
();
wDS_LcdQueue
[
i
]
=
0
;
wDS_LcdQueue
[
i
]
=
0
;
}
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
for
(
i
=
0
;
i
<
TotalPicWarn
;
i
++
)
{
_FEED_COP
();
bDSTableShowTime
[
i
]
=
0
;
bDSTableShowTime
[
i
]
=
0
;
}
bCurDsPos
=
255
;
bLcdDsCnt
=
0
;
...
...
@@ -484,12 +487,11 @@ void App_State_OFF(void)
g_accTime
=
null
;
EcuDuty
=
0xffffffff
;
RadarBuzzerFlag
=
0
;
g_30LOGOFlag
=
0
;
g_30LOGOFlag
=
0
;
Enable_signal
(
g_sysFlag
.
Bits
.
LowModeInit
);
g_validFlag
.
Bits
.
BD8379Init
=
Enable
;
g_validFlag
.
Bits
.
BD8379Init
=
Enable
;
g_LED
.
pStartTime
=
null
;
g_LED
.
pStopTime
=
T_3_5s
;
}
/*-------------------------------------------------------------------------
* Function Name : App_State_OFF_Run
...
...
@@ -515,7 +517,7 @@ void App_StarUpInfo(void)
{
g_30LOGOFlag
=
0
;
pSTBOut
=
LOW
;
WriteleFlag2E
=
0
;
WriteleFlag2E
=
0
;
Enable_signal
(
g_validFlag
.
Bits
.
OffUpFuelSts
);
Enable_signal
(
g_sysFlag
.
Bits
.
NetCtlKeep
);
Enable_signal
(
g_sysFlag
.
Bits
.
BeepProcEn
);
...
...
@@ -528,10 +530,9 @@ void App_StarUpInfo(void)
Disable_signal
(
g_revMeter
.
MakeZero
);
g_runStep
=
SYS_INIT_TASK
;
g_sysFlag
.
Bits
.
CanWakeUp
=
CanWakeUpEn
;
g_sysFlag
.
Bits
.
CanWakeUp
=
CanWakeUpEn
;
g_sysFlag
.
Bits
.
CanState
=
CanOFF
;
Enable_signal
(
g_sysFlag
.
Bits
.
SysOffEn
);
Enable_signal
(
g_sysFlag
.
Bits
.
LowModeInit
);
...
...
@@ -544,7 +545,7 @@ void App_StarUpInfo(void)
EcuDuty
=
0xffffffff
;
SetMeuMsg
.
BackLightLevel
=
4
;
if
(
g_pBeep
->
Prio
!=
DisAlr
)
if
(
g_pBeep
->
Prio
!=
DisAlr
)
{
g_pBeep
=
&
g_nopBeep
;
}
...
...
@@ -554,12 +555,12 @@ void App_StarUpInfo(void)
g_fuelEco
.
Dis100Km
=
0
;
g_fuelEco
.
FuelSum1
=
0
;
g_fuelEco
.
Dis100Km1
=
0
;
g_fuelEco
.
DispAveFuel
=
0
;
g_fuelEco
.
DispSRFC
=
0
;
g_fuelEco
.
DispAveFuel
=
0
;
g_fuelEco
.
DispSRFC
=
0
;
RamShortAccKmA
=
0
;
SetMeuMsg
.
Language
=
1
;
bSendFlag
=
0
;
APPSendMsgInit
=
0
;
bSendFlag
=
0
;
APPSendMsgInit
=
0
;
//-- Diagnose --//
ECUNum
[
0
]
=
0x11
;
...
...
@@ -640,7 +641,7 @@ void App_Load_Data(void)
g_revMeterInfo
.
DashStep
[
7
]
=
2880
;
//-- Temp --//
if
(
ConfigItem
.
TempConfig
==
0
)
//报警点为100
if
(
ConfigItem
.
TempConfig
==
0
)
//报警点为100
{
g_tempMeterInfo
.
bVirtualVal
=
7
;
...
...
@@ -662,7 +663,7 @@ void App_Load_Data(void)
g_tempMeterInfo
.
DashStep
[
6
]
=
160
;
g_tempMeterInfo
.
DashStep
[
7
]
=
0
;
}
else
if
(
ConfigItem
.
TempConfig
==
1
)
//报警点为104
else
if
(
ConfigItem
.
TempConfig
==
1
)
//报警点为105
{
g_tempMeterInfo
.
bVirtualVal
=
7
;
...
...
@@ -672,7 +673,7 @@ void App_Load_Data(void)
g_tempMeterInfo
.
Resistor
[
3
]
=
80
;
g_tempMeterInfo
.
Resistor
[
4
]
=
100
;
g_tempMeterInfo
.
Resistor
[
5
]
=
102
;
g_tempMeterInfo
.
Resistor
[
6
]
=
104
;
g_tempMeterInfo
.
Resistor
[
6
]
=
105
;
g_tempMeterInfo
.
Resistor
[
7
]
=
0
;
g_tempMeterInfo
.
DashStep
[
0
]
=
0
;
...
...
@@ -684,7 +685,7 @@ void App_Load_Data(void)
g_tempMeterInfo
.
DashStep
[
6
]
=
160
;
g_tempMeterInfo
.
DashStep
[
7
]
=
0
;
}
else
if
(
ConfigItem
.
TempConfig
==
2
)
//报警点为105
else
if
(
ConfigItem
.
TempConfig
==
2
)
//报警点为105
{
g_tempMeterInfo
.
bVirtualVal
=
8
;
...
...
@@ -706,7 +707,7 @@ void App_Load_Data(void)
g_tempMeterInfo
.
DashStep
[
6
]
=
140
;
g_tempMeterInfo
.
DashStep
[
7
]
=
160
;
}
else
if
(
ConfigItem
.
TempConfig
==
3
)
//报警点为110
else
if
(
ConfigItem
.
TempConfig
==
3
)
//报警点为110
{
g_tempMeterInfo
.
bVirtualVal
=
8
;
...
...
@@ -728,7 +729,7 @@ void App_Load_Data(void)
g_tempMeterInfo
.
DashStep
[
6
]
=
140
;
g_tempMeterInfo
.
DashStep
[
7
]
=
160
;
}
else
if
(
ConfigItem
.
TempConfig
==
4
)
//报警点为120
else
if
(
ConfigItem
.
TempConfig
==
4
)
//报警点为120
{
g_tempMeterInfo
.
bVirtualVal
=
7
;
...
...
gui_Sources/gui_Led.c
View file @
80ab578f
...
...
@@ -49,13 +49,20 @@ void Gui_KL15LedDisplay(void)
{
//---------直驱指示灯------
//01 取力器工作
if
(
1
)
if
(
g_LED
.
pPowerTakeoffTime
>=
T_0_3s
)
{
LED_Power_TakeOFF_Out
=
LEDON
;
//on
if
(
bCurMenuIDX
!=
_MN_SHOW_ERRINFO
)
bDSTable
[
PicPowerTakeoff
]
|=
DS0_MASK
;
if
((
bDSTableShowTime
[
PicPowerTakeoff
]
==
T1_5s
)
&&
((
bDSTable
[
PicPowerTakeoff
]
&
DS0_MASK
)
==
DS0_MASK
))
bDSTable
[
PicPowerTakeoff
]
=
0
;
}
else
{
LED_Power_TakeOFF_Out
=
LEDOFF
;
//off
bDSTable
[
PicPowerTakeoff
]
=
0
;
bDSTableShowTime
[
PicPowerTakeoff
]
=
0
;
}
//08 安全带
...
...
@@ -69,7 +76,7 @@ void Gui_KL15LedDisplay(void)
}
//09 充电状态——指示灯 不受软件控制
//19 发动机排气系统温度高——指示灯
if
(
1
)
if
(
g_CanSwith
.
DpfHiTemp
==
0x01u
)
{
LED_EXCSysHighTemp_OUT
=
LEDON
;
//on
}
...
...
@@ -141,14 +148,24 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D1 油含水 15 油水分离
if
(
Test_Hyq
)
if
(
(
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
)
)
{
BD83790A
|=
BD8379_D1
;
//on
}
else
{
if
(
g_CanSwith
.
WIF
)
{
BD83790A
|=
BD8379_D1
;
//on
bDSTable
[
PicWIF
]
|=
DS0_MASK
;
}
else
{
BD83790A
&=
~
BD8379_D1
;
//off
bDSTable
[
PicWIF
]
=
0
;
}
}
//BD8379_D2 Svs灯 25 发动机保护灯
if
(
Test_Hyq
)
{
...
...
@@ -158,8 +175,22 @@ void Gui_KL15LedDisplay(void)
{
BD83790A
&=
~
BD8379_D2
;
//off
}
//BD8379_D3 20 驾驶员警告
if
(
Test_Hyq
)
if
((
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
))
{
BD83790A
|=
BD8379_D3
;
//on
}
else
{
if
(
g_CanSwith
.
DriverWarn
==
S_on
)
{
BD83790A
|=
BD8379_D3
;
//on
}
else
if
(
g_CanSwith
.
DriverWarn
==
S_Flash
)
{
//Flash
if
(
g_CanSwith
.
OutFlashFlag
)
{
BD83790A
|=
BD8379_D3
;
//on
}
...
...
@@ -167,6 +198,13 @@ void Gui_KL15LedDisplay(void)
{
BD83790A
&=
~
BD8379_D3
;
//off
}
}
else
{
BD83790A
&=
~
BD8379_D3
;
//off
}
}
//BD8379_D4 预留
if
(
Test_Hyq
)
{
...
...
@@ -176,8 +214,11 @@ void Gui_KL15LedDisplay(void)
{
BD83790A
&=
~
BD8379_D4
;
//off
}
//BD8379_D5 水温报警灯 5 发动机水温高
if
(
Test_Hyq
)
if
(
DIDFlag
.
Bits
.
DID102CValid
==
Enable
)
{
if
(
IOCTL_DID102C
.
FF_Byte
==
1
)
{
BD83790A
|=
BD8379_D5
;
//on
}
...
...
@@ -185,8 +226,81 @@ void Gui_KL15LedDisplay(void)
{
BD83790A
&=
~
BD8379_D5
;
//off
}
//BD8379_D6 24 巡航指示灯
if
(
Test_Hyq
)
}
else
{
if
((
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
))
{
BD83790A
|=
BD8379_D5
;
//on
}
else
{
if
((
g_canClock
.
signal
.
Exist65262
)
&&
(
!
g_sysFlag
.
Bits
.
TempMeterInit
)
&&
(
CheckStep
==
2
))
{
if
(
g_tempMeter
.
CurPosition
>=
160
)
//8格点亮
{
BD83790A
|=
BD8379_D5
;
//on
bDSTable
[
PicTempHigh
]
|=
DS0_MASK
;
}
else
{
if
(
ConfigItem
.
TempConfig
==
0
)
{
if
(
g_tempMeter
.
CurPosition
<=
133
)
//解报98degC
{
BD83790A
&=
~
BD8379_D5
;
//off
bDSTable
[
PicTempHigh
]
=
0
;
}
}
else
if
(
ConfigItem
.
TempConfig
==
1
)
{
if
(
g_tempMeter
.
CurPosition
<=
120
)
//解报102degC
{
BD83790A
&=
~
BD8379_D5
;
//off
bDSTable
[
PicTempHigh
]
=
0
;
}
}
else
if
(
ConfigItem
.
TempConfig
==
2
)
{
if
(
g_tempMeter
.
CurPosition
<=
130
)
//解报103degC
{
BD83790A
&=
~
BD8379_D5
;
//off
bDSTable
[
PicTempHigh
]
=
0
;
}
}
else
if
(
ConfigItem
.
TempConfig
==
3
)
{
if
(
g_tempMeter
.
CurPosition
<=
140
)
//解报108degC
{
BD83790A
&=
~
BD8379_D5
;
//off
bDSTable
[
PicTempHigh
]
=
0
;
}
}
else
if
(
ConfigItem
.
TempConfig
==
4
)
{
if
(
g_tempMeter
.
CurPosition
<=
155
)
//解报118degC
{
BD83790A
&=
~
BD8379_D5
;
//off
bDSTable
[
PicTempHigh
]
=
0
;
}
}
else
{
;
}
}
}
else
{
BD83790A
&=
~
BD8379_D5
;
//off
}
}
}
//BD8379_D6 24 巡航指示灯 定速巡航
if
(
DIDFlag
.
Bits
.
DID1018Valid
==
Enable
)
{
if
(
IOCTL_DID1018
.
FF_Byte
==
1
)
{
BD83790A
|=
BD8379_D6
;
//on
}
...
...
@@ -194,6 +308,44 @@ void Gui_KL15LedDisplay(void)
{
BD83790A
&=
~
BD8379_D6
;
//off
}
}
else
{
if
(
g_CanSwith
.
CruSysAct
)
{
BD83790A
|=
BD8379_D6
;
//on
}
else
{
BD83790A
&=
~
BD8379_D6
;
//off
}
//定速巡航-LCD
if
((
g_CanSwith
.
CruSysAct
)
&&
(
bCruiseSpeedCur
>=
30
)
&&
(
bCruiseSpeedCur
<=
250
))
{
if
(
bCruiseSpeedLast
!=
bCruiseSpeedCur
)
{
//非故障信息界面-插入显示
if
(
bCurMenuIDX
!=
_MN_SHOW_ERRINFO
)
bDSTable
[
PicCruise
]
|=
DS0_MASK
;
bDSTableShowTime
[
PicCruise
]
=
0
;
bDSUpdateFlag
=
1
;
bCruiseSpeedLast
=
bCruiseSpeedCur
;
}
//显示完删除队列-N
if
((
bDSTableShowTime
[
PicCruise
]
==
T1_5s
)
&&
((
bDSTable
[
PicCruise
]
&
DS0_MASK
)
==
DS0_MASK
))
bDSTable
[
PicCruise
]
=
0
;
}
else
{
bCruiseSpeedLast
=
0xffff
;
g_ClearCruise
=
1
;
bDSTable
[
PicCruise
]
=
0
;
}
}
//BD8379_D7 17 EPS故障
if
(
Test_Hyq
)
{
...
...
@@ -220,16 +372,16 @@ void Gui_KL15LedDisplay(void)
{
if
((
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
))
{
if
((
ConfigItem
.
ABS_ESCConfig
==
0
)
||
(
ConfigItem
.
ABS_ESCConfig
==
1
)
||
(
ConfigItem
.
ABS_ESCConfig
==
2
)
)
if
((
ConfigItem
.
ABS_ESCConfig
==
0
)
||
(
ConfigItem
.
ABS_ESCConfig
==
1
))
{
BD83790A
|=
BD8379_D8
;
//on
}
}
else
{
if
(
(
ConfigItem
.
ABS_ESCConfig
==
0
)
||
(
ConfigItem
.
ABS_ESCConfig
==
1
)
||
(
ConfigItem
.
ABS_ESCConfig
==
2
)
)
if
(
ConfigItem
.
ABS_ESCConfig
==
0
)
{
//
can
//
ABS_warn_lamp 0x18F0010B 5 46 2
if
(
g_CanSwith
.
ABSLamp
==
1u
)
{
BD83790A
|=
BD8379_D8
;
//on
...
...
@@ -243,6 +395,22 @@ void Gui_KL15LedDisplay(void)
DTC_ABSErrFlag
=
Disable
;
}
}
else
if
(
ConfigItem
.
ABS_ESCConfig
==
1
)
{
//ABS_active 0x18F0010B 0 4 2
if
(
g_CanSwith
.
ABSLamp1
==
1u
)
{
BD83790A
|=
BD8379_D8
;
//on
bDSTable
[
PicABS
]
|=
DS0_MASK
;
DTC_ABSErrFlag
=
Enable
;
}
else
{
BD83790A
&=
~
BD8379_D8
;
//off
bDSTable
[
PicABS
]
=
0
;
DTC_ABSErrFlag
=
Disable
;
}
}
else
{
;
...
...
@@ -327,7 +495,7 @@ void Gui_KL15LedDisplay(void)
else
if
((
ConfigItem
.
EngConfig
==
0
)
||
(
ConfigItem
.
EngConfig
==
1
))
{
//if ((g_LED.pMILOffTime1 >= T_2_0s) && (OBDLamp == 0))
if
(
g_LED
.
pMILOffTime1
>=
T_2_0s
)
if
(
g_LED
.
pMILOffTime1
>=
T_2_0s
)
//延时熄灭
{
BD83790B
&=
~
BD8379_D0
;
//off
DTC_OBDErrFlag
=
Disable
;
...
...
@@ -355,13 +523,34 @@ void Gui_KL15LedDisplay(void)
BD83790B
&=
~
BD8379_D1
;
//off
}
//BD8379_D2 预热指示灯 14 发动机预热
if
(
Test_Hyq
)
if
(
DIDFlag
.
Bits
.
DID102AValid
==
Enable
)
{
if
(
IOCTL_DID102A
.
FF_Byte
==
1
)
{
BD83790B
|=
BD8379_D2
;
//on
BD83790A
|=
BD8379_D2
;
//on
}
else
{
BD83790B
&=
~
BD8379_D2
;
//off
BD83790A
&=
~
BD8379_D2
;
//off
}
}
else
{
if
((
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
))
{
BD83790A
|=
BD8379_D2
;
//on
}
else
{
if
(
g_CanSwith
.
PreHeat
)
{
BD83790A
|=
BD8379_D2
;
//on
}
else
{
BD83790A
&=
~
BD8379_D2
;
//off
}
}
}
//BD8379_D3 预留2
if
(
Test_Hyq
)
...
...
@@ -394,17 +583,59 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D6 11 发动机故障
if
(
Test_Hyq
)
if
(
(
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
)
)
{
BD83790B
|=
BD8379_D6
;
//on
}
else
if
((
ConfigItem
.
EngConfig
==
0
)
||
(
ConfigItem
.
EngConfig
==
1
))
//?ó?????????ó????
{
if
(
g_canClock
.
signal
.
Exist64775_00
)
{
if
(
g_CanSwith
.
EngFailure1
)
{
BD83790B
|=
BD8379_D6
;
//on
bDSTable
[
PicEPC
]
|=
DS0_MASK
;
DTC_EPCErrFlag
=
Enable
;
}
else
{
BD83790B
&=
~
BD8379_D6
;
//off
bDSTable
[
PicEPC
]
=
0
;
DTC_EPCErrFlag
=
Disable
;
}
}
else
//掉线点亮
{
BD83790B
|=
BD8379_D6
;
//on
bDSTable
[
PicEPC
]
=
0
;
DTC_EPCErrFlag
=
Enable
;
}
}
//BD8379_D7 机油报警 3 低油压报警
if
(
Test_Hyq
)
if
(
DIDFlag
.
Bits
.
DID100BValid
==
Enable
)
{
if
(
IOCTL_DID100B
.
FF_Byte
==
1
)
{
BD83790B
|=
BD8379_D7
;
//on
}
else
{
BD83790B
&=
~
BD8379_D7
;
//off
}
}
else
{
if
((
g_LED
.
CheckLightsTime
<
T_CheckTime
)
&&
(
g_revMeter
.
CurBoardVal
<
300
))
{
BD83790B
|=
BD8379_D7
;
//on
}
else
{
if
(((
g_LED
.
pOilTime
>=
T_0_5s
)
&&
(
ConfigItem
.
EngConfig
==
3
))
||
((
g_CanSwith
.
OilLamp
)
&&
((
ConfigItem
.
EngConfig
==
0
)
||
(
ConfigItem
.
EngConfig
==
1
)))
||
((
g_CanSwith
.
OilLamp1
)
&&
(
ConfigItem
.
EngConfig
==
2
)))
{
BD83790B
|=
BD8379_D7
;
//on
}
...
...
@@ -413,18 +644,45 @@ void Gui_KL15LedDisplay(void)
BD83790B
&=
~
BD8379_D7
;
//off
}
//机油压力低-LCD
if
(
g_LED
.
pTFTOilTime
>
T_10_0s
)
{
bDSTable
[
PicOilLow
]
|=
DS0_MASK
;
}
else
{
bDSTable
[
PicOilLow
]
=
0
;
}
}
}
//BD8379_D8 18 DPF再生(黄色)
if
(
Test_Hyq
)
if
(
g_CanSwith
.
DPF
||
g_CanSwith
.
DPFf
)
{
if
(
g_CanSwith
.
DPF
)
{
BD83790B
|=
BD8379_D8
;
//on
}
else
{
if
(
g_CanSwith
.
OutFlashFlag
)
{
BD83790B
|=
BD8379_D8
;
//on
}
else
{
BD83790B
&=
~
BD8379_D8
;
//off
}
}
}
else
{
BD83790B
&=
~
BD8379_D8
;
//off
}
//BD8379_D9 21 DPF再生(红色)
if
(
Test_Hyq
)
if
(
g_CanSwith
.
DPF_Red
)
{
BD83790B
|=
BD8379_D9
;
//on
}
...
...
@@ -434,15 +692,16 @@ void Gui_KL15LedDisplay(void)
}
//BD8379_D10 12 制动蹄片磨损报警
if
(
Test_Hyq
)
if
(
(
g_LED
.
pBrakeShoeTime
>=
T_0_3s
)
&&
(
ConfigItem
.
BrakeShoeConfig
==
0x01
)
)
{
BD83790B
|=
BD8379_D10
;
//on
bDSTable
[
PicBrakePiece
]
|=
DS0_MASK
;
}
else
{
BD83790B
&=
~
BD8379_D10
;
//off
bDSTable
[
PicBrakePiece
]
=
0
;
}
//BD8379_D11 门开 门开在30电上
}
/*-------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment