ProtocolModbus.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // ProtocolPMC916.h: interface for the CProtocolModbus class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PROTOCOLPMC916_H__3A4B4E9B_C165_4415_8EC3_3F5AA66B53C9__INCLUDED_)
  5. #define AFX_PROTOCOLPMC916_H__3A4B4E9B_C165_4415_8EC3_3F5AA66B53C9__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #define DEBUG_PROTOCOL 1
  10. #include "Protocol.h"
  11. class CProtocolModbus : public CProtocol
  12. {
  13. public:
  14. virtual BOOL InitParam(PPORTPARAM pPortParam, CCommAsyn *pComm);
  15. virtual int WorkMain(
  16. int nAddr, //设备地址
  17. BYTE Start,//起始位
  18. BYTE StartAddr[2],//起始地址
  19. int nRegNum,//读取的寄存器个数
  20. BYTE FuncCode[2],
  21. int nDataLen,
  22. BYTE byWithAddrFlag,
  23. char chMsg[80]);
  24. virtual int WriteCommand(char DataBuffer[80], int nDataLen);
  25. CProtocolModbus();
  26. virtual ~CProtocolModbus();
  27. protected:
  28. HANDLE m_hSemComm;
  29. RESPONSE_STRUCT m_structResponse;
  30. protected:
  31. virtual int RequestStatus(
  32. int nAddr, //设备地址
  33. BYTE Start, //起始位
  34. BYTE StartAddr[2], //起始地址
  35. int nRegNum, //读取的寄存器个数
  36. BYTE FuncCode[2]);
  37. virtual int ResponseStatus(int nDataLen, BYTE byWithAddrFlag, char chMsg[80]);
  38. virtual int RequestWrStatus( char DataBuffer[80], int nDataLen);
  39. virtual int ResponseWrStatus(char DataBuffer[80], int nDataLen);
  40. };
  41. //BYTE GetCheckCode(const char * pSendBuf, int nEnd);//获得校验码
  42. char ByteToAscii(BYTE btSrc);
  43. WORD AsciiToBYTE(BYTE btSrc);
  44. static unsigned char LRC(unsigned char *auchMsg, unsigned short usDataLen);
  45. #endif // !defined(AFX_PROTOCOLPMC916_H__3A4B4E9B_C165_4415_8EC3_3F5AA66B53C9__INCLUDED_)