DIOSBoardController.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include "IDIOSBoardController.h"
  3. #include "DiosBoardCtrlParams.h"
  4. namespace DIOS::Dev::Detail::MachineryECOM
  5. {
  6. class IDIOSBoardPacketRecevier;
  7. class DIOSBoardController : public IDIOSBoardController
  8. {
  9. public:
  10. DIOSBoardController();
  11. ~DIOSBoardController();
  12. public:
  13. virtual bool Initialize(SCF* pSCF) override;
  14. virtual bool SetPassiveDisconnectEventHandle(HANDLE handle) override;
  15. virtual bool Connect(ResDataObject& Connection) override;
  16. virtual bool Disonnect() override;
  17. virtual DWORD Lock() override;
  18. virtual void UnLock() override;
  19. virtual bool Send(SCFPacket *sendPacket, SCFPacket *recvPacket) override;
  20. //virtual int Receive(char *pPacket, DWORD length, DWORD timeout) override;
  21. //virtual int Receive(SCFPacket *pPacket, DWORD timeout) override;
  22. virtual bool ReceiveACK(SCFPacket* sendPacket, SCFPacket* recvPacket, char* pszContext, unsigned int &PacketLen) override;
  23. virtual bool ReceiveFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, FUNCTIONID Id, unsigned char FrameCmd, char* pszContext, unsigned int PacketLen, unsigned int& nDataLen) override;
  24. //virtual bool ReceiveCANFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, CAN_ID Id, unsigned short stdid, CAN_PARAM& params) override;
  25. virtual void QueNotifyPacket(SCFPacket *pPacket) override;
  26. private:
  27. static PACKET_RET EventCallback(const char * pRecData, DWORD nLength, DWORD & PacketLength);
  28. private:
  29. bool DoSendSync(SCF::IO& oIO, SCFPacket *sendPacket, SCFPacket *recvPacket,DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT);
  30. std::string FormatPacketString(SCFPacket *packet);
  31. std::string FormatPacketString(const char *packet,int len);
  32. int Receive(SCF::IO& oIO, char* pPacket, DWORD length, DWORD timeout);
  33. int Receive(SCF::IO& oIO, SCFPacket *pPacket, DWORD timeout);
  34. private:
  35. SCF *m_SCFInstance;
  36. BOOL m_connectStatus;
  37. };
  38. }