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
4 years ago
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
This diff is collapsed.
Click to expand it.
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
();
...
...
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
...
...
This diff is collapsed.
Click to expand it.
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
...
...
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
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)
{
...
...
This diff is collapsed.
Click to expand it.
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
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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电上
}
/*-------------------------------------------------------------------------
...
...
This diff is collapsed.
Click to expand it.
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