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
5e17b162
Commit
5e17b162
authored
Jun 07, 2025
by
何锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:移植一线通文件
parent
0ccb6d3d
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
961 additions
and
0 deletions
+961
-0
Application.gpj
YueJin_test_bench/ghs/group/Application.gpj
+6
-0
WMHComm.c
YueJin_test_bench/source/Appliciation/WMHComm.c
+141
-0
WMHComm.h
YueJin_test_bench/source/Appliciation/WMHComm.h
+37
-0
WMHCommData.c
YueJin_test_bench/source/Appliciation/WMHCommData.c
+174
-0
WMHCommData.h
YueJin_test_bench/source/Appliciation/WMHCommData.h
+180
-0
mwWMHComm.c
YueJin_test_bench/source/Appliciation/mwWMHComm.c
+372
-0
mwWMHComm.h
YueJin_test_bench/source/Appliciation/mwWMHComm.h
+51
-0
No files found.
YueJin_test_bench/ghs/group/Application.gpj
View file @
5e17b162
...
@@ -2,6 +2,12 @@
...
@@ -2,6 +2,12 @@
[Subproject]
[Subproject]
:sourceDir=..\..\source\Appliciation
:sourceDir=..\..\source\Appliciation
WMHCommData.h
WMHCommData.c
WMHComm.h
WMHComm.c
mwWMHComm.h
mwWMHComm.c
api_RS485.c
api_RS485.c
api_RS485.h
api_RS485.h
R485_Communication_Matrix.c
R485_Communication_Matrix.c
...
...
YueJin_test_bench/source/Appliciation/WMHComm.c
0 → 100644
View file @
5e17b162
#include "wmhcomm.h"
#include "wmhcommdata.h"
#include "mwwmhcomm.h"
#include "TYW_stdint.h"
#include "string.h"
const
WMH_COMM_INIT_FRAME_T
WMHCommRecvInitList
[
EM_WMH_COMM_RECV_MSG_TOTAL
]
=
{
{
0x90u
,
50u
,
COMM_DATA_UNION_WI_BOX_LENGTH_0X90
,
10000u
,
1u
,
WMHCommDataWiBox_0x90
.
Bytes
,
WMHCommFrameCallBack_WiBox_0x90
,
WMHCommFrameTimeoutFunc_WiBox
,
WMHCommFrameCheckSumFunc
},
{
0x91u
,
1000u
,
COMM_DATA_UNION_WI_BOX_LENGTH_0X91
,
10000u
,
1u
,
WMHCommDataWiBox_0x91
.
Bytes
,
WMHCommFrameCallBack_WiBox_0x91
,
WMHCommFrameTimeoutFunc_WiBox
,
WMHCommFrameCheckSumFunc
},
{
0x92u
,
1000u
,
COMM_DATA_UNION_WI_BOX_LENGTH_0X92
,
10000u
,
1u
,
WMHCommDataWiBox_0x92
.
Bytes
,
WMHCommFrameCallBack_WiBox_0x92
,
WMHCommFrameTimeoutFunc_WiBox
,
WMHCommFrameCheckSumFunc
},
};
const
WMH_COMM_INIT_FRAME_T
WMHCommSendInitList
[
EM_WMH_COMM_SEND_MSG_TOTAL
]
=
{
{
0x80u
,
1000u
,
COMM_DATA_UNION_ICM_LENGTH
,
1000u
,
1u
,
WMHCommDataIcm
.
Bytes
,
WMHCommFrameCallBack_Icm
,
WMHCommFrameTimeoutFunc_Icm
,
WMHCommFrameCheckSumFunc
},
};
uint32_t
WMHCommRecvMessageTimeout
[
EM_WMH_COMM_RECV_MSG_TOTAL
]
=
{
0
};
uint32_t
WMHCommSendMessageTimeout
[
EM_WMH_COMM_SEND_MSG_TOTAL
]
=
{
0
};
uint32_t
WMHCommAnalysisPos
=
0
;
void
WMHCommInit
(
void
)
{
uint8_t
i
=
0
;
for
(
i
=
0
;
i
<
EM_WMH_COMM_RECV_MSG_TOTAL
;
i
++
)
{
(
void
)
memset
(
WMHCommRecvInitList
[
i
].
SignalList
,
0
,
WMHCommRecvInitList
[
i
].
DLC
);
WMHCommRecvMessageTimeout
[
i
]
=
WMHCommRecvInitList
[
i
].
TimeoutMax
;
}
for
(
i
=
0
;
i
<
EM_WMH_COMM_SEND_MSG_TOTAL
;
i
++
)
{
(
void
)
memset
(
WMHCommSendInitList
[
i
].
SignalList
,
0
,
WMHCommSendInitList
[
i
].
DLC
);
WMHCommSendMessageTimeout
[
i
]
=
WMHCommSendInitList
[
i
].
TimeoutMax
;
}
WMHCommAnalysisPos
=
0
;
}
void
WMHCommFramePackedTransmit
(
EM_WMH_COMM_SEND_MSG_T
MsgIdx
)
{
uint8_t
data
[
64
]
=
{
0
};
uint8_t
length
=
0
;
if
(
MsgIdx
<
EM_WMH_COMM_SEND_MSG_TOTAL
)
{
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
(
data
,
length
);
WMHCommSendMessageTimeout
[
MsgIdx
]
=
WMHCommSendInitList
[
MsgIdx
].
TimeoutMax
;
}
}
}
void
WMHCommFrameUnpacked
(
uint8_t
*
data
,
uint32_t
length
)
{
uint32_t
i
=
0
;
if
(
length
>
0
)
{
for
(
i
=
0
;
i
<
EM_WMH_COMM_RECV_MSG_TOTAL
;
i
++
)
{
if
(
data
[
0
]
==
WMHCommRecvInitList
[
i
].
ID
)
{
if
((
data
[
2
]
==
(
WMHCommRecvInitList
[
i
].
DLC
+
1
))
&&
(
length
==
(
WMHCommRecvInitList
[
i
].
DLC
+
4
)))
{
if
(
data
[
length
-
1
]
==
WMHCommRecvInitList
[
i
].
FrameGetCheckSum
(
data
[
0
],
WMHCommRecvInitList
[
i
].
DLC
,
data
[
1
],
&
data
[
3
]))
{
(
void
)
memcpy
(
WMHCommRecvInitList
[
i
].
SignalList
,
&
data
[
3
],
WMHCommRecvInitList
[
i
].
DLC
);
if
(
WMHCommRecvInitList
[
i
].
FrameCallBackFunc
!=
NULL_P
)
{
WMHCommRecvInitList
[
i
].
FrameCallBackFunc
();
}
WMHCommRecvMessageTimeout
[
i
]
=
WMHCommRecvInitList
[
i
].
TimeoutMax
;
}
}
break
;
}
}
}
}
void
WMHCommTimeoutService
(
uint32_t
TimerDelta
)
{
uint8_t
i
=
0
;
for
(
i
=
0
;
i
<
EM_WMH_COMM_RECV_MSG_TOTAL
;
i
++
)
{
if
(
WMHCommRecvMessageTimeout
[
i
]
>
TimerDelta
)
{
WMHCommRecvMessageTimeout
[
i
]
-=
TimerDelta
;
}
else
{
if
(
WMHCommRecvMessageTimeout
[
i
]
>
0
)
{
if
(
WMHCommRecvInitList
[
i
].
FrameTimeoutFunc
!=
NULL_P
)
{
WMHCommRecvInitList
[
i
].
FrameTimeoutFunc
();
}
}
WMHCommRecvMessageTimeout
[
i
]
=
0
;
}
}
for
(
i
=
0
;
i
<
EM_WMH_COMM_SEND_MSG_TOTAL
;
i
++
)
{
if
(
WMHCommSendMessageTimeout
[
i
]
>
TimerDelta
)
{
WMHCommSendMessageTimeout
[
i
]
-=
TimerDelta
;
}
else
{
if
(
WMHCommSendMessageTimeout
[
i
]
>
0
)
{
if
(
WMHCommSendInitList
[
i
].
FrameTimeoutFunc
!=
NULL_P
)
{
WMHCommSendInitList
[
i
].
FrameTimeoutFunc
();
}
}
WMHCommSendMessageTimeout
[
i
]
=
0
;
}
}
}
uint32_t
WMHCommServiceCnts
=
0
;
void
WMHCommService
(
uint32_t
TimerDelta
)
{
uint8_t
data
[
64
]
=
{
0
};
uint32_t
length
=
0
;
uint32_t
tmpPos
=
0
;
uint8_t
*
tmpAddr
=
NULL_P
;
uint8_t
i
=
0
;
WMHCommTimeoutService
(
TimerDelta
);
WMHCommServiceCnts
+=
TimerDelta
;
if
(
WMHCommServiceCnts
>=
50
)
{
WMHCommServiceCnts
=
0
;
//mwWMHCommTransmitBytes(tmpBuffer, length);
tmpAddr
=
mwWMHCommGetRecvData
(
&
length
,
&
tmpPos
);
if
(
tmpAddr
!=
NULL_P
)
{
i
=
0
;
while
(
WMHCommAnalysisPos
!=
tmpPos
)
{
data
[
i
++
]
=
(
tmpAddr
[
WMHCommAnalysisPos
++
]);
WMHCommAnalysisPos
=
WMHCommAnalysisPos
%
length
;
}
// if (SYS_OPR_STAT_IGN_ON)
// {
WMHCommFrameUnpacked
(
data
,
i
);
// }
}
}
}
uint8_t
WMHCommFrameGetRecvTimeoutSt
(
uint8_t
n
)
{
uint8_t
ret
=
0
;
if
(
n
<
EM_WMH_COMM_RECV_MSG_TOTAL
)
{
ret
=
(
uint8_t
)(
WMHCommRecvMessageTimeout
[
n
]
==
0
);
}
return
ret
;
}
YueJin_test_bench/source/Appliciation/WMHComm.h
0 → 100644
View file @
5e17b162
#ifndef __WMH_COMM_H_
#define __WMH_COMM_H_
#include "TYW_stdint.h"
#define NULL_P (void *)0
typedef
struct
{
uint8_t
ID
;
//ID;
uint16_t
Peroid
;
//报文周期,单位ms;
uint8_t
DLC
;
//报文长度;
uint16_t
TimeoutMax
;
//最大超时时间,单位ms;
uint8_t
RecoverContinueCnts
;
//报文超时后连续收到RecoverContinueCnts条判定报文恢复,报文周期不超过Peroid*1.2,填0或1为收到1条报文即判定报文恢复;
uint8_t
*
SignalList
;
//信号列表数组
void
(
*
FrameCallBackFunc
)(
void
);
//收到报文时会调用该回调函数;
void
(
*
FrameTimeoutFunc
)(
void
);
//TimeoutMax超时时会调用FrameTimeoutFunc(0),TimeoutLv[0]超时时调用FrameTimeoutFunc(1),TimeoutLv[1]超时时调用FrameTimeoutFunc(2),TimeoutLv[2]超时时调用FrameTimeoutFunc(3);
uint8_t
(
*
FrameGetCheckSum
)(
uint32_t
ID
,
uint8_t
DLC
,
uint8_t
ProtocolVersion
,
uint8_t
*
data
);
//接收报文时调用该函数,返回1表示checksum正确,0表示错误,如果错误,则不会调用FrameAnalysisFunc函数
}
WMH_COMM_INIT_FRAME_T
;
typedef
enum
{
EM_WMH_COMM_RECV_MSG_WI_BOX_0x90
=
0
,
EM_WMH_COMM_RECV_MSG_WI_BOX_0x91
,
EM_WMH_COMM_RECV_MSG_WI_BOX_0x92
,
EM_WMH_COMM_RECV_MSG_TOTAL
,
}
EM_WMH_COMM_RECV_MSG_T
;
typedef
enum
{
EM_WMH_COMM_SEND_MSG_ICM_0x80
=
0
,
EM_WMH_COMM_SEND_MSG_TOTAL
,
}
EM_WMH_COMM_SEND_MSG_T
;
extern
void
WMHCommInit
(
void
);
extern
void
WMHCommService
(
uint32_t
TimerDelta
);
extern
void
WMHCommFramePackedTransmit
(
EM_WMH_COMM_SEND_MSG_T
MsgIdx
);
extern
uint8_t
WMHCommFrameGetRecvTimeoutSt
(
uint8_t
n
);
#endif
YueJin_test_bench/source/Appliciation/WMHCommData.c
0 → 100644
View file @
5e17b162
#include "wmhcomm.h"
#include "wmhcommdata.h"
#include "TYW_stdint.h"
#include "string.h"
uint8_t
WMHCommFrameCheckSumFunc
(
uint32_t
ID
,
uint8_t
DLC
,
uint8_t
ProtocolVersion
,
uint8_t
*
data
)
{
uint32_t
ret
=
0
;
uint8_t
i
=
0
;
ret
+=
ID
;
ret
+=
ProtocolVersion
;
ret
+=
DLC
+
1
;
for
(
i
=
0
;
i
<
DLC
;
i
++
)
{
ret
+=
data
[
i
];
}
return
(
uint8_t
)(
ret
&
0xFF
);
}
/*******************************************************************************************
* Recv Message
*******************************************************************************************/
extern
const
WMH_COMM_INIT_FRAME_T
WMHCommRecvInitList
[
EM_WMH_COMM_RECV_MSG_TOTAL
];
COMM_DATA_UNION_WI_BOX_0x90
WMHCommDataWiBox_0x90
;
COMM_DATA_UNION_WI_BOX_0x91
WMHCommDataWiBox_0x91
;
COMM_DATA_UNION_WI_BOX_0x92
WMHCommDataWiBox_0x92
;
void
WMHCommFrameCallBack_WiBox_0x90
(
void
)
{
uint8_t
tmpCond
=
0
;
}
void
WMHCommFrameCallBack_WiBox_0x91
(
void
)
{
uint8_t
tmpCond
=
0
;
}
void
WMHCommFrameCallBack_WiBox_0x92
(
void
)
{
uint8_t
tmpCond
=
0
;
if
((
WMHCommDataWiBox_0x92
.
bits
.
Inquire
==
0
)
||
(
WMHCommDataWiBox_0x92
.
bits
.
NfcOperate
==
0
))
{
WMHCommFramePackedTransmit
(
EM_WMH_COMM_SEND_MSG_ICM_0x80
);
}
}
void
WMHCommFrameTimeoutFunc_WiBox
(
void
)
{
// 替代第一个 memset
for
(
int
i
=
0
;
i
<
COMM_DATA_UNION_WI_BOX_LENGTH_0X90
;
i
++
)
{
WMHCommDataWiBox_0x90
.
Bytes
[
i
]
=
0
;
}
// 替代第二个 memset
for
(
int
i
=
0
;
i
<
COMM_DATA_UNION_WI_BOX_LENGTH_0X91
;
i
++
)
{
WMHCommDataWiBox_0x91
.
Bytes
[
i
]
=
0
;
}
// 替代第三个 memset
for
(
int
i
=
0
;
i
<
COMM_DATA_UNION_WI_BOX_LENGTH_0X92
;
i
++
)
{
WMHCommDataWiBox_0x92
.
Bytes
[
i
]
=
0
;
}
}
/*******************************************************************************************
* Send Message
*******************************************************************************************/
COMM_DATA_UNION_ICM
WMHCommDataIcm
;
// uint8_t count = 0;
void
WMHCommFrameCallBack_Icm
(
void
)
{
// uint8_t CardKind = 0;
// //EM_FUEL_STATE_T tmpSt = GetFuelModuleState();
// uint32_t tmpVal = Data_ODO_Read() / 10u;
// // WMHCommDataIcm.bits.Mileage_H = 0x11;
// // WMHCommDataIcm.bits.Mileage_M = 0x33;
// // WMHCommDataIcm.bits.Mileage_L = 0x44;
// //if(WMHCommDataWiBox_0x92.bits.Inquire == 0x11)
// {
// if (tmpVal > 9999999) {
// tmpVal = 9999999;
// }
// // WMHCommDataIcm.bits.Mileage_H = (tmpVal >> 16) & 0xFF;
// // WMHCommDataIcm.bits.Mileage_M = (tmpVal >> 8) & 0xFF;
// // WMHCommDataIcm.bits.Mileage_L = (tmpVal) & 0xFF;
// WMHCommDataIcm.bits.Mileage_H = 0x11;
// WMHCommDataIcm.bits.Mileage_M = 0x33;
// WMHCommDataIcm.bits.Mileage_L = 0x44;
// }
// if(WMHCommDataWiBox_0x92.bits.Inquire == 0x22)
// {
// count = WMHCommDataWiBox_0x92.bits.Card_H / 16;
// if(NFC_CARD[count-1][1] == 0)
// {
// CardKind = 2;
// }
// else
// {
// CardKind = 1;
// }
// WMHCommDataIcm.bits.CardKind = CardKind;
// WMHCommDataIcm.bits.CardNum = count*16+count;
// WMHCommDataIcm.bits.CardID1 = NFC_CARD[count-1][2];
// WMHCommDataIcm.bits.CardID2 = NFC_CARD[count-1][3];
// WMHCommDataIcm.bits.CardID3 = NFC_CARD[count-1][4];
// WMHCommDataIcm.bits.CardID4 = NFC_CARD[count-1][5];
// WMHCommDataIcm.bits.CardTotal = Study_CardCount;
// }
// else
// {
// count = 0;
// WMHCommDataIcm.bits.CardKind = 0;
// WMHCommDataIcm.bits.CardNum = 0;
// WMHCommDataIcm.bits.CardID1 = 0;
// WMHCommDataIcm.bits.CardID2 = 0;
// WMHCommDataIcm.bits.CardID3 = 0;
// WMHCommDataIcm.bits.CardID4 = 0;
// WMHCommDataIcm.bits.CardTotal = 0;
// }
// if(WMHCommDataWiBox_0x92.bits.NfcOperate == 0x11)
// {
// WMHCommDataIcm.bits.AddCardStatus = Add_Card_Status;
// if(WMHCommDataIcm.bits.AddCardStatus == 2)
// {
// WMHCommDataIcm.bits.CardKind = NFC_CARD[NFC_Empty_card][1];
// WMHCommDataIcm.bits.CardNum = (NFC_Empty_card + 1)*17;
// WMHCommDataIcm.bits.CardID1 = NFC_CARD[NFC_Empty_card][2];
// WMHCommDataIcm.bits.CardID2 = NFC_CARD[NFC_Empty_card][3];
// WMHCommDataIcm.bits.CardID3 = NFC_CARD[NFC_Empty_card][4];
// WMHCommDataIcm.bits.CardID4 = NFC_CARD[NFC_Empty_card][5];
// WMHCommDataIcm.bits.CardTotal = Study_CardCount;
// }
// else if(WMHCommDataIcm.bits.AddCardStatus == 1)
// {
// WMHCommDataIcm.bits.CardKind = 0;
// WMHCommDataIcm.bits.CardNum = (NFC_Empty_card + 1)*17;
// WMHCommDataIcm.bits.CardID1 = 0;
// WMHCommDataIcm.bits.CardID2 = 0;
// WMHCommDataIcm.bits.CardID3 = 0;
// WMHCommDataIcm.bits.CardID4 = 0;
// WMHCommDataIcm.bits.CardTotal = Study_CardCount;
// }
// else
// {
// WMHCommDataIcm.bits.CardKind = 0;
// WMHCommDataIcm.bits.CardNum = 0;
// WMHCommDataIcm.bits.CardID1 = 0;
// WMHCommDataIcm.bits.CardID2 = 0;
// WMHCommDataIcm.bits.CardID3 = 0;
// WMHCommDataIcm.bits.CardID4 = 0;
// WMHCommDataIcm.bits.CardTotal = Study_CardCount;
// }
// WMHCommDataIcm.bits.RemoveCardStatus = 0;
// }
// else if(WMHCommDataWiBox_0x92.bits.NfcOperate == 0x22)
// {
// WMHCommDataIcm.bits.RemoveCardStatus = 2;
// WMHCommDataIcm.bits.AddCardStatus = 0;
// }
// else
// {
// WMHCommDataIcm.bits.AddCardStatus = 0xFF;
// WMHCommDataIcm.bits.RemoveCardStatus = 0xFF;
// }
// WMHCommDataIcm.bits.Reserved = 0xFF;
}
void
WMHCommFrameTimeoutFunc_Icm
(
void
)
{
//if((WMHCommDataWiBox_0x92.bits.Inquire != 0)||(WMHCommDataWiBox_0x92.bits.NfcOperate != 0 ))
{
//WMHCommFramePackedTransmit(EM_WMH_COMM_SEND_MSG_ICM_0x80);
}
}
YueJin_test_bench/source/Appliciation/WMHCommData.h
0 → 100644
View file @
5e17b162
#ifndef __WMH_COMM_DATA_H_
#define __WMH_COMM_DATA_H_
#include "TYW_stdint.h"
#define WMH_COMM_PROTOCOL_VERSION 0x2F;
#define COMM_DATA_UNION_WI_BOX_LENGTH_0X90 15
typedef
union
{
struct
{
uint8_t
ProductModel
:
6
;
//产品型号
uint8_t
ManufacturerCodingRules
:
2
;
//厂家编码规则
uint8_t
DeviceEncoding
:
8
;
//设备编码
uint8_t
SerialNumberL
:
8
;
//流水号
uint8_t
FaultStatus
:
1
;
//故障状态
uint8_t
ConstantSpeedStatus
:
1
;
//定速巡航状态
uint8_t
GearPStatus
:
1
;
//P档状态
uint8_t
ReadyStatus
:
1
;
//READY状态
uint8_t
SerialNumberH
:
4
;
//流水号高字节4
uint8_t
EstimateMileage_H
:
8
;
//预估里程
uint8_t
EstimateMileage_L
:
8
;
//预估里程
uint8_t
EnergyConsumption
:
8
;
//能耗系数
uint8_t
Fault8
:
1
;
//电机缺相故障
uint8_t
Fault7
:
1
;
//堵转保护故障
uint8_t
Fault6
:
1
;
//欠压保护故障
uint8_t
Fault5
:
1
;
//转把故障故障
uint8_t
Fault4
:
1
;
//控制器MOS管故障故障
uint8_t
Fault3
:
1
;
//刹车故障故障
uint8_t
Fault2
:
1
;
//电机霍尔故障故障
uint8_t
Fault1
:
1
;
//过压保护故障
uint8_t
Fault16
:
1
;
//电池充电过流保护故障
uint8_t
Fault15
:
1
;
//电池SOC过低故障
uint8_t
Fault14
:
1
;
//电池总压欠压保护故障
uint8_t
Fault13
:
1
;
//电池总压过压保护故障
uint8_t
Fault12
:
1
;
//电池放电MOS故障故障
uint8_t
Fault11
:
1
;
//电池充电MOS故障故障
uint8_t
Fault10
:
1
;
//控制器过热故障
uint8_t
Fault9
:
1
;
//电机过热故障
uint8_t
Reserved3
:
3
;
uint8_t
Fault21
:
1
;
//电池充电过温保护故障
uint8_t
Fault20
:
1
;
//电池充电低温保护故障
uint8_t
Fault19
:
1
;
//电池放电过温保护故障
uint8_t
Fault18
:
1
;
//电池放电低温保护故障
uint8_t
Fault17
:
1
;
//电池放电过流保护故障
uint8_t
Espeed_H
:
8
;
//电机脉冲数
uint8_t
Espeed_L
:
8
;
//电机脉冲数
uint8_t
Electricity
:
8
;
//电量
uint8_t
Reserved5
:
5
;
uint8_t
Fault39
:
1
;
//电池放电过流保护故障
uint8_t
GEAR
:
1
;
//1:S档 0:D档
uint8_t
FaultLED
:
1
;
//故障指示灯
uint8_t
BurglarStatus
:
1
;
//防盗状态
uint8_t
Reserved4
:
4
;
uint8_t
CartStatus
:
1
;
//推车状态
uint8_t
SideBraceStatus
:
1
;
//边撑状态
uint8_t
EBSStatus
:
1
;
//EBS状态
// uint8_t MessageWaittingToAnswer :1;//信息
// uint8_t PhoneWaittingToAnswer :1;//电话
// uint8_t PositFault :1;//定位故障
// uint8_t MasterControlFault :1;//主控故障
// uint8_t BtFault :1;//蓝牙故障
// uint8_t PowerFault :1;//电源故障
// uint8_t ThreeAxisSensorFault :1;//三轴传感器故障
// uint8_t OneServiceFault :1;//一线通故障
// uint8_t NetWorkFault :1;//网络故障
// uint8_t ACCFault :1;//ACC故障
// uint8_t Reserved2 :6;
// uint8_t AntennaFault :1;//天线故障
// uint8_t RfFault :1;//射频故障
//uint8_t EstimateMileage_H :8;//预估里程
//uint8_t EstimateMileage_L :8;//预估里程
}
bits
;
uint8_t
Bytes
[
COMM_DATA_UNION_WI_BOX_LENGTH_0X90
];
}
COMM_DATA_UNION_WI_BOX_0x90
;
extern
COMM_DATA_UNION_WI_BOX_0x90
WMHCommDataWiBox_0x90
;
#define COMM_DATA_UNION_WI_BOX_LENGTH_0X91 12
typedef
union
{
struct
{
uint8_t
Year
:
8
;
uint8_t
Month
:
8
;
uint8_t
Day
:
8
;
uint8_t
Hour
:
8
;
uint8_t
Minute
:
8
;
uint8_t
Second
:
8
;
uint8_t
BtDistanceSt
:
1
;
uint8_t
BtConnection
:
1
;
uint8_t
SignalStrengthOf4G
:
3
;
uint8_t
SignalStrengthOfGps
:
3
;
uint8_t
Reserved1
:
6
;
uint8_t
MessageWaittingToAnswer
:
1
;
//信息
uint8_t
PhoneWaittingToAnswer
:
1
;
//电话
uint8_t
PositFault
:
1
;
//定位故障
uint8_t
MasterControlFault
:
1
;
//主控故障
uint8_t
BtFault
:
1
;
//蓝牙故障
uint8_t
PowerFault
:
1
;
//电源故障
uint8_t
ThreeAxisSensorFault
:
1
;
//三轴传感器故障
uint8_t
OneServiceFault
:
1
;
//一线通故障
uint8_t
NetWorkFault
:
1
;
//网络故障
uint8_t
ACCFault
:
1
;
//ACC故障
uint8_t
Reserved2
:
6
;
uint8_t
AntennaFault
:
1
;
//天线故障
uint8_t
RfFault
:
1
;
//射频故障
uint8_t
EstimateMileage_H
:
8
;
//预估里程
uint8_t
EstimateMileage_L
:
8
;
//预估里程
}
bits
;
uint8_t
Bytes
[
COMM_DATA_UNION_WI_BOX_LENGTH_0X91
];
}
COMM_DATA_UNION_WI_BOX_0x91
;
extern
COMM_DATA_UNION_WI_BOX_0x91
WMHCommDataWiBox_0x91
;
#define COMM_DATA_UNION_WI_BOX_LENGTH_0X92 5
typedef
union
{
struct
{
uint8_t
Inquire
:
8
;
//0x00 未查询 0x11查询里程 0x22 查询NFC卡信息
uint8_t
NfcOperate
:
8
;
//0x00 无操作 0x11添卡 0x22 删卡
uint8_t
Card_H
:
8
;
//0x00 (暂不响应) 0x11~0xFF(卡1~卡15)
uint8_t
Card_L
:
8
;
uint8_t
Reserved
:
8
;
}
bits
;
uint8_t
Bytes
[
COMM_DATA_UNION_WI_BOX_LENGTH_0X92
];
}
COMM_DATA_UNION_WI_BOX_0x92
;
extern
COMM_DATA_UNION_WI_BOX_0x92
WMHCommDataWiBox_0x92
;
#define COMM_DATA_UNION_ICM_LENGTH 13
typedef
union
{
struct
{
uint8_t
Mileage_H
:
8
;
uint8_t
Mileage_M
:
8
;
uint8_t
Mileage_L
:
8
;
uint8_t
CardKind
:
8
;
//卡种类 0x01加密卡 0x02未加密卡
uint8_t
CardNum
:
8
;
//卡序号 0x11 0x22 0x33
uint8_t
CardID1
:
8
;
//卡ID
uint8_t
CardID2
:
8
;
//卡ID
uint8_t
CardID3
:
8
;
//卡ID
uint8_t
CardID4
:
8
;
//卡ID
uint8_t
CardTotal
:
8
;
//卡总数
uint8_t
AddCardStatus
:
8
;
//添卡状态0x01进行中 0x02成功 0x03失败 0x04卡已存在
uint8_t
RemoveCardStatus
:
8
;
//删卡状态0x01进行中 0x02成功 0x03失败
uint8_t
Reserved
:
8
;
}
bits
;
uint8_t
Bytes
[
COMM_DATA_UNION_ICM_LENGTH
];
}
COMM_DATA_UNION_ICM
;
extern
COMM_DATA_UNION_ICM
WMHCommDataIcm
;
extern
uint8_t
WMHCommFrameCheckSumFunc
(
uint32_t
ID
,
uint8_t
DLC
,
uint8_t
ProtocolVersion
,
uint8_t
*
data
);
extern
void
WMHCommFrameCallBack_WiBox_0x90
(
void
);
extern
void
WMHCommFrameCallBack_WiBox_0x91
(
void
);
extern
void
WMHCommFrameCallBack_WiBox_0x92
(
void
);
extern
void
WMHCommFrameTimeoutFunc_WiBox
(
void
);
extern
void
WMHCommFrameCallBack_Icm
(
void
);
extern
void
WMHCommFrameTimeoutFunc_Icm
(
void
);
#endif
YueJin_test_bench/source/Appliciation/mwWMHComm.c
0 → 100644
View file @
5e17b162
This diff is collapsed.
Click to expand it.
YueJin_test_bench/source/Appliciation/mwWMHComm.h
0 → 100644
View file @
5e17b162
#ifndef __MW_WMH_COMM_H_
#define __MW_WMH_COMM_H_
#include "TYW_stdint.h"
#define NULL_P (void *)0
typedef
enum
{
EM_WMH_COMM_PIN_TX_IDX
=
0
,
EM_WMH_COMM_PIN_RX_ID_0x90
,
EM_WMH_COMM_PIN_RX_ID_wibox
,
EM_WMH_COMM_PIN_TOTAL
,
}
EM_WMH_COMM_PIN_T
;
// static const IO_NUM_ENUM mwWMHCommPin[EM_WMH_COMM_PIN_TOTAL] = {
// IO_NUM_MCU_ONE_LINE_COMM_TX,
// IO_NUM_MCU_ONE_LINE_COMM_RX,
// };
typedef
enum
{
EM_WMH_COMM_FRAME_STANDBAY
=
0
,
EM_WMH_COMM_FRAME_START
,
EM_WMH_COMM_FRAME_LOGIC_1
,
EM_WMH_COMM_FRAME_LOGIC_0
,
EM_WMH_COMM_FRAME_STOP
,
EM_WMH_COMM_FRAME_TOTAL
,
}
EM_WMH_COMM_FRAME_T
;
typedef
struct
{
uint32_t
LowLevelTime
;
// us
uint32_t
HighLevelTime
;
// us
}
MW_WMH_COMM_TIMER_T
;
typedef
struct
{
MW_WMH_COMM_TIMER_T
Standard
;
MW_WMH_COMM_TIMER_T
UpperLimit
;
MW_WMH_COMM_TIMER_T
LowerLimit
;
}
MW_WMH_COMM_SEQUENTIAL_T
;
extern
void
mwWMHCommInit
(
void
);
extern
void
mwWMHCommRecvIsr_0x90
(
uint32_t
tmpCnts
);
extern
void
mwWMHCommRecvIsr_wibox
(
uint32_t
tmpCnts
);
extern
void
mwWMHCommSendIsr
(
uint32_t
tmpCnts
);
extern
void
mwWMHCommTransmitBytes
(
uint8_t
*
data
,
uint32_t
length
);
extern
uint8_t
*
mwWMHCommGetRecvData
(
uint32_t
*
BufferLen
,
uint32_t
*
RecvPos
);
extern
void
mwWMHCommRecvByte_0x90
(
uint8_t
data
);
extern
void
mwWMHCommRecvByte_wibox
(
uint8_t
data
);
#endif
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