123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- #include "IDIOSBoardController.h"
- #include "DiosBoardCtrlParams.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class IDIOSBoardPacketRecevier;
- class DIOSBoardController : public IDIOSBoardController
- {
- public:
- DIOSBoardController();
- ~DIOSBoardController();
- public:
- virtual bool Initialize(SCF* pSCF) 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 bool ReceiveACK(SCFPacket* sendPacket, SCFPacket* recvPacket, char* pszContext, unsigned int &PacketLen) override;
- virtual bool ReceiveFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, FUNCTIONID Id, unsigned char FrameCmd, char* pszContext, unsigned int PacketLen, unsigned int& nDataLen) override;
- //virtual bool ReceiveCANFrame(SCFPacket* sendPacket, SCFPacket* recvPacket, CAN_ID Id, unsigned short stdid, CAN_PARAM& params) override;
- virtual void QueNotifyPacket(SCFPacket *pPacket) override;
- private:
- static PACKET_RET EventCallback(const char * pRecData, DWORD nLength, DWORD & PacketLength);
- private:
- bool DoSendSync(SCF::IO& oIO, SCFPacket *sendPacket, SCFPacket *recvPacket,DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT);
- std::string FormatPacketString(SCFPacket *packet);
- std::string FormatPacketString(const char *packet,int len);
- int Receive(SCF::IO& oIO, char* pPacket, DWORD length, DWORD timeout);
- int Receive(SCF::IO& oIO, SCFPacket *pPacket, DWORD timeout);
- private:
- SCF *m_SCFInstance;
- BOOL m_connectStatus;
- };
- }
|