Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiancetai
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
陈家乐
jiancetai
Commits
b8f8d517
Commit
b8f8d517
authored
Dec 04, 2024
by
何锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:完成按键设置主机蓝牙配置
parent
aff013f0
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
386 additions
and
112 deletions
+386
-112
API_CAN.c
Test_Bench/Api_Sources/API_CAN.c
+11
-4
API_LCD.c
Test_Bench/Api_Sources/API_LCD.c
+49
-32
APP_CAN.c
Test_Bench/Api_Sources/APP_CAN.c
+24
-1
APP_Data_Process.c
Test_Bench/Api_Sources/APP_Data_Process.c
+148
-49
APP_Test.c
Test_Bench/Api_Sources/APP_Test.c
+34
-20
APP_Data_Process.h
Test_Bench/App_Headers/APP_Data_Process.h
+86
-1
APP_Test.h
Test_Bench/App_Headers/APP_Test.h
+17
-0
Globals_Var.h
Test_Bench/App_Headers/Globals_Var.h
+4
-0
TBDML.ini
Test_Bench/TBDML.ini
+13
-5
No files found.
Test_Bench/Api_Sources/API_CAN.c
View file @
b8f8d517
...
@@ -189,12 +189,17 @@ interrupt void Api_CAN_Rev_isr(void)
...
@@ -189,12 +189,17 @@ interrupt void Api_CAN_Rev_isr(void)
INT32U
stand_id
;
INT32U
stand_id
;
INT8U
m_dlc
;
INT8U
m_dlc
;
stand_id
=
bsp_GET_EXTE
ND_ID
((
INT8U
*
)
&
CANRXIDR0
);
stand_id
=
Api_GET_STA
ND_ID
((
INT8U
*
)
&
CANRXIDR0
);
m_dlc
=
CANRXDLR_DLC
;
m_dlc
=
CANRXDLR_DLC
;
if
((
stand_id
==
0x380
)
||
(
stand_id
==
0x402
))
switch
(
stand_id
)
{
;
}
else
{
switch
(
stand_id
)
{
{
case
0x
18DAF917
:
//车速
case
0x
782
:
//车速
if
(
m_dlc
==
8
)
if
(
m_dlc
==
8
)
{
{
...
@@ -205,6 +210,8 @@ interrupt void Api_CAN_Rev_isr(void)
...
@@ -205,6 +210,8 @@ interrupt void Api_CAN_Rev_isr(void)
;
;
}
}
}
CANRFLG_RXF
=
ClearFlag
;
CANRFLG_RXF
=
ClearFlag
;
}
}
\ No newline at end of file
Test_Bench/Api_Sources/API_LCD.c
View file @
b8f8d517
...
@@ -46,47 +46,64 @@ void Api_LCD_Init(void)
...
@@ -46,47 +46,64 @@ void Api_LCD_Init(void)
--------------------------------------------------------------------------*/
--------------------------------------------------------------------------*/
void
Api_LCD_Display
(
void
)
void
Api_LCD_Display
(
void
)
{
{
LCDFP11BP
=
Matrix1
[(
Key
.
CAN_Step
/
10
)
%
10
]
>>
4
;
if
(
MP5_Flag
==
0
)
//0,空
LCDFP12BP
=
Matrix1
[(
Key
.
CAN_Step
/
10
)
%
10
];
{
LCDFP13BP
=
Matrix1
[(
0
)]
>>
4
;
LCDFP14BP
=
Matrix1
[(
0
)];
}
else
if
(
MP5_Flag
==
1
)
//1,无
{
LCDFP13BP
=
Matrix1
[(
1
)]
>>
4
;
LCDFP14BP
=
Matrix1
[(
1
)];
}
else
if
(
MP5_Flag
==
2
)
//2,有
{
LCDFP13BP
=
Matrix1
[(
2
)]
>>
4
;
LCDFP14BP
=
Matrix1
[(
2
)];
}
LCDFP13BP
=
Matrix1
[(
Key
.
CAN_Step
%
10
)]
>>
4
;
LCDFP14BP
=
Matrix1
[(
Key
.
CAN_Step
%
10
)];
// LCDFP11BP = Matrix1[(Key.CAN_Step / 10) %10]>>4;
// LCDFP12BP = Matrix1[(Key.CAN_Step / 10) %10];
// LCDFP13BP = Matrix1[(Key.CAN_Step % 10)]>>4;
// LCDFP14BP = Matrix1[(Key.CAN_Step % 10)];
if
(
RunStep
>
23
)
//
if(RunStep > 23)
{
//
{
LCDFP19BP
=
Matrix1
[((
Key
.
CAN_Step
-
24
)
/
10
)
%
10
]
>>
4
;
//
LCDFP19BP = Matrix1[((Key.CAN_Step -24) / 10) %10]>>4;
LCDFP20BP
=
Matrix1
[((
Key
.
CAN_Step
-
24
)
/
10
)
%
10
];
//
LCDFP20BP = Matrix1[((Key.CAN_Step -24) / 10) %10];
LCDFP21BP
=
Matrix1
[((
Key
.
CAN_Step
-
24
)
%
10
)]
>>
4
;
//
LCDFP21BP = Matrix1[((Key.CAN_Step -24) % 10)]>>4;
LCDFP22BP
=
Matrix1
[((
Key
.
CAN_Step
-
24
)
%
10
)];
//
LCDFP22BP = Matrix1[((Key.CAN_Step -24) % 10)];
}
//
}
else
//
else
{
//
{
LCDFP19BP
=
Matrix1
[
0
]
>>
4
;
//
LCDFP19BP = Matrix1[0]>>4;
LCDFP20BP
=
Matrix1
[
0
];
//
LCDFP20BP = Matrix1[0];
LCDFP21BP
=
Matrix1
[
0
]
>>
4
;
//
LCDFP21BP = Matrix1[0]>>4;
LCDFP22BP
=
Matrix1
[
0
];
//
LCDFP22BP = Matrix1[0];
}
//
}
//L
//L
LCDFP18BP
|=
0x08
;
//
LCDFP18BP |= 0x08;
LCDFP20BP
|=
0x08
;
//
LCDFP20BP |= 0x08;
LCDFP22BP
|=
0x08
;
//
LCDFP22BP |= 0x08;
//E
//E
LCDFP5BP
|=
0x0f
;
//
LCDFP5BP |= 0x0f;
LCDFP6BP
|=
0x01
;
//
LCDFP6BP |= 0x01;
//D
//D
LCDFP7BP
|=
0x0d
;
//
LCDFP7BP |= 0x0d;
LCDFP8BP
|=
0x07
;
//
LCDFP8BP |= 0x07;
//-
//-
LCDFP9BP
|=
0x02
;
//
LCDFP9BP |= 0x02;
//Z
//
//
Z
LCDFP15BP
|=
Matrix1
[
2
]
>>
4
;
//
LCDFP15BP |= Matrix1[2]>>4;
LCDFP16BP
|=
Matrix1
[
2
];
//
LCDFP16BP |= Matrix1[2];
//H
//
//
H
LCDFP17BP
|=
0x07
;
//
LCDFP17BP |= 0x07;
LCDFP18BP
|=
0x0e
;
//
LCDFP18BP |= 0x0e;
LCDRAM2_FP4BP
=
LCDFP4BP
;
LCDRAM2_FP4BP
=
LCDFP4BP
;
LCDRAM2_FP5BP
=
LCDFP5BP
;
LCDRAM2_FP5BP
=
LCDFP5BP
;
...
...
Test_Bench/Api_Sources/APP_CAN.c
View file @
b8f8d517
...
@@ -99,16 +99,19 @@ void Format_CAN_Msg()
...
@@ -99,16 +99,19 @@ void Format_CAN_Msg()
CanMsg_600
.
ID
=
0x600
;
CanMsg_600
.
ID
=
0x600
;
CanMsg_611
.
ID
=
0x611
;
CanMsg_611
.
ID
=
0x611
;
CanMsg_610
.
ID
=
0x610
;
CanMsg_610
.
ID
=
0x610
;
CanMsg_702
.
ID
=
0x702
;
CanMsg_101
.
Length
=
8
;
CanMsg_101
.
Length
=
8
;
CanMsg_067
.
Length
=
8
;
CanMsg_067
.
Length
=
8
;
CanMsg_600
.
Length
=
8
;
CanMsg_600
.
Length
=
8
;
CanMsg_611
.
Length
=
8
;
CanMsg_611
.
Length
=
8
;
CanMsg_610
.
Length
=
8
;
CanMsg_610
.
Length
=
8
;
CanMsg_702
.
Length
=
8
;
CanMsg_101
.
ID_EN
=
1
;
CanMsg_101
.
ID_EN
=
1
;
CanMsg_067
.
ID_EN
=
1
;
CanMsg_067
.
ID_EN
=
1
;
CanMsg_600
.
ID_EN
=
1
;
CanMsg_600
.
ID_EN
=
1
;
CanMsg_611
.
ID_EN
=
1
;
CanMsg_611
.
ID_EN
=
1
;
CanMsg_610
.
ID_EN
=
1
;
CanMsg_610
.
ID_EN
=
1
;
CanMsg_702
.
ID_EN
=
1
;
}
}
void
Disable_CAN_Tx
(
void
)
void
Disable_CAN_Tx
(
void
)
...
@@ -118,6 +121,7 @@ void Disable_CAN_Tx(void)
...
@@ -118,6 +121,7 @@ void Disable_CAN_Tx(void)
CanMsg_600
.
ID_EN
=
0
;
CanMsg_600
.
ID_EN
=
0
;
CanMsg_611
.
ID_EN
=
0
;
CanMsg_611
.
ID_EN
=
0
;
CanMsg_610
.
ID_EN
=
0
;
CanMsg_610
.
ID_EN
=
0
;
CanMsg_702
.
ID_EN
=
0
;
}
}
void
Set_Pin
(
INT16U
pin
)
void
Set_Pin
(
INT16U
pin
)
...
@@ -146,7 +150,9 @@ void App_Can_Proc(void)
...
@@ -146,7 +150,9 @@ void App_Can_Proc(void)
if
(
GetCtrlTime
(
CANMsgSend_10ms
)
>=
10
){
if
(
GetCtrlTime
(
CANMsgSend_10ms
)
>=
10
){
ClearCtrlTime
(
CANMsgSend_10ms
);
ClearCtrlTime
(
CANMsgSend_10ms
);
bReturn
=
Api_CANSendFrame
((
CAN_message
*
)
&
CanMsg_702
);
Clear_CAN_Msg
((
CAN_message
*
)
&
CanMsg_702
);
}
}
if
(
GetCtrlTime
(
CANMsgSend_20ms
)
>=
20
){
if
(
GetCtrlTime
(
CANMsgSend_20ms
)
>=
20
){
...
@@ -157,6 +163,7 @@ void App_Can_Proc(void)
...
@@ -157,6 +163,7 @@ void App_Can_Proc(void)
Clear_CAN_Msg
((
CAN_message
*
)
&
CanMsg_067
);
Clear_CAN_Msg
((
CAN_message
*
)
&
CanMsg_067
);
bReturn
=
Api_CANSendFrame
((
CAN_message
*
)
&
CanMsg_610
);
bReturn
=
Api_CANSendFrame
((
CAN_message
*
)
&
CanMsg_610
);
Clear_CAN_Msg
((
CAN_message
*
)
&
CanMsg_610
);
Clear_CAN_Msg
((
CAN_message
*
)
&
CanMsg_610
);
}
}
if
(
GetCtrlTime
(
CANMsgSend_50ms
)
>=
50
){
if
(
GetCtrlTime
(
CANMsgSend_50ms
)
>=
50
){
...
@@ -219,6 +226,14 @@ void App_Can_Proc(void)
...
@@ -219,6 +226,14 @@ void App_Can_Proc(void)
CurValueStr
[
Battery_status
].
val
=
0
;
CurValueStr
[
Battery_status
].
val
=
0
;
CurValueStr
[
Battery_Current
].
val
=
0
;
CurValueStr
[
Battery_Current
].
val
=
0
;
CurValueStr
[
Battery_SOC
].
val
=
0
;
CurValueStr
[
Battery_SOC
].
val
=
0
;
// CurValueStr[UDS0 ].val = 0;
// CurValueStr[UDS1 ].val = 0;
// CurValueStr[UDS2 ].val = 0;
// CurValueStr[UDS3 ].val = 0;
// CurValueStr[UDS4 ].val = 0;
// CurValueStr[UDS5 ].val = 0;
// CurValueStr[UDS6 ].val = 0;
// CurValueStr[UDS7 ].val = 0;
CurValueStr
[
ENUM_VSpeed
].
fval
=
Value_Plus
;
CurValueStr
[
ENUM_VSpeed
].
fval
=
Value_Plus
;
CurValueStr
[
ECM_FaultIndicator
].
fval
=
Value_Plus
;
CurValueStr
[
ECM_FaultIndicator
].
fval
=
Value_Plus
;
...
@@ -237,6 +252,14 @@ void App_Can_Proc(void)
...
@@ -237,6 +252,14 @@ void App_Can_Proc(void)
CurValueStr
[
Battery_status
].
fval
=
Value_Plus
;
CurValueStr
[
Battery_status
].
fval
=
Value_Plus
;
CurValueStr
[
Battery_Current
].
fval
=
Value_Plus
;
CurValueStr
[
Battery_Current
].
fval
=
Value_Plus
;
CurValueStr
[
Battery_SOC
].
fval
=
Value_Plus
;
CurValueStr
[
Battery_SOC
].
fval
=
Value_Plus
;
CurValueStr
[
UDS0
].
fval
=
Value_Plus
;
CurValueStr
[
UDS1
].
fval
=
Value_Plus
;
CurValueStr
[
UDS2
].
fval
=
Value_Plus
;
CurValueStr
[
UDS3
].
fval
=
Value_Plus
;
CurValueStr
[
UDS4
].
fval
=
Value_Plus
;
CurValueStr
[
UDS5
].
fval
=
Value_Plus
;
CurValueStr
[
UDS6
].
fval
=
Value_Plus
;
CurValueStr
[
UDS7
].
fval
=
Value_Plus
;
// CurVehSpeed = 0;
// CurVehSpeed = 0;
//LDW Open
//LDW Open
...
...
Test_Bench/Api_Sources/APP_Data_Process.c
View file @
b8f8d517
...
@@ -60,86 +60,102 @@ INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len)
...
@@ -60,86 +60,102 @@ INT8U App_CreateCheckSun(INT8U *pData,INT8U checkbyte,INT8U len)
}
}
return
Check
;
return
Check
;
}
}
INT8U
key_1
[
4
];
void
App_Uds_Calc_Key
(
INT32U
seed
)
INT8U
key_2
[
4
];
INT8U
key_3
[
8
];
INT8U
key_4
=
0
;
void
App_Uds_Calc_Key
(
INT8U
seed
[
4
])
{
{
aaaa
=
0xb5
;
//00000000 00000000 00000000 10110101
INT8U
Xor
[
4
]
=
{
0x56
,
0x45
,
0x73
,
0x54
};
bbbb
=
0xa3
;
//00000000 00000000 00000000 10100011
INT8U
Cal
[
4
];
cccc
=
0xf1
;
//00000000 00000000 00000000 11110001
dddd
=
0x36
;
//00000000 00000000 00000000 00110110
Cal
[
0
]
=
seed
[
0
]
^
Xor
[
0
];
Cal
[
1
]
=
seed
[
1
]
^
Xor
[
1
];
dwSeed4
=
(
INT8U
)(
seed
&
0x000000ff
);
//00000000 00000000 00000000 000000ff
Cal
[
2
]
=
seed
[
2
]
^
Xor
[
2
];
dwSeed3
=
(
INT8U
)((
seed
&
0x0000ff00
)
>>
8
);
//00000000 00000000 0000ff00 00000000
Cal
[
3
]
=
seed
[
3
]
^
Xor
[
3
];
dwSeed2
=
(
INT8U
)((
seed
&
0x00ff0000
)
>>
16
);
//00000000 00ff0000 00000000 00000000
dwSeed1
=
(
INT8U
)((
seed
&
0xff000000
)
>>
24
);
//ff000000 00000000 00000000 00000000
key_1
[
0
]
=
((
Cal
[
0
]
&
0x0f
)
<<
4
)
|
(
Cal
[
1
]
&
0xf0
);
key_1
[
1
]
=
((
Cal
[
1
]
&
0x0f
)
<<
4
)
|
((
Cal
[
2
]
&
0xf0
)
>>
4
);
key_1
[
2
]
=
(
Cal
[
2
]
&
0xf0
)
|
((
Cal
[
3
]
&
0xf0
)
>>
4
);
dwKey1
=
(
INT8U
)((
aaaa
*
(
dwSeed1
*
dwSeed1
))
+
(
bbbb
*
(
dwSeed2
*
dwSeed2
))
+
(
cccc
*
(
dwSeed1
*
dwSeed2
)));
key_1
[
3
]
=
((
Cal
[
3
]
&
0x0f
)
<<
4
)
|
(
Cal
[
0
]
&
0x0f
);
dwKey2
=
(
INT8U
)((
aaaa
*
dwSeed1
)
+
(
bbbb
*
dwSeed2
)
+
(
dddd
*
(
dwSeed1
*
dwSeed2
)));
dwKey3
=
(
INT8U
)((
aaaa
*
(
dwSeed3
*
dwSeed4
))
+
(
bbbb
*
(
dwSeed4
*
dwSeed4
))
+
(
cccc
*
(
dwSeed3
*
dwSeed4
)));
dwKey4
=
(
INT8U
)((
aaaa
*
(
dwSeed3
*
dwSeed4
))
+
(
bbbb
*
dwSeed4
)
+
(
dddd
*
(
dwSeed3
*
dwSeed4
)));
CalcKey
=
(
dwKey1
<<
24UL
)
|
(
dwKey2
<<
16UL
)
|
(
dwKey3
<<
8UL
)
|
dwKey4
;
}
}
void
UDS_Receive_Main
(
unsigned
char
*
buf
)
void
UDS_Receive_Main
(
unsigned
char
*
buf
)
{
{
switch
(
EOLStep
)
switch
(
EOLStep
)
{
{
case
0
:
case
0
:
{
{
if
((
buf
[
1
]
==
0x
62
)
&&
(
buf
[
2
]
==
0x02
)
&&
(
buf
[
3
]
==
0x1F
)
&&
(
buf
[
4
]
!=
EOLMode
))
if
((
buf
[
1
]
==
0x
50
)
&&
(
buf
[
2
]
==
0x03
))
{
{
EOLStep
=
1
;
EOLStep
=
2
;
CurValueStr
[
UDS0
].
val
=
0x02
;
//扩展模式
CurValueStr
[
UDS1
].
val
=
0x27
;
CurValueStr
[
UDS2
].
val
=
0x01
;
CurValueStr
[
UDS3
].
val
=
0x55
;
CurValueStr
[
UDS4
].
val
=
0x55
;
CurValueStr
[
UDS5
].
val
=
0x55
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
EOLError
=
0
;
}
}
else
else
{
{
EOLStep
=
0
;
//
EOLStep = 0;
EOLError
=
0
;
//
EOLError = 0;
}
}
}
}
break
;
break
;
case
1
:
case
1
:
{
{
if
((
buf
[
1
]
==
0x50
)
&&
(
buf
[
2
]
==
0x03
))
{
EOLStep
=
2
;
EOLStep
=
2
;
EOLError
=
0
;
EOLError
=
0
;
}
else
{
EOLError
++
;
}
}
}
break
;
break
;
case
2
:
case
2
:
//解密并发送密钥
{
{
if
((
buf
[
1
]
==
0x67
)
&&
(
buf
[
2
]
==
0x01
))
if
((
buf
[
1
]
==
0x67
)
&&
(
buf
[
2
]
==
0x01
))
{
{
GetSeed
=
buf
[
3
];
key_2
[
0
]
=
buf
[
3
];
GetSeed
=
GetSeed
<<
8
;
key_2
[
1
]
=
buf
[
4
];
GetSeed
|=
buf
[
4
];
key_2
[
2
]
=
buf
[
5
];
GetSeed
=
GetSeed
<<
8
;
key_2
[
3
]
=
buf
[
6
];
GetSeed
|=
buf
[
5
];
App_Uds_Calc_Key
(
key_2
);
GetSeed
=
GetSeed
<<
8
;
CurValueStr
[
UDS0
].
val
=
0x06
;
//解密
GetSeed
|=
buf
[
6
];
CurValueStr
[
UDS1
].
val
=
0x27
;
CurValueStr
[
UDS2
].
val
=
0x02
;
CurValueStr
[
UDS3
].
val
=
key_1
[
0
];
CurValueStr
[
UDS4
].
val
=
key_1
[
1
];
CurValueStr
[
UDS5
].
val
=
key_1
[
2
];
CurValueStr
[
UDS6
].
val
=
key_1
[
3
];
CurValueStr
[
UDS7
].
val
=
0x55
;
EOLStep
=
3
;
EOLStep
=
3
;
EOLError
=
0
;
EOLError
=
0
;
}
}
else
else
{
{
EOLError
++
;
EOLError
++
;
}
}
}
}
break
;
break
;
case
3
:
case
3
:
{
{
if
((
buf
[
1
]
==
0x67
)
&&
(
buf
[
2
]
==
0x02
))
if
((
buf
[
1
]
==
0x67
)
&&
(
buf
[
2
]
==
0x02
))
//请求读取配置
{
{
CurValueStr
[
UDS0
].
val
=
0x03
;
CurValueStr
[
UDS1
].
val
=
0x22
;
CurValueStr
[
UDS2
].
val
=
0xf0
;
CurValueStr
[
UDS3
].
val
=
0x10
;
CurValueStr
[
UDS4
].
val
=
0x55
;
CurValueStr
[
UDS5
].
val
=
0x55
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
EOLStep
=
4
;
EOLStep
=
4
;
EOLError
=
0
;
EOLError
=
0
;
}
}
...
@@ -152,8 +168,20 @@ void UDS_Receive_Main(unsigned char *buf)
...
@@ -152,8 +168,20 @@ void UDS_Receive_Main(unsigned char *buf)
case
4
:
case
4
:
{
{
if
((
buf
[
1
]
==
0x
6E
)
&&
(
buf
[
2
]
==
0x02
)
&&
(
buf
[
3
]
==
0x1F
))
if
((
buf
[
1
]
==
0x
0b
)
&&
(
buf
[
2
]
==
0x62
)
&&
(
buf
[
3
]
==
0xf0
))
//读取配置项前3位
{
{
key_3
[
0
]
=
buf
[
5
];
key_3
[
1
]
=
buf
[
6
];
key_3
[
2
]
=
buf
[
7
];
CurValueStr
[
UDS0
].
val
=
0x30
;
//流控
CurValueStr
[
UDS1
].
val
=
0x00
;
CurValueStr
[
UDS2
].
val
=
0x32
;
CurValueStr
[
UDS3
].
val
=
0xf1
;
CurValueStr
[
UDS4
].
val
=
0x40
;
CurValueStr
[
UDS5
].
val
=
0x55
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
EOLStep
=
5
;
EOLStep
=
5
;
EOLError
=
0
;
EOLError
=
0
;
}
}
...
@@ -164,10 +192,81 @@ void UDS_Receive_Main(unsigned char *buf)
...
@@ -164,10 +192,81 @@ void UDS_Receive_Main(unsigned char *buf)
}
}
break
;
break
;
case
5
:
case
5
:
//读取配置项后5位
{
if
((
buf
[
0
]
==
0x21
)
&&
(
buf
[
1
]
==
0x84
))
{
key_3
[
3
]
=
buf
[
1
];
key_3
[
4
]
=
buf
[
2
];
key_3
[
5
]
=
buf
[
3
];
key_3
[
6
]
=
buf
[
4
];
key_3
[
7
]
=
buf
[
5
];
CurValueStr
[
UDS0
].
val
=
0x10
;
//写入前三位
CurValueStr
[
UDS1
].
val
=
0x0b
;
CurValueStr
[
UDS2
].
val
=
0x2e
;
CurValueStr
[
UDS3
].
val
=
0xf0
;
CurValueStr
[
UDS4
].
val
=
0x10
;
CurValueStr
[
UDS5
].
val
=
0x28
;
CurValueStr
[
UDS6
].
val
=
0xc0
;
CurValueStr
[
UDS7
].
val
=
0x80
;
EOLStep
=
6
;
EOLError
=
0
;
}
else
{
EOLError
++
;
}
}
case
6
:
{
if
((
buf
[
0
]
==
0x30
)
&&
(
buf
[
1
]
==
0x0f
))
//流控
{
if
(
key_3
[
6
]
&
0x04
)
//如果无主机雷达则改为有
{
CurValueStr
[
UDS0
].
val
=
0x21
;
CurValueStr
[
UDS1
].
val
=
0x84
;
CurValueStr
[
UDS2
].
val
=
0xcc
;
CurValueStr
[
UDS3
].
val
=
0xcc
;
CurValueStr
[
UDS4
].
val
=
0xc8
;
CurValueStr
[
UDS5
].
val
=
0xcc
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
MP5_Flag
=
2
;
}
else
{
CurValueStr
[
UDS0
].
val
=
0x21
;
CurValueStr
[
UDS1
].
val
=
0x84
;
CurValueStr
[
UDS2
].
val
=
0xcc
;
CurValueStr
[
UDS3
].
val
=
0xcc
;
CurValueStr
[
UDS4
].
val
=
0xcc
;
CurValueStr
[
UDS5
].
val
=
0xcc
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
MP5_Flag
=
1
;
}
EOLStep
=
7
;
EOLError
=
0
;
}
else
{
EOLError
++
;
}
}
break
;
case
7
:
{
{
if
((
buf
[
1
]
==
0x51
)
&&
(
buf
[
2
]
==
0x01
))
if
((
buf
[
0
]
==
0x03
)
&&
(
buf
[
1
]
==
0x7f
))
//等待
{
{
CurValueStr
[
UDS0
].
val
=
0x02
;
CurValueStr
[
UDS1
].
val
=
0x3e
;
CurValueStr
[
UDS2
].
val
=
0x00
;
CurValueStr
[
UDS3
].
val
=
0x55
;
CurValueStr
[
UDS4
].
val
=
0x55
;
CurValueStr
[
UDS5
].
val
=
0x55
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
EOLStep
=
0
;
EOLStep
=
0
;
EOLError
=
0
;
EOLError
=
0
;
}
}
...
...
Test_Bench/Api_Sources/APP_Test.c
View file @
b8f8d517
...
@@ -33,6 +33,7 @@ void APP_Test_Init(void){
...
@@ -33,6 +33,7 @@ void APP_Test_Init(void){
EOLMode
=
1
;
EOLMode
=
1
;
EOLStep
=
0
;
EOLStep
=
0
;
EOLError
=
0
;
EOLError
=
0
;
MP5_Flag
=
0
;
}
}
unsigned
int
Self_propelled_flag
=
0
;
//自走
unsigned
int
Self_propelled_flag
=
0
;
//自走
unsigned
int
Key_Dodging_flag
=
1
;
//按键打点
unsigned
int
Key_Dodging_flag
=
1
;
//按键打点
...
@@ -62,7 +63,17 @@ void APP_Button_Proc(void){
...
@@ -62,7 +63,17 @@ void APP_Button_Proc(void){
{
{
Key
.
CAN_Step
++
;
Key
.
CAN_Step
++
;
}
}
if
(
EOLStep
==
0
)
//扩展会话
{
CurValueStr
[
UDS0
].
val
=
0x02
;
CurValueStr
[
UDS1
].
val
=
0x10
;
CurValueStr
[
UDS2
].
val
=
0x03
;
CurValueStr
[
UDS3
].
val
=
0x55
;
CurValueStr
[
UDS4
].
val
=
0x55
;
CurValueStr
[
UDS5
].
val
=
0x55
;
CurValueStr
[
UDS6
].
val
=
0x55
;
CurValueStr
[
UDS7
].
val
=
0x55
;
}
// Key.CAN_Step++;
// Key.CAN_Step++;
// if(Key.CAN_Step > STEP_MAX){
// if(Key.CAN_Step > STEP_MAX){
...
@@ -78,9 +89,10 @@ void APP_Button_Proc(void){
...
@@ -78,9 +89,10 @@ void APP_Button_Proc(void){
{
{
Key
.
CAN_Step
--
;
Key
.
CAN_Step
--
;
}
}
MP5_Flag
=
0
;
}
}
Key
.
PushTime_2
=
null
;
Key
.
PushTime_2
=
null
;
}
}
}
}
...
@@ -97,27 +109,29 @@ unsigned int CAN_lost_flag = 0;
...
@@ -97,27 +109,29 @@ unsigned int CAN_lost_flag = 0;
unsigned
int
water_value
=
0
;
unsigned
int
water_value
=
0
;
void
APP_ICM_Proc
(
void
)
/*zh321*/
/*FS04*/
void
APP_ICM_Proc
(
void
)
/*zh321*/
/*FS04*/
{
{
//if(Self_propelled_flag==1)
//if(Self_propelled_flag==1)
{
{
{
{
CurValueStr
[
ENUM_VSpeed
].
val
=
0
;
CurValueStr
[
ENUM_VSpeed
].
val
=
1
;
CurValueStr
[
ECM_FaultIndicator
].
val
=
0
;
CurValueStr
[
ECM_FaultIndicator
].
val
=
1
;
CurValueStr
[
ECM_StautsInvalid
].
val
=
0
;
CurValueStr
[
ECM_StautsInvalid
].
val
=
1
;
CurValueStr
[
ECM_MotorOver
].
val
=
0
;
CurValueStr
[
ECM_MotorOver
].
val
=
1
;
CurValueStr
[
ECM_ReadyIndicator
].
val
=
0
;
CurValueStr
[
ECM_ReadyIndicator
].
val
=
1
;
CurValueStr
[
ECM_ChargeStatus
].
val
=
0
;
CurValueStr
[
ECM_ChargeStatus
].
val
=
1
;
CurValueStr
[
ECM_CruiseStatus
].
val
=
0
;
CurValueStr
[
ECM_CruiseStatus
].
val
=
1
;
CurValueStr
[
ECM_GearPositionStatus
].
val
=
0
;
CurValueStr
[
ECM_GearPositionStatus
].
val
=
1
;
CurValueStr
[
PFC_Relag
].
val
=
0
;
CurValueStr
[
PFC_Relag
].
val
=
1
;
CurValueStr
[
LLC_UnderOutput
].
val
=
0
;
CurValueStr
[
LLC_UnderOutput
].
val
=
1
;
CurValueStr
[
LLC_OverOutput
].
val
=
0
;
CurValueStr
[
LLC_OverOutput
].
val
=
1
;
CurValueStr
[
LLC_OutPut
].
val
=
0
;
CurValueStr
[
LLC_OutPut
].
val
=
1
;
CurValueStr
[
PFC_LLC_Interal_Communication
].
val
=
0
;
CurValueStr
[
PFC_LLC_Interal_Communication
].
val
=
1
;
CurValueStr
[
LLC_Temp
].
val
=
0
;
CurValueStr
[
LLC_Temp
].
val
=
1
;
CurValueStr
[
Battery_status
].
val
=
0
;
CurValueStr
[
Battery_status
].
val
=
1
;
CurValueStr
[
Battery_Current
].
val
=
0
;
CurValueStr
[
Battery_Current
].
val
=
1
;
CurValueStr
[
Battery_SOC
].
val
=
0
;
CurValueStr
[
Battery_SOC
].
val
=
1
;
#if 1
#if 1
switch
(
Key
.
CAN_Step
)
switch
(
Key
.
CAN_Step
)
{
{
...
...
Test_Bench/App_Headers/APP_Data_Process.h
View file @
b8f8d517
...
@@ -27,7 +27,92 @@
...
@@ -27,7 +27,92 @@
EXTERN_APP_PROCESS
void
App_Load_Data
(
void
);
EXTERN_APP_PROCESS
void
App_Load_Data
(
void
);
EXTERN_APP_PROCESS
void
App_State_Init
(
void
);
EXTERN_APP_PROCESS
void
App_State_Init
(
void
);
EXTERN_APP_PROCESS
INT8U
App_CreateCheckSun
(
INT8U
*
pData
,
INT8U
checkbyte
,
INT8U
len
);
EXTERN_APP_PROCESS
INT8U
App_CreateCheckSun
(
INT8U
*
pData
,
INT8U
checkbyte
,
INT8U
len
);
EXTERN_APP_PROCESS
void
UDS_Receive_Main
(
unsigned
char
*
buf
);
EXTERN_APP_PROCESS
void
UDS_Receive_Main
(
unsigned
char
*
buf
);
EXTERN_APP_PROCESS
void
UDS_Service_Main
(
void
);
EXTERN_APP_PROCESS
void
UDS_Service_Main
(
void
);
#endif
/* APP_DATA_PROCESS_H_ */
#endif
/* APP_DATA_PROCESS_H_ */
// typedef struct
// {
// _Subnet Node; //F010
// INT8U Checkflag;
// INT8U VehIde[12]; //F187 vehicleManufacturerSparePartNumberDataIdentifier
// INT8U SupplierIde[4]; //F18A systemSupplierIdentifierDataIdentifier
// INT8U SystemName[10]; //F197
// INT8U EcuHardwIde[2]; //F193
// INT8U EcuSoftwIde[2]; //F195
// INT8U EcuSerialNum[8]; //F18C
// INT8U VIN[17]; //F190
// INT8U ECUDate[4]; //F18B
// INT8U Reserved0;
// INT8U Reserved1;
// INT8U Reserved2;
// INT8U CheckSun;
// }_ProductInfo;
// EXTERN_USER_DEF volatile _ProductInfo ProductInfo;
// typedef union
// {
// struct
// {
// //byte0 //YZHD
// INT8U Cruise :1; //xun hang //IC
// INT8U StarAndStop :1; //qi ting kong zhi //IC
// INT8U Engine_type :5; //fa dong ji lei xing
// INT8U Headlight_delay :1; //7 da deng yan shi
// //byte1
// INT8U ECU_Type :5;//ECU lei xing
// INT8U Engine_Prevention :1;//13 fa dong ji fang dao //IC
// INT8U FAN_PWM_CON_BIT :1;//PWM wu ji feng shan kong zhi
// INT8U GSM :1;//dian zi huan dang kong zhi qi
// //byte2
// INT8U Reserved5 :2;
// INT8U GrearBoxType :3; //bian su xiang lei xing //IC
// INT8U Reserved6 :3;
// //byte3
// INT8U BreakSysSel :1; //24//0,ABS,1,ESP //IC
// INT8U Steering_system :2; //EPS
// INT8U AirbagCtrl :2; //an quan qi nang
// INT8U Reserved9 :1; //29
// INT8U Radar_Before :1; //30
// INT8U Reserved10 :1; //31
// //byte4
// INT8U Car_DVR :1; //32//xing che ji lu yi
// INT8U Parking_sensors :1; //33//dao che lei da
// INT8U RVC :1; //34//dao che ying xiang
// INT8U Front_Fog_Lamp :1; //35//qian wu deng
// INT8U DRL :1; //36//ri jian xing che deng
// INT8U Sun_rain_sensor :1; //37//yang guang yu liang chuan gan qi
// INT8U Clamp :1; //38//fang jia kong zhi qi
// INT8U skylight :1; //39//tian chuang kong zhi qi
// //byte5
// INT8U Byte5_bit0 :1;
// INT8U Byte5_bit1 :1;//41//zuo qian men tian xian
// INT8U Byte5_bit2 :1;//42//fu shou xiang tian xian
// INT8U Byte5_bit3 :1;//43//wei men tian xian
// INT8U Byte5_bit4 :1;//44//hou zuo yi tian xian 1
// INT8U Byte5_bit5 :1;//45//
// INT8U Byte5_bit6 :1;//46//hou zuo yi tian xian 2
// INT8U Byte5_bit7 :1;//47//
// //byte6
// INT8U PEPS_Sel :1; //48 //IC
// INT8U Byte6_bit1 :1; //49//quan jing bo che kong zhi qi
// INT8U MP5_Sel :1; //50//GPS dao hang //IC
// INT8U EPB_Sel :1; //51//dian zi shou sha //IC
// INT8U TPMS_Sel :1; //52//tai ya jian ce //IC
// INT8U Car_type_H :3; //car type
// //byte7
// INT8U Car_type_L :1;//56 //IC
// INT8U Reserved24 :2;//57
// INT8U Reserved25 :1;//59
// INT8U HUD :1;//60 tai tou xian shi //IC
// INT8U Reserved26 :1;//61
// INT8U Reserved27 :1;//62
// INT8U Reserved28 :1;//63
// }bits;
// INT8U Subnet[8];
// }_Subnet;
// #define MP5_model 0
// #define MP3_model 1
\ No newline at end of file
Test_Bench/App_Headers/APP_Test.h
View file @
b8f8d517
...
@@ -58,6 +58,14 @@ enum
...
@@ -58,6 +58,14 @@ enum
Battery_status
,
Battery_status
,
Battery_Current
,
Battery_Current
,
Battery_SOC
,
Battery_SOC
,
UDS0
,
UDS1
,
UDS2
,
UDS3
,
UDS4
,
UDS5
,
UDS6
,
UDS7
,
CAN_List_Num
,
CAN_List_Num
,
};
};
...
@@ -82,6 +90,15 @@ static const s_CAN_List CAN_List[] =
...
@@ -82,6 +90,15 @@ static const s_CAN_List CAN_List[] =
{
&
CanMsg_610
,
0
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
Battery_status
],
Motorola
},
{
&
CanMsg_610
,
0
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
Battery_status
],
Motorola
},
{
&
CanMsg_610
,
2
,
0
,
16
,
255
,
Offset_Minus
,
10
,
1
,
&
CurValueStr
[
Battery_Current
],
Motorola
},
{
&
CanMsg_610
,
2
,
0
,
16
,
255
,
Offset_Minus
,
10
,
1
,
&
CurValueStr
[
Battery_Current
],
Motorola
},
{
&
CanMsg_611
,
0
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
Battery_SOC
],
Motorola
},
{
&
CanMsg_611
,
0
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
Battery_SOC
],
Motorola
},
{
&
CanMsg_702
,
0
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS0
],
Motorola
},
{
&
CanMsg_702
,
1
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS1
],
Motorola
},
{
&
CanMsg_702
,
2
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS2
],
Motorola
},
{
&
CanMsg_702
,
3
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS3
],
Motorola
},
{
&
CanMsg_702
,
4
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS4
],
Motorola
},
{
&
CanMsg_702
,
5
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS5
],
Motorola
},
{
&
CanMsg_702
,
6
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS6
],
Motorola
},
{
&
CanMsg_702
,
7
,
0
,
8
,
0
,
Offset_Plus
,
1
,
1
,
&
CurValueStr
[
UDS7
],
Motorola
},
};
};
extern
unsigned
int
Key_Dodging_flag
;
extern
unsigned
int
Key_Dodging_flag
;
extern
unsigned
int
lost_flag
;
extern
unsigned
int
lost_flag
;
...
...
Test_Bench/App_Headers/Globals_Var.h
View file @
b8f8d517
...
@@ -113,12 +113,14 @@
...
@@ -113,12 +113,14 @@
EXTERN_VAR
CAN_message
CanMsg_600
;
EXTERN_VAR
CAN_message
CanMsg_600
;
EXTERN_VAR
CAN_message
CanMsg_611
;
EXTERN_VAR
CAN_message
CanMsg_611
;
EXTERN_VAR
CAN_message
CanMsg_610
;
EXTERN_VAR
CAN_message
CanMsg_610
;
EXTERN_VAR
CAN_message
CanMsg_702
;
extern
CAN_message
CanMsg_101
;
extern
CAN_message
CanMsg_101
;
extern
CAN_message
CanMsg_067
;
extern
CAN_message
CanMsg_067
;
extern
CAN_message
CanMsg_600
;
extern
CAN_message
CanMsg_600
;
extern
CAN_message
CanMsg_611
;
extern
CAN_message
CanMsg_611
;
extern
CAN_message
CanMsg_610
;
extern
CAN_message
CanMsg_610
;
extern
CAN_message
CanMsg_702
;
/**/
/**/
/*:zh*/
/*:zh*/
...
@@ -181,5 +183,7 @@
...
@@ -181,5 +183,7 @@
EXTERN_VAR
volatile
INT8U
EOLMode
;
EXTERN_VAR
volatile
INT8U
EOLMode
;
EXTERN_VAR
volatile
INT8U
EOLStep
;
EXTERN_VAR
volatile
INT8U
EOLStep
;
EXTERN_VAR
volatile
INT8U
EOLError
;
EXTERN_VAR
volatile
INT8U
EOLError
;
EXTERN_VAR
volatile
INT8U
MP5_Flag
;;
#endif
/* GLOBALS_VAR_H_ */
#endif
/* GLOBALS_VAR_H_ */
Test_Bench/TBDML.ini
View file @
b8f8d517
...
@@ -10,7 +10,7 @@ Target=TBDML
...
@@ -10,7 +10,7 @@ Target=TBDML
Layout
=
C_layout.hwl
Layout
=
C_layout.hwl
LoadDialogOptions
=
AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
LoadDialogOptions
=
AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU
=
HC12
CPU
=
HC12
MainFrame
=
0,1,-32000,-32000,-1,-1,412,144,1341,862
MainFrame
=
2,3,-1,-1,-1,-1,162,143,1434,863
TOOLBAR
=
57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
TOOLBAR
=
57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
AEFWarningDialog
=
FALSE
AEFWarningDialog
=
FALSE
Configuration
=
TBDML.hwc
Configuration
=
TBDML.hwc
...
@@ -42,7 +42,7 @@ CHIPSECURE=CHIPSECURE SETUP 0xFF0F 0x3 0x2
...
@@ -42,7 +42,7 @@ CHIPSECURE=CHIPSECURE SETUP 0xFF0F 0x3 0x2
DBG0
=
DBG GENERAL DISARM_ON PROTECT_OFF ANALYZE_ON STEPATRUN_ON
DBG0
=
DBG GENERAL DISARM_ON PROTECT_OFF ANALYZE_ON STEPATRUN_ON
DBG1
=
DBG PREDEFINED SELECT 0
DBG1
=
DBG PREDEFINED SELECT 0
DBG2
=
DBG PREDEFINED DBGENGINE TRACE ENABLE RECORDAFTER PUREPC
DBG2
=
DBG PREDEFINED DBGENGINE TRACE ENABLE RECORDAFTER PUREPC
NV_PARAMETER_FILE
=
D:
\
P
rogram Files (x86)
\F
reescale
\C
WS12v5.1
\p
rog
\F
PP
\m
cu02F2.fpp
NV_PARAMETER_FILE
=
D:
\
x
hy
\p
rog
\F
PP
\m
cu02F2.fpp
NV_SAVE_WSP
=
0
NV_SAVE_WSP
=
0
NV_AUTO_ID
=
1
NV_AUTO_ID
=
1
COMDEVICE
=
SETCOMM COMPORT LPT "TBDML #1"
COMDEVICE
=
SETCOMM COMPORT LPT "TBDML #1"
...
@@ -82,9 +82,17 @@ File2=
...
@@ -82,9 +82,17 @@ File2=
File3
=
File3
=
[Recent HI-WAVE FindProcedure Search]
[Recent HI-WAVE FindProcedure Search]
Search0
=
APP_ICM_Proc
Search0
=
APP_Button_Proc
Search1
=
App_Can_Proc
Search1
=
UDS_Receive_Main
Search2
=
main
Search2
=
Api_CAN_Rev_isr
Search3
=
EOLStep
Search4
=
APP_ICM_Proc
Search5
=
App_Can_Proc
Search6
=
main
[Turbo_BDM_Light]
[Turbo_BDM_Light]
TARGET_FREQUENCY_RATIO
=
2000000
TARGET_FREQUENCY_RATIO
=
2000000
...
...
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