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
02da279a
Commit
02da279a
authored
Apr 05, 2026
by
黄国庆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:根据协议更改发送函数及校验函数
parent
6a8eeb1b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
73 deletions
+30
-73
WMHComm.c
YueJin_test_bench/source/Appliciation/WMHComm.c
+18
-33
WMHCommData.c
YueJin_test_bench/source/Appliciation/WMHCommData.c
+11
-9
WMHCommData.h
YueJin_test_bench/source/Appliciation/WMHCommData.h
+1
-1
mwWMHComm.c
YueJin_test_bench/source/Appliciation/mwWMHComm.c
+0
-30
No files found.
YueJin_test_bench/source/Appliciation/WMHComm.c
View file @
02da279a
...
@@ -8,11 +8,11 @@
...
@@ -8,11 +8,11 @@
extern
COMM_DATA_UNION_WI_BOX_0x01
WMHCommDataWiBox_0x01
;
extern
COMM_DATA_UNION_WI_BOX_0x01
WMHCommDataWiBox_0x01
;
const
WMH_COMM_INIT_FRAME_T
WMHCommRecvInitList
[
EM_WMH_COMM_RECV_MSG_TOTAL
]
=
{
const
WMH_COMM_INIT_FRAME_T
WMHCommRecvInitList
[
EM_WMH_COMM_RECV_MSG_TOTAL
]
=
{
{
0x80u
,
1000u
,
COMM_DATA_UNION_WI_BOX_LENGTH_0X80
,
5000u
,
1u
,
WMHCommDataWiBox_0x80
.
Bytes
,
WMHCommFrameCallBack_WiBox_0x80
,
WMHCommFrameTimeoutFunc_WiBox80
,
WMHComm
FrameCheckSumFunc
},
{
0x80u
,
1000u
,
COMM_DATA_UNION_WI_BOX_LENGTH_0X80
,
5000u
,
1u
,
WMHCommDataWiBox_0x80
.
Bytes
,
WMHCommFrameCallBack_WiBox_0x80
,
WMHCommFrameTimeoutFunc_WiBox80
,
WMHComm
_CalcChecksum
},
};
};
const
SifProtocolPacket_t
WMHCommSendInitList
[
EM_WMH_COMM_SEND_MSG_TOTAL
]
=
{
const
SifProtocolPacket_t
WMHCommSendInitList
[
EM_WMH_COMM_SEND_MSG_TOTAL
]
=
{
{
0x0Du
,
0X01u
,
3000u
,
COMM_DATA_UNION_WI_TLV_LENGTH_0X01
,
WMHCommDataWiBox_0x01
.
Bytes
,
1u
,
WMHCommFrameCallBack_WiBox_0x01
,
WMHCommFrameTimeoutFunc_WiBox_01
,
WMHComm
FrameCheckSumFunc
},
/*车速*/
{
0x0Du
,
0X01u
,
3000u
,
COMM_DATA_UNION_WI_TLV_LENGTH_0X01
,
WMHCommDataWiBox_0x01
.
Bytes
,
1u
,
WMHCommFrameCallBack_WiBox_0x01
,
WMHCommFrameTimeoutFunc_WiBox_01
,
WMHComm
_CalcChecksum
},
/*车速*/
};
};
...
@@ -41,39 +41,24 @@ void WMHCommInit(void)
...
@@ -41,39 +41,24 @@ void WMHCommInit(void)
*/
*/
void
WMHCommFramePackedTransmit
(
EM_WMH_COMM_SEND_MSG_T
MsgIdx
)
void
WMHCommFramePackedTransmit
(
EM_WMH_COMM_SEND_MSG_T
MsgIdx
)
{
{
uint8_t
data
[
64
]
=
{
0
};
uint8_t
data
[
64
];
uint8_t
length
=
0
;
uint8_t
headerLen
=
3
;
// 协议号+设备号+长度字段
if
((
MsgIdx
<
EM_WMH_COMM_SEND_MSG_TOTAL
)
&&
(
MsgIdx
>
0
)){
uint8_t
tlvLen
=
WMHCommSendInitList
[
MsgIdx
].
dataLength
;
if
((
WMHCommSendInitList
[
MsgIdx
].
dataLength
+
4
)
<=
64
)
{
uint8_t
totalLen
=
headerLen
+
tlvLen
+
1
;
// +1 校验和
// if (WMHCommSendInitList[MsgIdx].FrameCallBackFunc != NULL_P) {
// WMHCommSendInitList[MsgIdx].FrameCallBackFunc();
if
(
MsgIdx
<
EM_WMH_COMM_SEND_MSG_TOTAL
&&
MsgIdx
>
0
&&
totalLen
<=
64
)
{
// }
data
[
0
]
=
WMHCommSendInitList
[
MsgIdx
].
protocolNumber
;
data
[
0
]
=
WMHCommSendInitList
[
MsgIdx
].
protocolNumber
;
//协议号
data
[
1
]
=
WMHCommSendInitList
[
MsgIdx
].
deviceNumber
;
data
[
1
]
=
WMHCommSendInitList
[
MsgIdx
].
deviceNumber
;
//设备号
data
[
2
]
=
tlvLen
;
// 长度字段 = TLV数据长度(不加1)
data
[
2
]
=
WMHCommSendInitList
[
MsgIdx
].
dataLength
+
1u
;
//数据长度
memcpy
(
&
data
[
3
],
WMHCommSendInitList
[
MsgIdx
].
tlvArray
,
tlvLen
);
(
void
)
memcpy
(
&
data
[
3
],
WMHCommSendInitList
[
MsgIdx
].
tlvArray
,
WMHCommSendInitList
[
MsgIdx
].
dataLength
);
data
[
3
+
WMHCommSendInitList
[
MsgIdx
].
dataLength
]
=
WMHCommSendInitList
[
MsgIdx
].
FrameGetCheckSum
(
WMHCommSendInitList
[
MsgIdx
].
dataLength
,
WMHCommSendInitList
[
MsgIdx
].
dataLength
,
data
[
1
],
WMHCommSendInitList
[
MsgIdx
].
tlvArray
);
// 计算校验和(从data[0]到data[2+tlvLen-1])
length
=
WMHCommSendInitList
[
MsgIdx
].
dataLength
+
4u
;
uint8_t
csLen
=
headerLen
+
tlvLen
;
mwWMHCommTransmitBytes
(
data
,
length
);
data
[
csLen
]
=
WMHComm_CalcChecksum
(
data
,
csLen
);
mwWMHCommTransmitBytes
(
data
,
totalLen
);
WMHCommSendMessageTimeout
[
MsgIdx
]
=
WMHCommSendInitList
[
MsgIdx
].
TimeoutMax
;
WMHCommSendMessageTimeout
[
MsgIdx
]
=
WMHCommSendInitList
[
MsgIdx
].
TimeoutMax
;
}
}
}
// else if(MsgIdx == 0)
// {
// if ((WMHCommSendInitList[MsgIdx].DLC + 4) <= 64) {
// // if (WMHCommSendInitList[MsgIdx].FrameCallBackFunc != NULL_P) {
// // WMHCommSendInitList[MsgIdx].FrameCallBackFunc();
// // }
// data[0] = WMHCommSendInitList[MsgIdx].ID;//id
// data[1] = WMH_COMM_PROTOCOL_VERSION;//主协议版本号
// data[2] = WMHCommSendInitList[MsgIdx].DLC + 1u;//数据长度
// (void)memcpy(&data[3], WMHCommSendInitList[MsgIdx].SignalList, WMHCommSendInitList[MsgIdx].DLC);
// data[3 + WMHCommSendInitList[MsgIdx].DLC] = WMHCommSendInitList[MsgIdx].FrameGetCheckSum(WMHCommSendInitList[MsgIdx].ID, WMHCommSendInitList[MsgIdx].DLC, data[1], WMHCommSendInitList[MsgIdx].SignalList);
// length = WMHCommSendInitList[MsgIdx].DLC + 4u;
// mwWMHCommTransmitBytes_90(data, length);
// WMHCommSendMessageTimeout[MsgIdx] = WMHCommSendInitList[MsgIdx].TimeoutMax;
// }
// }
}
}
void
WMHCommFrameUnpacked
(
uint8_t
*
data
,
uint32_t
length
)
void
WMHCommFrameUnpacked
(
uint8_t
*
data
,
uint32_t
length
)
...
...
YueJin_test_bench/source/Appliciation/WMHCommData.c
View file @
02da279a
...
@@ -2,17 +2,19 @@
...
@@ -2,17 +2,19 @@
#include "wmhcommdata.h"
#include "wmhcommdata.h"
#include "TYW_stdint.h"
#include "TYW_stdint.h"
#include "string.h"
#include "string.h"
uint8_t
WMHCommFrameCheckSumFunc
(
uint32_t
ID
,
uint8_t
DLC
,
uint8_t
ProtocolVersion
,
uint8_t
*
data
)
/**
* @brief 计算协议包校验和(与接收方SifProtocol_VerifyChecksum一致)
* @param pData 指向协议头(协议号)的指针
* @param len 需要计算校验和的字节数(协议头+TLV数据,不含校验和自身)
* @return 计算出的校验和(累加和低8位)
*/
uint8_t
WMHComm_CalcChecksum
(
const
uint8_t
*
pData
,
uint8_t
len
)
{
{
uint32_t
ret
=
0
;
uint32_t
sum
=
0
;
uint8_t
i
=
0
;
for
(
uint8_t
i
=
0
;
i
<
len
;
i
++
)
{
ret
+=
ID
;
sum
+=
pData
[
i
];
ret
+=
ProtocolVersion
;
ret
+=
DLC
+
1
;
for
(
i
=
0
;
i
<
DLC
;
i
++
)
{
ret
+=
data
[
i
];
}
}
return
(
uint8_t
)(
ret
&
0xFF
);
return
(
uint8_t
)(
sum
&
0xFF
);
}
}
/*******************************************************************************************
/*******************************************************************************************
...
...
YueJin_test_bench/source/Appliciation/WMHCommData.h
View file @
02da279a
...
@@ -185,7 +185,7 @@ extern COMM_DATA_UNION_ICM WMHCommDataIcm;
...
@@ -185,7 +185,7 @@ extern COMM_DATA_UNION_ICM WMHCommDataIcm;
extern
COMM_DATA_UNION_WI_BOX_0x91
WMHCommDataWiBox_0x91
;
extern
COMM_DATA_UNION_WI_BOX_0x91
WMHCommDataWiBox_0x91
;
extern
COMM_DATA_UNION_WI_BOX_0x92
WMHCommDataWiBox_0x92
;
extern
COMM_DATA_UNION_WI_BOX_0x92
WMHCommDataWiBox_0x92
;
extern
uint8_t
WMHComm
FrameCheckSumFunc
(
uint32_t
ID
,
uint8_t
DLC
,
uint8_t
ProtocolVersion
,
uint8_t
*
data
);
extern
uint8_t
WMHComm
_CalcChecksum
(
const
uint8_t
*
pData
,
uint8_t
len
);
extern
void
WMHCommFrameCallBack_WiBox_0x80
(
void
);
extern
void
WMHCommFrameCallBack_WiBox_0x80
(
void
);
extern
void
WMHCommFrameCallBack_WiBox_0x90
(
void
);
extern
void
WMHCommFrameCallBack_WiBox_0x90
(
void
);
...
...
YueJin_test_bench/source/Appliciation/mwWMHComm.c
View file @
02da279a
...
@@ -470,37 +470,7 @@ void mwWMHCommTransmitBytes(uint8_t *data, uint32_t length)
...
@@ -470,37 +470,7 @@ void mwWMHCommTransmitBytes(uint8_t *data, uint32_t length)
}
}
}
}
void
mwWMHCommTransmitBytes_90
(
uint8_t
*
data
,
uint32_t
length
)
{
uint32_t
i
=
0
;
uint16_t
n
=
(
uint16_t
)
EM_WMH_COMM_PIN_TX_ID_0x90
;
if
((
length
>
0
)
&&
(
mwWMHCommSerialBuffer
[
n
].
Valid
==
0
))
{
for
(
i
=
0
;
i
<
length
;
i
++
)
{
mwWMHCommSerialBuffer
[
n
].
Buffer
[
mwWMHCommSerialBuffer
[
n
].
FillCnts
++
]
=
data
[
i
];
mwWMHCommSerialBuffer
[
n
].
FillCnts
=
mwWMHCommSerialBuffer
[
n
].
FillCnts
%
MAX_SERIAL_BUFF_SIZE
;
}
mwWMHCommSerialBuffer
[
n
].
Valid
=
1
;
}
// if ((length > 0) && (mwWMHCommSerialBuffer[n2].Valid == 0))
// {
// for (i = 0; i < length; i++)
// {
// mwWMHCommSerialBuffer[n2].Buffer[mwWMHCommSerialBuffer[n2].FillCnts++] = data[i];
// mwWMHCommSerialBuffer[n2].FillCnts = mwWMHCommSerialBuffer[n2].FillCnts % MAX_SERIAL_BUFF_SIZE;
// }
// mwWMHCommSerialBuffer[n2].Valid = 1;
// }
}
void
mwWMHCommRecvByte_0x90
(
uint8_t
data
)
{
// uint16_t n = (uint16_t)EM_WMH_COMM_PIN_RX_ID_0x90;
// mwWMHCommSerialBuffer[n].Buffer[mwWMHCommSerialBuffer[n].FillCnts++] = data;
// mwWMHCommSerialBuffer[n].FillCnts = mwWMHCommSerialBuffer[n].FillCnts % MAX_SERIAL_BUFF_SIZE;
}
void
mwWMHCommRecvByte_wibox
(
uint8_t
data
)
void
mwWMHCommRecvByte_wibox
(
uint8_t
data
)
{
{
uint16_t
n
=
(
uint16_t
)
EM_WMH_COMM_PIN_RX_ID_wibox
;
uint16_t
n
=
(
uint16_t
)
EM_WMH_COMM_PIN_RX_ID_wibox
;
...
...
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