#pragma once class SimpleLog; using namespace DIOS::Dev::Communication; using namespace DIOS::Dev::Communication::Detail; namespace DIOS::Dev::Detail::MachineryECOM { class IDIOSBoardController { public: IDIOSBoardController(){} virtual ~IDIOSBoardController(){} public: virtual bool Initialize(SCF* pSCF) = 0; virtual bool SetPassiveDisconnectEventHandle(HANDLE handle) = 0; virtual bool Connect(ResDataObject& Connection) = 0; virtual bool Disonnect() = 0; virtual DWORD Lock() = 0; virtual void UnLock() = 0; virtual bool Send(SCFPacket *sendPacket, SCFPacket *recvPacket) = 0; virtual bool ReceiveACK(SCFPacket* sendPacket, SCFPacket* recvPacket, char* pszContext, unsigned int &PacketLen) = 0; virtual bool ReceiveFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, FUNCTIONID Id, unsigned char FrameCmd, char* pszContext, unsigned int PacketLen, unsigned int& nDataLen) = 0; //virtual bool ReceiveCANFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, CAN_ID Id, unsigned short stdid, CAN_PARAM& params) = 0; //virtual int Receive(char *pPacket, DWORD length, DWORD timeout) = 0; //virtual int Receive(SCFPacket *pPacket, DWORD timeout) = 0; virtual void QueNotifyPacket(SCFPacket *pPacket) = 0; }; }