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
Hide 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
#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
Sources/Fuel/FuelProcess.c
View file @
80ab578f
...
...
@@ -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
();
...
...
Sources/USER/System.c
View file @
80ab578f
...
...
@@ -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
);
}
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
...
...
@@ -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.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
.
pTFTOilTime
=
0
;
}
}
else
{
g_LED.ABSFaultTimes = null;
}
//安全带
if(pSafeBelt1In == LOW)
g_LED
.
pTFTOilTime
=
null
;
}
//制动蹄片磨损+
if
(
LINE_IN_HOOVES
==
HIGH
)
{
if
(g_LED.pSafeBelt1
Time < T_0_5s)
if
(
g_LED
.
pBrakeShoe
Time
<
T_0_5s
)
{
g_LED.p
SafeBelt1Time
++;
g_LED
.
p
BrakeShoeTime
++
;
}
}
else
{
g_LED.p
SafeBelt1
Time = null;
g_LED
.
p
BrakeShoe
Time
=
null
;
}
//
机油压力
-
if
(pOilIn == LOW
)
//
取力器
-
if
(
LINE_IN_Power_takeoff
==
HIGH
)
{
if
(g_LED.pOil
Time < T_0_5s)
if
(
g_LED
.
pPowerTakeoff
Time
<
T_0_5s
)
{
g_LED.p
OilTime
++;
g_LED
.
p
PowerTakeoffTime
++
;
}
}
else
{
g_LED.p
Oil
Time = null;
g_LED
.
p
PowerTakeoff
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))))
/*
//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.p
TFTOilTime = 0
;
g_LED.p
BrakeTime ++
;
}
}
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;
}
//
制动蹄片磨损+
if(p
BrakeShoeIn == HIGH
)
g_LED.
ABSFaultTimes
= null;
}
//
安全带
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;
}
//驾驶室锁止-
if(pCabLockIn == LOW)
{
...
...
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,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
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
{
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电上
}
/*-------------------------------------------------------------------------
...
...
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