-
Notifications
You must be signed in to change notification settings - Fork 1
/
proISO11898_2_DWCAN.h
71 lines (55 loc) · 2.28 KB
/
proISO11898_2_DWCAN.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* 来源:iso11898_2_dwcan
* 说明: 本代码段只做下位机接口调用和实现proBase相关抽象方法,具体实现放在下位机中.
* 作者: Thomas
* 时间: 20180604
*/
#pragma once
#include <atomic>
#include "../../../FcarPdudll/public/proBase.h"
class proISO11898_2_DWCAN :
public proBase
{
public:
proISO11898_2_DWCAN();
virtual ~proISO11898_2_DWCAN();
void OnEvent(UNUM32 hCop, UNUM32 eventType, void* param) override;
UNUM32 GetRawdataPos() override;
BOOL ClearTxBuffer() override;
BOOL ClearRxBuffer() override;
BOOL SetPin(UNUM32 pinDef) override;
BOOL StartMsgFilter(PDU_IO_FILTER_LIST* pParam) override;
BOOL StopMsgFilter(UNUM32 FilterNumber) override;
BOOL ClearMsgFilter() override;
BOOL SendBreak() override;
BOOL SetComParam(PDU_PARAM_ITEM* pParamItem, UNUM32 ItemNum) override;
UNUM32 StartComm(UNUM32 hCop, UNUM8 *pData, UNUM32 datalen, UNUM32 TxFlag, UNUM32 *TxTimestamp, PDU_EXP_RESP_DATA* pExpectedResp, UNUM32 ExpectedRespNum) override;
UNUM32 StopComm(UNUM32 hCop, UNUM8 *pData, UNUM32 datalen, UNUM32 TxFlag, UNUM32 *TxTimestamp, PDU_EXP_RESP_DATA* pExpectedResp, UNUM32 ExpectedRespNum) override;
UNUM32 SendData(UNUM32 hCop, UNUM8 *pData, UNUM32 datalen, UNUM32 TxFlag, UNUM32 *TxTimestamp, PDU_EXP_RESP_DATA* pExpectedResp, UNUM32 ExpectedRespNum) override;
int RecvData(UNUM32 hCop, UNUM8* pBuffer, UNUM32* bufSize, UNUM32* RxTimestamp, UNUM32* RxFlag, PDU_EXP_RESP_DATA* pExpectedResp, UNUM32 ExpectedRespNum) override;
private:
UNUM32 m_Baudrate;
UNUM32 m_BitSamplePoint;
UNUM32 m_SyncJumpWidth;
UNUM16 m_reserve;
UNUM32 m_cop;
UNUM8 m_channel;
UNUM8 m_protocol_id;
bool m_init_protocol_flag;
bool m_stop_protocol_flag;
std::atomic<bool> m_confirm;
typedef enum e_protocol_change_param_status
{
CHANGE_COMPLETE,
CHANGE_NOT_COMPLETE,
} e_protocol_change_param_status;
typedef struct t_protocol_change_param
{
UNUM8 id;
e_protocol_change_param_status status;
} t_protocol_change_param;
t_protocol_change_param m_cur_param;
int sendToVciWithChannel(UNUM8 cmd, UNUM8* param, UNUM32 paramlen);
int recvFromVciInSameChannel(UNUM8* cmd, UNUM8* param, UNUM32* paramlen);
int SetParamToVCI(UNUM32 comid, UNUM8* sendbuf, UNUM32 sendlen);
void HandleMSCPProCommIndication(const UNUM8 cmd, const UNUM8* buf, const UNUM32 len);
};