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
0b9ea76e
Commit
0b9ea76e
authored
May 24, 2025
by
薛晓虎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🐞
fix:CAN检测台添加诊断和ble交互
parent
ce596ba3
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
632 additions
and
585 deletions
+632
-585
CAN_Communication_Matrix.c
...test_bench/source/Appliciation/CAN_Communication_Matrix.c
+41
-0
CAN_Communication_Matrix.h
...test_bench/source/Appliciation/CAN_Communication_Matrix.h
+8
-1
Check_Ctrl.c
YueJin_test_bench/source/Appliciation/Check_Ctrl.c
+6
-2
Diag_ID_Def.h
YueJin_test_bench/source/Appliciation/Diag_ID_Def.h
+3
-3
Display_Info.c
YueJin_test_bench/source/Appliciation/Display_Info.c
+2
-1
Key_user.c
YueJin_test_bench/source/Appliciation/Key_user.c
+8
-0
RTE_CAN.c
YueJin_test_bench/source/Appliciation/RTE_CAN.c
+3
-1
Task.c
YueJin_test_bench/source/Appliciation/Task.c
+458
-525
Task.h
YueJin_test_bench/source/Appliciation/Task.h
+43
-0
UDS_ISO14229_Client.c
YueJin_test_bench/source/Appliciation/UDS_ISO14229_Client.c
+60
-52
No files found.
YueJin_test_bench/source/Appliciation/CAN_Communication_Matrix.c
View file @
0b9ea76e
...
...
@@ -145,6 +145,17 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ] =
((
void
*
)
0
),
},
{
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
5000ul
,
0x0F4254FFul
,
//BT MAC接受ID
((
void
*
)
0
),
((
void
*
)
0
),
((
void
*
)
0
),
},
};
...
...
@@ -307,6 +318,33 @@ uint8_t Get_CAN_CH0_ID_794_byte7_Sig(void)
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte0_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
0u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte1_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
1u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte2_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
2u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte3_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
3u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte4_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
4u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte5_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_BT_MAC_Msg_Count
,
5u
)
>>
0u
)
&
0xFFu
));
}
...
...
@@ -361,6 +399,9 @@ uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
case
CAN_CH0_ID_UDS_REC_Msg
:
u8Result
=
CAN_CH0_ID_UDS_REC_Msg_Count
;
break
;
case
CAN_BT_MAC_ID
:
u8Result
=
CAN_CH0_ID_BT_MAC_Msg_Count
;
break
;
default
:
u8Result
=
CAN_CH0_ID_TOTAL_MAX
;
break
;
...
...
YueJin_test_bench/source/Appliciation/CAN_Communication_Matrix.h
View file @
0b9ea76e
...
...
@@ -21,6 +21,7 @@ typedef enum
CAN_CH0_ID_gm_esp_ee_Msg_Count
,
CAN_CH0_ID_UDS_REC_Msg_Count
,
CAN_CH0_ID_BT_MAC_Msg_Count
,
CAN_CH0_ID_TOTAL_MAX
,
}
CAN_MSG_ID_t
;
...
...
@@ -50,6 +51,7 @@ extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define CAN_CH0_ID_esp32_soft_Msg 0x0C70FFD4ul
#define CAN_CH0_ID_gm_esp_ee_Msg 0x0C87FFD4ul
#define CAN_CH0_ID_UDS_REC_Msg 0x794ul
#define CAN_BT_MAC_ID 0X0F4254FF
extern
uint32_t
Get_ID_ODO
(
void
);
...
...
@@ -85,7 +87,12 @@ extern uint8_t Get_CAN_CH0_ID_794_byte5_Sig(void);
extern
uint8_t
Get_CAN_CH0_ID_794_byte6_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_794_byte7_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte0_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte1_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte2_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte3_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte4_Sig
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_0X7F4254FF_BT_MAC_byte5_Sig
(
void
);
...
...
YueJin_test_bench/source/Appliciation/Check_Ctrl.c
View file @
0b9ea76e
...
...
@@ -73,10 +73,14 @@ void MENU_CHECK_STEP_ADD(void)
MENU_CHECK_STEP
++
;
// if(MENU_CHECK_STEP > 17)
if
(
MENU_CHECK_STEP
>
13
)
if
(
MENU_CHECK_STEP
>
16
)
{
MENU_CHECK_STEP
=
0
;
}
else
if
(
MENU_CHECK_STEP
>
13
)
{
MENU_CHECK_STEP
=
16
;
}
}
void
MENU_CHECK_STEP_SUB
(
void
)
{
...
...
@@ -126,7 +130,7 @@ void HW_CHECK_IPK_EXIST(void)
DIAG_BUFER
[
1
]
=
0x00
;
UDS_S_Data_Request
(
DIAG_ID_Tx
,
DIAG_BUFER
,
2
);
SET_IPK_NONE
(
);
//
SET_IPK_NONE( );
}
void
SET_IPK_NONE
(
void
)
...
...
YueJin_test_bench/source/Appliciation/Diag_ID_Def.h
View file @
0b9ea76e
...
...
@@ -8,8 +8,8 @@
#ifndef _DIAG_ID_DEF_H_
#define _DIAG_ID_DEF_H_
#define DIAG_ID_Tx 0x
18DA17FA
u
/*����ID*/
#define DIAG_ID_Rx_PHY 0x
18DAFA17
u
/*����ID,����Ѱַ*/
#define DIAG_ID_Rx_FUN 0x
18DAFA17
u
/*����ID,����Ѱַ*/
#define DIAG_ID_Tx 0x
714
u
/*����ID*/
#define DIAG_ID_Rx_PHY 0x
794
u
/*����ID,����Ѱַ*/
#define DIAG_ID_Rx_FUN 0x
7df
u
/*����ID,����Ѱַ*/
#endif
YueJin_test_bench/source/Appliciation/Display_Info.c
View file @
0b9ea76e
...
...
@@ -4634,7 +4634,8 @@ void Display_Send_Vspead(uint8_t menu)
//Display_Version_Info(0);
//Send_Init();
//Send_ODO_Init();
HW_Static_Current_Check(1);
HW_Static_Current_Check
(
1
);
memset
(
blename
,
0xFF
,
5
);
break
;
case
14
:
GUI_Display_Version_Code_Service
(
25
,
20
,
"Please enter password "
,
Letter_Num_11
,
PCodeText_Space_size
);
...
...
YueJin_test_bench/source/Appliciation/Key_user.c
View file @
0b9ea76e
...
...
@@ -109,6 +109,10 @@ void Key_Operation_SW7(Key_Event_en_t enKeyEvent)
if
(
zhenduanflag
!=
2
&&
zhenduanflag
!=
3
)
{
zhenduanflag
=
2
;
FYReadState
=
FYReadState_ReqF187
;
}
else
{
...
...
@@ -136,6 +140,10 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent)
if
(
zhenduanflag
!=
1
)
{
zhenduanflag
=
1
;
FYWriteState
=
FYWriteState_Req1003
;
}
else
{
...
...
YueJin_test_bench/source/Appliciation/RTE_CAN.c
View file @
0b9ea76e
...
...
@@ -96,7 +96,7 @@ uint8_t Can_Write(_CAN_Msg *Msg)
uint32_t
idx
;
m_msg
.
u32CANID
=
Msg
->
MsgID
;
m_msg
.
u8CANLEN
=
Msg
->
MsgDLC
;
m_msg
.
u8CANFrameIDE
=
1
;
m_msg
.
u8CANFrameIDE
=
0
;
for
(
i
=
0
;
i
<
m_msg
.
u8CANLEN
;
i
++
)
{
m_msg
.
unCANData
.
u8CANData
[
i
]
=
Msg
->
Msg
[
i
];
...
...
@@ -107,6 +107,8 @@ uint8_t Can_Write(_CAN_Msg *Msg)
}
RSCAN0_CH4_Set_TXBUF_Data
(
Msg
->
MsgPro
,
&
m_msg
);
// RSCAN0_CH4_Set_FIFO0_Data(&m_msg);
return
0
;
}
...
...
YueJin_test_bench/source/Appliciation/Task.c
View file @
0b9ea76e
This diff is collapsed.
Click to expand it.
YueJin_test_bench/source/Appliciation/Task.h
View file @
0b9ea76e
...
...
@@ -32,4 +32,47 @@ void can_submit(void);
void
Can_Send_0x714
(
void
);
void
Can_Send_0x714_CHECK
(
void
);
#define UDS_F187_LEN 15U
#define UDS_F18A_LEN 5U
#define UDS_F18B_LEN 8U
#define UDS_F18C_LEN 6U
#define BT_ID_TX 0X0F4442FF
/*?? ID*/
#define BT_ID_RX 0X0F4254FF
/*BT MAC ID*/
#define BLE_ID_TX 0x0C75FFD3
/*BLE MAC ID*/
#define LY_CON_ID 0x0C21FFD3
/*???? ID*/
typedef
enum
{
FYReadState_ReqF187
,
FYReadState_ReqF18A
,
FYReadState_ReqF18B
,
FYReadState_ReqF18C
,
FYReadState_ReadALL
,
FYReadState_Idel
,
}
_FYReadState_st
;
typedef
enum
{
FYWriteState_Req1003
,
FYWriteState_Req1002
,
FYWriteState_Req2701
,
FYWriteState_Req2702
,
FYWriteState_ReqF187
,
FYWriteState_ReqF18A
,
FYWriteState_ReqF18B
,
FYWriteState_ReqF18C
,
FYWriteState_WriteALL
,
FYWriteState_Idel
,
}
_FYWriteState_st
;
extern
uint8_t
FYReadState
;
extern
uint8_t
FYWriteState
;
void
UDS_FiveYardsRead
(
void
);
void
UDS_FiveYardsWrite
(
void
);
void
Get_Ble_Address
(
void
);
#endif
\ No newline at end of file
YueJin_test_bench/source/Appliciation/UDS_ISO14229_Client.c
View file @
0b9ea76e
...
...
@@ -3,6 +3,7 @@
#include "Check_Ctrl.h"
#include "string.h"
#include "COM_CAN.h"
#include "Barcode_Scanner.h"
const
uint8_t
XorArray
[
4
]
=
{
0x56
,
0x45
,
0x73
,
0x54
};
//密钥使用
...
...
@@ -21,13 +22,14 @@ void UDS_Service_50_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_
{
UDS_ISO14229_Transfer
[
i
]
=
*
(
A_Data
+
i
);
}
if
(
UDS_ISO14229_Transfer
[
0
]
==
0x2
)
{
FYWriteState
=
FYWriteState_Req2701
;
}
if
(
UDS_ISO14229_Transfer
[
0
]
==
0x3
)
{
Global_Session
=
3
;
if
(
loc_Step
==
1
)
{
loc_Step
=
2
;
}
FYWriteState
=
FYWriteState_Req1002
;
}
}
void
UDS_Service_51_Indication
(
uint32_t
A_TA_type
,
uint16_t
A_Length
,
uint8_t
A_Data
[])
...
...
@@ -76,50 +78,33 @@ void UDS_Service_62_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_
DIDRequest
=
((
uint16_t
)
UDS_ISO14229_Transfer
[
0
]
<<
8
)
|
((
uint16_t
)
UDS_ISO14229_Transfer
[
1
]);
switch
(
DIDRequest
)
{
case
0xF086
:
//天有为版本
memcpy
(
InterNal_Version
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
case
0xF187
:
{
memcpy
(
&
get_num_buf
[
0
],
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
FYReadState
=
FYReadState_ReqF18A
;
break
;
}
case
0x2014
:
//天有为版本
memcpy
(
BCM_2014
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
case
0xF18A
:
{
memcpy
(
&
get_num_buf
[
UDS_F187_LEN
],
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
FYReadState
=
FYReadState_ReqF18B
;
break
;
}
case
SV_DID
:
//软件版本号
memcpy
(
SW_Version
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
case
HV_DID
:
//硬件版本号
memcpy
(
HW_Version
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
case
PV_DID
:
//零件号
memcpy
(
Part_Version
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
case
FUEL_DID
:
//燃油阻值
RES_CHECK_BEGIN
=
2u
;
memcpy
(
Res_St
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
case
DATE_DID
:
//制造日期
memcpy
(
Made_Date
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
case
0XF18B
:
{
memcpy
(
&
get_num_buf
[
UDS_F187_LEN
+
UDS_F18A_LEN
],
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
FYReadState
=
FYReadState_ReqF18C
;
break
;
case
CODE_DID
:
//供应商代码
memcpy
(
SUPPLIER
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
}
case
0xF202
:
memcpy
(
Evade_ODO
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
break
;
case
0xF203
:
memcpy
(
Risk_Evade
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
case
0xF18C
:
{
memcpy
(
&
get_num_buf
[
UDS_F187_LEN
+
UDS_F18A_LEN
+
UDS_F18B_LEN
],
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
FYReadState
=
FYReadState_ReadALL
;
break
;
}
case
0x6200
:
//Global_Session = UDS_ISO14229_Transfer [ 2 ];
if
(
loc_Step
==
0
)
...
...
@@ -127,10 +112,6 @@ void UDS_Service_62_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_
loc_Step
=
5
;
}
break
;
case
0x6201
:
LINE_IN_CHECK_BEGIN
=
2
;
memcpy
(
Line_IN_St
,
&
UDS_ISO14229_Transfer
[
2
],
Service22DiagDataLength
-
2
);
...
...
@@ -160,23 +141,25 @@ void UDS_Service_67_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t
DIDRequest
=
UDS_ISO14229_Transfer
[
0
];
switch
(
DIDRequest
)
{
case
3
:
case
7
:
UnLock_Flag
=
2
;
if
(
loc_Step
==
2
)
{
loc_Step
=
3
;
}
memcpy
(
seed_buff
,
&
UDS_ISO14229_Transfer
[
1
],
4
);
Ser27_CalculateKeyLV1
(
seed_buff
,
KEYBUFFER
);
//密钥计算
memcpy
(
seed_value
,
&
UDS_ISO14229_Transfer
[
1
],
4
);
FYWriteState
=
FYWriteState_Req2702
;
break
;
case
4
:
case
8
:
UnLock_Flag
=
0x55
;
if
(
loc_Step
==
3
)
{
loc_Step
=
4
;
}
memset
(
seed_buff
,
0
,
4
);
memset
(
KEYBUFFER
,
0
,
4
);
memset
(
seed_value
,
0
,
4
);
memset
(
key_array
,
0
,
4
);
FYWriteState
=
FYWriteState_ReqF187
;
break
;
}
}
...
...
@@ -216,6 +199,31 @@ void UDS_Service_6E_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_
{
UDS_ISO14229_Transfer
[
i
]
=
*
(
A_Data
+
i
);
}
DIDRequest
=
((
uint16_t
)
UDS_ISO14229_Transfer
[
0
]
<<
8
)
|
((
uint16_t
)
UDS_ISO14229_Transfer
[
1
]);
switch
(
DIDRequest
)
{
case
0xF187
:
{
FYWriteState
=
FYWriteState_ReqF18A
;
break
;
}
case
0xF18A
:
{
FYWriteState
=
FYWriteState_ReqF18B
;
break
;
}
case
0xF18B
:
{
FYWriteState
=
FYWriteState_ReqF18C
;
break
;
}
case
0xF18C
:
{
FYWriteState
=
FYWriteState_WriteALL
;
break
;
}
}
}
void
UDS_Service_7E_Indication
(
uint32_t
A_TA_type
,
uint16_t
A_Length
,
uint8_t
A_Data
[])
{
...
...
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