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
ed3b874a
Commit
ed3b874a
authored
Oct 28, 2025
by
梁百峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:增加上电仪表里程获取并提示是否为0,修改零件号、第9步第13步暂停5s后再允许打点
parent
b7e9e4af
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
218 additions
and
37 deletions
+218
-37
CAN_APP.c
YueJin_test_bench/source/Appliciation/CAN_APP.c
+167
-33
CAN_APP.h
YueJin_test_bench/source/Appliciation/CAN_APP.h
+1
-0
CAN_Communication_Matrix.c
...test_bench/source/Appliciation/CAN_Communication_Matrix.c
+16
-0
CAN_Communication_Matrix.h
...test_bench/source/Appliciation/CAN_Communication_Matrix.h
+5
-0
Check_Ctrl.c
YueJin_test_bench/source/Appliciation/Check_Ctrl.c
+5
-1
Display_Info.c
YueJin_test_bench/source/Appliciation/Display_Info.c
+1
-1
Task.c
YueJin_test_bench/source/Appliciation/Task.c
+23
-2
No files found.
YueJin_test_bench/source/Appliciation/CAN_APP.c
View file @
ed3b874a
...
...
@@ -793,7 +793,61 @@ void Get_HW_msg(void);
void
Get_PN_msg
(
void
);
extern
uint8_t
getmsgfinish
;
extern
uint32_t
send0x714time
;
uint32_t
GenerateKey
(
uint8_t
*
Seed
)
{
const
uint8_t
Xor
[
4
]
=
{
0x34
,
0x66
,
0x2E
,
0x8D
};
uint8_t
key_array
[
4
],
Cal
[
4
];
uint32_t
key_value
;
for
(
size_t
i
=
0
;
i
<
4
;
i
++
)
{
Cal
[
i
]
=
Seed
[
i
]
^
Xor
[
i
];
}
key_array
[
0
]
=
((
Cal
[
2
]
&
0xF0
)
<<
4
)
|
(
Cal
[
3
]
&
0xF0
);
key_array
[
1
]
=
((
Cal
[
3
]
&
0x2F
)
<<
2
)
|
(
Cal
[
1
]
&
0x03
);
key_array
[
2
]
=
((
Cal
[
1
]
&
0xFC
)
>>
2
)
|
(
Cal
[
0
]
&
0xC0
);
key_array
[
3
]
=
((
Cal
[
0
]
&
0x0F
)
<<
4
)
|
(
Cal
[
2
]
&
0x0F
);
key_value
=
((
uint32_t
)
key_array
[
0
]
<<
24U
);
key_value
=
key_value
|
((
uint32_t
)
key_array
[
1
]
<<
16U
);
key_value
=
key_value
|
((
uint32_t
)
key_array
[
2
]
<<
8U
);
key_value
=
key_value
|
(
uint32_t
)
key_array
[
3
];
return
(
key_value
);
}
uint8_t
u8_seedresult
[
4
];
uint8_t
u8_seednum
[
4
]
=
{
0
};
uint32_t
u8_finalseed
=
0
;
uint8_t
u8_get_seed_msg
(
void
)
{
static
u8_GetSeedResult
=
0
;
if
(
u8_GetSeedResult
==
1
)
{
return
1
;
}
u8get714msg
[
0
]
=
Get_CAN_CH0_ID_794_byte0_Sig
();
u8get714msg
[
1
]
=
Get_CAN_CH0_ID_794_byte1_Sig
();
u8get714msg
[
2
]
=
Get_CAN_CH0_ID_794_byte2_Sig
();
u8get714msg
[
3
]
=
Get_CAN_CH0_ID_794_byte3_Sig
();
u8get714msg
[
4
]
=
Get_CAN_CH0_ID_794_byte4_Sig
();
u8get714msg
[
5
]
=
Get_CAN_CH0_ID_794_byte5_Sig
();
u8get714msg
[
6
]
=
Get_CAN_CH0_ID_794_byte6_Sig
();
u8get714msg
[
7
]
=
Get_CAN_CH0_ID_794_byte7_Sig
();
if
(
u8get714msg
[
1
]
==
0x67
&&
u8get714msg
[
2
]
==
0x01
)
{
memcpy
(
u8_seednum
,
&
u8get714msg
[
3
],
4
);
u8_finalseed
=
GenerateKey
(
u8_seednum
);
u8_seedresult
[
0
]
=
(
uint8_t
)(
u8_finalseed
>>
24
);
u8_seedresult
[
1
]
=
(
uint8_t
)(
u8_finalseed
>>
16
);
u8_seedresult
[
2
]
=
(
uint8_t
)(
u8_finalseed
>>
8
);
u8_seedresult
[
3
]
=
(
uint8_t
)
u8_finalseed
;
u8_GetSeedResult
=
1
;
}
return
u8_GetSeedResult
;
// getseedresult = 1;
}
void
send_0x714_fuc
()
{
...
...
@@ -809,6 +863,104 @@ void send_0x714_fuc()
switch
(
zhenduanstep
)
{
case
0
:
data7
[
0
]
=
0x02
;
data7
[
1
]
=
0x10
;
data7
[
2
]
=
0x03
;
data7
[
3
]
=
0xAA
;
data7
[
4
]
=
0xAA
;
data7
[
5
]
=
0xAA
;
data7
[
6
]
=
0xAA
;
data7
[
7
]
=
0xAA
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
1
:
data7
[
0
]
=
0x02
;
data7
[
1
]
=
0x27
;
data7
[
2
]
=
0x01
;
data7
[
3
]
=
0xAA
;
data7
[
4
]
=
0xAA
;
data7
[
5
]
=
0xAA
;
data7
[
6
]
=
0xAA
;
data7
[
7
]
=
0xAA
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
2
:
if
(
u8_get_seed_msg
()
==
1
)
{
zhenduanstep
++
;
}
break
;
case
3
:
data7
[
0
]
=
0x06
;
data7
[
1
]
=
0x27
;
data7
[
2
]
=
0x02
;
data7
[
3
]
=
u8_seedresult
[
0
];
data7
[
4
]
=
u8_seedresult
[
1
];
data7
[
5
]
=
u8_seedresult
[
2
];
data7
[
6
]
=
u8_seedresult
[
3
];
data7
[
7
]
=
0xAA
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
4
:
data7
[
0
]
=
0x10
;
data7
[
1
]
=
0x17
;
data7
[
2
]
=
0x2E
;
data7
[
3
]
=
0xF1
;
data7
[
4
]
=
0x87
;
data7
[
5
]
=
0x39
;
data7
[
6
]
=
0x44
;
data7
[
7
]
=
0x52
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
5
:
data7
[
0
]
=
0x21
;
data7
[
1
]
=
0x56
;
data7
[
2
]
=
0x2D
;
data7
[
3
]
=
0x31
;
data7
[
4
]
=
0x37
;
data7
[
5
]
=
0x31
;
data7
[
6
]
=
0x30
;
data7
[
7
]
=
0x30
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
6
:
data7
[
0
]
=
0x22
;
data7
[
1
]
=
0x30
;
data7
[
2
]
=
0x2D
;
data7
[
3
]
=
0x31
;
data7
[
4
]
=
0x34
;
data7
[
5
]
=
0x30
;
data7
[
6
]
=
0x30
;
data7
[
7
]
=
0x30
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
7
:
data7
[
0
]
=
0x23
;
data7
[
1
]
=
0x20
;
data7
[
2
]
=
0x20
;
data7
[
3
]
=
0x20
;
data7
[
4
]
=
0xAA
;
data7
[
5
]
=
0xAA
;
data7
[
6
]
=
0xAA
;
data7
[
7
]
=
0xAA
;
init_CAN_Frame
(
&
m_msg7
,
0x714
,
8
,
1
,
data7
);
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
8
:
data7
[
0
]
=
0x03
;
data7
[
1
]
=
0x22
;
data7
[
2
]
=
0xF1
;
...
...
@@ -821,7 +973,7 @@ void send_0x714_fuc()
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
1
:
case
9
:
data7
[
0
]
=
0x30
;
data7
[
1
]
=
0x00
;
data7
[
2
]
=
0x00
;
...
...
@@ -835,11 +987,11 @@ void send_0x714_fuc()
zhenduanstep
++
;
Get_SW_msg
();
break
;
case
2
:
case
10
:
Get_SW_msg
();
zhenduanstep
++
;
break
;
case
3
:
case
11
:
data7
[
0
]
=
0x03
;
data7
[
1
]
=
0x22
;
data7
[
2
]
=
0xF1
;
...
...
@@ -852,7 +1004,7 @@ void send_0x714_fuc()
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
4
:
case
12
:
data7
[
0
]
=
0x30
;
data7
[
1
]
=
0x00
;
data7
[
2
]
=
0x00
;
...
...
@@ -865,11 +1017,11 @@ void send_0x714_fuc()
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
5
:
case
13
:
Get_HW_msg
();
zhenduanstep
++
;
break
;
case
6
:
case
14
:
data7
[
0
]
=
0x03
;
data7
[
1
]
=
0x22
;
data7
[
2
]
=
0xF1
;
...
...
@@ -882,7 +1034,7 @@ void send_0x714_fuc()
can_mid
(
m_msg7
);
zhenduanstep
++
;
break
;
case
7
:
case
15
:
Get_PN_msg
();
data7
[
0
]
=
0x30
;
data7
[
1
]
=
0x00
;
...
...
@@ -897,7 +1049,7 @@ void send_0x714_fuc()
zhenduanstep
++
;
Get_PN_msg
();
break
;
case
8
:
case
16
:
Get_PN_msg
();
zhenduanstep
++
;
break
;
...
...
@@ -922,7 +1074,7 @@ void Get_SW_msg(void)
{
return
;
}
if
(
zhenduanstep
==
2
)
if
(
zhenduanstep
==
9
||
zhenduanstep
==
10
)
{
u8getSWmsg
[
0
]
=
Get_CAN_CH0_ID_794_byte0_Sig
();
u8getSWmsg
[
1
]
=
Get_CAN_CH0_ID_794_byte1_Sig
();
...
...
@@ -934,7 +1086,7 @@ void Get_SW_msg(void)
u8getSWmsg
[
7
]
=
Get_CAN_CH0_ID_794_byte7_Sig
();
}
if
(
u8getSWmsg
[
0
]
==
0x21
&&
zhenduanstep
==
2
)
if
(
u8getSWmsg
[
0
]
==
0x21
&&
(
zhenduanstep
==
9
||
zhenduanstep
==
10
)
)
{
memcpy
(
ruanjianbanbenhao
,
&
u8getSWmsg
[
1
],
7
);
ruanjianbanbenhao
[
7
]
=
0xFF
;
...
...
@@ -958,7 +1110,7 @@ void Get_HW_msg(void)
u8get714msg
[
5
]
=
Get_CAN_CH0_ID_794_byte5_Sig
();
u8get714msg
[
6
]
=
Get_CAN_CH0_ID_794_byte6_Sig
();
u8get714msg
[
7
]
=
Get_CAN_CH0_ID_794_byte7_Sig
();
if
(
u8get714msg
[
0
]
==
0x21
&&
zhenduanstep
==
5
)
if
(
u8get714msg
[
0
]
==
0x21
&&
zhenduanstep
==
13
)
{
memcpy
(
yingjianbanbenhao
,
&
u8get714msg
[
1
],
7
);
yingjianbanbenhao
[
7
]
=
0xFF
;
...
...
@@ -1026,29 +1178,7 @@ void Get_PN_msg(void)
}
uint32_t
GenerateKey
(
uint8_t
*
Seed
)
{
const
uint8_t
Xor
[
4
]
=
{
0x34
,
0x66
,
0x2E
,
0x8D
};
uint8_t
key_array
[
4
],
Cal
[
4
];
uint32_t
key_value
;
for
(
size_t
i
=
0
;
i
<
4
;
i
++
)
{
Cal
[
i
]
=
Seed
[
i
]
^
Xor
[
i
];
}
key_array
[
0
]
=
((
Cal
[
2
]
&
0xF0
)
<<
4
)
|
(
Cal
[
3
]
&
0xF0
);
key_array
[
1
]
=
((
Cal
[
3
]
&
0x2F
)
<<
2
)
|
(
Cal
[
1
]
&
0x03
);
key_array
[
2
]
=
((
Cal
[
1
]
&
0xFC
)
>>
2
)
|
(
Cal
[
0
]
&
0xC0
);
key_array
[
3
]
=
((
Cal
[
0
]
&
0x0F
)
<<
4
)
|
(
Cal
[
2
]
&
0x0F
);
key_value
=
((
uint32_t
)
key_array
[
0
]
<<
24U
);
key_value
=
key_value
|
((
uint32_t
)
key_array
[
1
]
<<
16U
);
key_value
=
key_value
|
((
uint32_t
)
key_array
[
2
]
<<
8U
);
key_value
=
key_value
|
(
uint32_t
)
key_array
[
3
];
return
(
key_value
);
}
uint8_t
chaengUDSstep
=
0
;
uint8_t
getseedresult
=
0
;
...
...
@@ -1149,6 +1279,10 @@ void resetchangeUDSfuc(void)
}
uint8_t
vspeedpeizhi
=
0
;
uint8_t
trackmode
=
0
;
uint32_t
Get_ODO_Value
(
void
)
{
return
(
uint32_t
)((
Get_Can_Ch0_ID_151_ODOH_Sig
()
<<
16
)
|
(
Get_Can_Ch0_ID_151_ODOM_Sig
()
<<
8
)
|
Get_Can_Ch0_ID_151_ODOL_Sig
());
}
void
change_UDS_DID
(
void
)
{
if
(
MENU_CHECK_STEP
!=
0
)
...
...
YueJin_test_bench/source/Appliciation/CAN_APP.h
View file @
ed3b874a
...
...
@@ -53,4 +53,5 @@ void Get_PN_msg(void);
void
change_UDS_DID
(
void
);
void
resetchangeUDSfuc
(
void
);
void
resetpowerfuel
(
void
);
uint32_t
Get_ODO_Value
(
void
);
#endif
YueJin_test_bench/source/Appliciation/CAN_Communication_Matrix.c
View file @
ed3b874a
...
...
@@ -249,7 +249,20 @@ uint8_t Get_CAN_CH0_ID_794_byte7_Sig(void)
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0_ID_0x794_Msg_Count
,
7u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_Can_Ch0_ID_151_ODOH_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAM_CH0_ID_0x151_Msg_Count
,
3u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_Can_Ch0_ID_151_ODOM_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAM_CH0_ID_0x151_Msg_Count
,
4u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Get_Can_Ch0_ID_151_ODOL_Sig
(
void
)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAM_CH0_ID_0x151_Msg_Count
,
5u
)
>>
0u
)
&
0xFFu
));
}
...
...
@@ -285,6 +298,9 @@ uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
case
CAN_CH0_ID_Send0x794_Msg
:
u8Result
=
CAN_CH0_ID_0x794_Msg_Count
;
break
;
case
CAN_CH0_ID_Send0x151_Msg
:
u8Result
=
CAM_CH0_ID_0x151_Msg_Count
;
break
;
default
:
u8Result
=
CAN_CH0_ID_TOTAL_MAX
;
break
;
...
...
YueJin_test_bench/source/Appliciation/CAN_Communication_Matrix.h
View file @
ed3b874a
...
...
@@ -13,6 +13,7 @@ typedef enum
CAN_CH0_ID_Send0CFE6CEE_Msg_Count
,
CAN_CH0_ID_Send18FEFC17_Msg_Count
,
CAN_CH0_ID_0x794_Msg_Count
,
CAM_CH0_ID_0x151_Msg_Count
,
CAN_CH0_ID_TOTAL_MAX
,
}
CAN_MSG_ID_t
;
...
...
@@ -34,6 +35,7 @@ extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define CAN_CH0_ID_Send0CFE6CEE_Msg 0x0CFE6CEEul
#define CAN_CH0_ID_Send18FEFC17_Msg 0x18FEFC17ul
#define CAN_CH0_ID_Send0x794_Msg 0x794ul
#define CAN_CH0_ID_Send0x151_Msg 0x151ul
extern
uint32_t
Get_ID_ODO
(
void
);
extern
uint32_t
Get_ID_FUEL
(
void
);
...
...
@@ -67,6 +69,9 @@ 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_151_ODOH_Sig
(
void
);
extern
uint8_t
Get_Can_Ch0_ID_151_ODOM_Sig
(
void
);
extern
uint8_t
Get_Can_Ch0_ID_151_ODOL_Sig
(
void
);
...
...
YueJin_test_bench/source/Appliciation/Check_Ctrl.c
View file @
ed3b874a
...
...
@@ -66,9 +66,13 @@ uint32_t loc_Step;
void
Function_Check_Ctrl
(
uint32_t
cmd
);
extern
uint32_t
restrict_vspeed_time
;
void
MENU_CHECK_STEP_ADD
(
void
)
{
if
(
MENU_CHECK_STEP
==
8
||
MENU_CHECK_STEP
==
12
)
{
restrict_vspeed_time
=
0
;
}
if
(
MENU_CHECK_STEP
>
13
)
{
MENU_CHECK_STEP
=
0
;
...
...
YueJin_test_bench/source/Appliciation/Display_Info.c
View file @
ed3b874a
...
...
@@ -4019,7 +4019,7 @@ void Display_Version_Info(uint32_t ON_OFF)
// TFT_LCD_Draw_Bmp(3, 160, ( uint8_t * )gImage_Alarm_12_WordX6_Y165); //24脚输出占空比
// TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Alarm_13_ImageX222_Y166); //%
TFT_LCD_Draw_Bmp(3, 290, ( uint8_t * )gImage_gImage_checkVX6_Y165 ); //检测台版本号
uint8_t mbuff [5] = {0,0x2E,
0,8
,0xff};
uint8_t mbuff [5] = {0,0x2E,
1,0
,0xff};
General_Number_Disp(mbuff, 160, 290);
}
...
...
YueJin_test_bench/source/Appliciation/Task.c
View file @
ed3b874a
...
...
@@ -68,8 +68,15 @@ extern uint8_t fuelreset1;
extern
uint8_t
fuelreset2
;
extern
uint8_t
fuelreset3
;
extern
uint8_t
fuelreset4
;
uint8_t
ODOclearflag
=
0
;
uint32_t
restrict_vspeed_time
=
35
;
void
Sys_Run_Mode_10ms_Tasks_Group
(
void
)
{
uint32_t
ODOvalue
=
Get_ODO_Value
();
if
(
ODOvalue
>
0
&&
MENU_CHECK_STEP
==
0
&&
ODOclearflag
==
0
)
{
ODOclearflag
=
1
;
}
if
(
MENU_CHECK_STEP
==
1
&&
fuelreset1
==
0
)
{
fuelreset1
=
1
;
...
...
@@ -98,7 +105,12 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
resetpowerfuel
();
}
BusOff_Service
(
);
Key_Service
(
);
//第9步以及第13步会无法触发按键5s
if
(
restrict_vspeed_time
>=
50
)
{
Key_Service
(
);
}
resetchangeUDSfuc
();
if
((
MENU_CHECK_STEP
!=
14
)
||
(
MENU_CHECK_STEP
!=
13
))
...
...
@@ -214,6 +226,10 @@ uint8_t time300ms;
void
Sys_Run_Mode_100ms_Tasks_Group
(
void
)
{
static
uint32_t
loc_timer
=
0
;
if
(
restrict_vspeed_time
<
50
)
{
restrict_vspeed_time
++
;
}
loc_timer
++
;
if
(
loc_timer
>=
15
)
{
...
...
@@ -236,7 +252,12 @@ void Sys_Run_Mode_100ms_Tasks_Group(void)
//硬线车速输出懒得改名了
Buzzer_Start
();
Total_Check
(
);
if
(
ODOclearflag
==
1
&&
MENU_CHECK_STEP
==
0
)
{
GUI_Display_Version_Code_Service
(
25
,
200
,
"The mileage is not zero!!! "
,
Letter_Num_11
,
PCodeText_Space_size
);
}
Total_Check
(
);
//u16LJSText = TFT_LCD_REQ_FIFO_MAX_DEPTH;
}
/*=================================================================*/
...
...
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