123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- #include "ICommunicateEntity.h"
- #include "IDIOSBoardController.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- //class IDIOSBoardController;
- class DIOSBoardCommunicateEntity : public ICommunicateEntity
- {
- public:
- DIOSBoardCommunicateEntity();
- ~DIOSBoardCommunicateEntity();
- public:
- virtual bool Initialize(IDIOSBoardPacketRecevier *packetReceiver) override;
- virtual bool Connect(SCF* pSCF, ResDataObject& Connection,HANDLE disconnectListenerhandle, const std::string &ioboardName) override;
- virtual bool Disonnect() override;
- public:
- //protocol wrapper
- virtual int GPIO_DO_Ctrl(DIOSBOARD_OP op, GPIO_DO_ID id, GPIO_DO_ATTRIBUTE attr, GPIO_DO_PARAM ¶ms) override;
- virtual int GPIO_DI_Ctrl(DIOSBOARD_OP op, GPIO_DI_ID id, GPIO_DI_ATTRIBUTE attr, GPIO_DI_PARAM ¶ms) override;
- virtual int AD_Ctrl(DIOSBOARD_OP op, AD_ID id, AD_ATTRIBUTE attr, AD_PARAM ¶ms) override;
- virtual int RS232_Ctrl(DIOSBOARD_OP op, RS232_ID id, RS232_ATTRIBUTE attr, RS232_PARAM ¶ms) override;
- virtual int SEC_Ctrl(DIOSBOARD_OP op, SEC_ID id, SEC_ATTRIBUTE attr, SEC_PARAM ¶ms) override;
- virtual int SCL_Ctrl(DIOSBOARD_OP op, SCL_ID id, SCL_ATTRIBUTE attr, SCL_PARAM ¶ms) override;
- virtual int ExposureCtrl(DIOSBOARD_OP op, EXPOSURE_ID id, EXPOSURE_PARAM ¶ms) override;
- virtual int MCU_Ctrl(DIOSBOARD_OP op, MCU_ID id, MCU_ATTRIBUTE attr, MCU_PARAM ¶ms) override;
- virtual int CAN_Ctrl(DIOSBOARD_OP op, CAN_ID id, CAN_ATTRIBUTE attr, CAN_PARAM ¶ms) override;
- protected:
- virtual void OnReceivedPacketNotMatched(SCFPacket *RecvPacket);
- virtual void OnReceiveFrameNotMatched(char *packet,int length);
- private:
- bool SendInitDiosBoardCommands();
- int Read(FUNCTIONID Id, char *pszContext, unsigned int PacketLen);
- int ReadEx(FUNCTIONID Id, char *pszRes, unsigned int ResLen, char *pszContext, unsigned int PacketLen);
- int ReadFrame(FUNCTIONID Id, char *pszContext, unsigned int PacketLen, unsigned char FrameCmd);
- int ReadCanData(CAN_ID Id, unsigned short stdid,SCFPacket *sendPacket, SCFPacket *RecvPacket, CAN_PARAM ¶ms);
- bool ReceiveACK(SCFPacket *sendPacket, SCFPacket *RecvPacket, DWORD timeout = DIOSCTRLCPU_COM_TIMEOUT);
- bool ReceiveFrame(FUNCTIONID Id, unsigned char FrameCmd, char *pszContext, unsigned int PacketLen, unsigned int& nDataLen, DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT);
- bool ReceiveCanFream(CAN_ID Id, unsigned short stdid, CAN_PARAM ¶ms, DWORD timeout = DIOSCTRLCPU_COM_TIMEOUT);
- private:
- IDIOSBoardController *m_DiosBoard;
- SCFPacket *m_SendPacket;
- SCFPacket *m_ReceivePacket;
- };
- }
|