#pragma once #include "IDIOSBoardController.h" namespace DiosCtrlBox { class IDIOSBoardPacketRecevier; class DIOSBoardController : public IDIOSBoardController { public: DIOSBoardController(); ~DIOSBoardController(); public: virtual bool Initialize() override; virtual bool SetPassiveDisconnectEventHandle(HANDLE handle) override; virtual bool Connect(ResDataObject& Connection) override; virtual bool Disonnect() override; virtual DWORD Lock() override; virtual void UnLock() override; virtual bool Send(SCFPacket *sendPacket, SCFPacket *recvPacket) override; virtual int Receive(char *pPacket, DWORD length, DWORD timeout) override; virtual int Receive(SCFPacket *pPacket, DWORD timeout) override; virtual void QueNotifyPacket(SCFPacket *pPacket) override; private: static PACKET_RET EventCallback(const char * pRecData, DWORD nLength, DWORD & PacketLength); private: bool DoSendSync(SCFPacket *sendPacket, SCFPacket *recvPacket,DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT); std::string FormatPacketString(SCFPacket *packet); std::string FormatPacketString(const char *packet,int len); private: SCF *m_SCFInstance; BOOL m_connectStatus; }; }