fast/Plugin/Plc/ModbusClient.h
2025-01-20 10:30:01 +08:00

52 lines
1.4 KiB
C++

#pragma once
#include "ClientSocket.h"
#include "CommDataDef.h"
// CClientSocketThread
class CModbusClient : public CWinThread
{
DECLARE_DYNCREATE(CModbusClient)
public:
CModbusClient(CString strIp, int nPort, HWND hWnd); // protected constructor used by dynamic creation
CModbusClient(); // protected constructor used by dynamic creation
virtual ~CModbusClient();
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
void AnalysisRecvData(); //数据解析接口,供外部调用
void DealFrameData(BYTE* pData);
int WriteMultipleRegisters(int nRegAddr, int nRegCnt, short * pWriteData);
int ReadMultipleRegisters(int nRegAddr, int nRegCnt, short * pReadData);
public:
HWND m_hWnd;
CString m_strSerIP;
BYTE m_bDevID;
WORD m_wTcpID;
CClientSocket m_socket;
BOOL m_bConnected;
HANDLE m_ReadEventHandle; //读寄存器同步内核对象
HANDLE m_WriteEventHandle; //写寄存器同步内核对象
ST_MODBUS_SERVER_RSPREAD_FRAME m_stReadRspFrm;
ST_MODBUS_SERVER_RSPWRT_FRAME m_stWrtRspFrm;
ST_MODBUS_SERVER_RSPERR_FRAME m_stRspErrFrm;
BYTE* m_pRecvDataBuffer; //数据接收缓冲区指针
BYTE* m_pDealBuf; //数据处理缓冲区指针
int m_iWritePos;
int m_iReadPos;
__int64 m_llDataTotalLen;
__int64 m_llReadTotal;
protected:
DECLARE_MESSAGE_MAP()
afx_msg void OnCustomMsg(WPARAM wParam,LPARAM lParam);
};