DIOSBoardController.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "IDIOSBoardController.h"
  3. namespace DiosCtrlBox
  4. {
  5. class IDIOSBoardPacketRecevier;
  6. class DIOSBoardController : public IDIOSBoardController
  7. {
  8. public:
  9. DIOSBoardController();
  10. ~DIOSBoardController();
  11. public:
  12. virtual bool Initialize() override;
  13. virtual bool SetPassiveDisconnectEventHandle(HANDLE handle) override;
  14. virtual bool Connect(ResDataObject& Connection) override;
  15. virtual bool Disonnect() override;
  16. virtual DWORD Lock() override;
  17. virtual void UnLock() override;
  18. virtual bool Send(SCFPacket *sendPacket, SCFPacket *recvPacket) override;
  19. virtual int Receive(char *pPacket, DWORD length, DWORD timeout) override;
  20. virtual int Receive(SCFPacket *pPacket, DWORD timeout) override;
  21. virtual void QueNotifyPacket(SCFPacket *pPacket) override;
  22. private:
  23. static PACKET_RET EventCallback(const char * pRecData, DWORD nLength, DWORD & PacketLength);
  24. private:
  25. bool DoSendSync(SCFPacket *sendPacket, SCFPacket *recvPacket,DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT);
  26. std::string FormatPacketString(SCFPacket *packet);
  27. std::string FormatPacketString(const char *packet,int len);
  28. private:
  29. SCF *m_SCFInstance;
  30. BOOL m_connectStatus;
  31. };
  32. }