DIOSBoardCommunicateEntity.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include "ICommunicateEntity.h"
  3. #include "IDIOSBoardController.h"
  4. namespace DIOS::Dev::Detail::MachineryECOM
  5. {
  6. //class IDIOSBoardController;
  7. class DIOSBoardCommunicateEntity : public ICommunicateEntity
  8. {
  9. public:
  10. DIOSBoardCommunicateEntity();
  11. ~DIOSBoardCommunicateEntity();
  12. public:
  13. virtual bool Initialize(IDIOSBoardPacketRecevier *packetReceiver) override;
  14. virtual bool Connect(SCF* pSCF, ResDataObject& Connection,HANDLE disconnectListenerhandle, const std::string &ioboardName) override;
  15. virtual bool Disonnect() override;
  16. public:
  17. //protocol wrapper
  18. virtual int GPIO_DO_Ctrl(DIOSBOARD_OP op, GPIO_DO_ID id, GPIO_DO_ATTRIBUTE attr, GPIO_DO_PARAM &params) override;
  19. virtual int GPIO_DI_Ctrl(DIOSBOARD_OP op, GPIO_DI_ID id, GPIO_DI_ATTRIBUTE attr, GPIO_DI_PARAM &params) override;
  20. virtual int AD_Ctrl(DIOSBOARD_OP op, AD_ID id, AD_ATTRIBUTE attr, AD_PARAM &params) override;
  21. virtual int RS232_Ctrl(DIOSBOARD_OP op, RS232_ID id, RS232_ATTRIBUTE attr, RS232_PARAM &params) override;
  22. virtual int SEC_Ctrl(DIOSBOARD_OP op, SEC_ID id, SEC_ATTRIBUTE attr, SEC_PARAM &params) override;
  23. virtual int SCL_Ctrl(DIOSBOARD_OP op, SCL_ID id, SCL_ATTRIBUTE attr, SCL_PARAM &params) override;
  24. virtual int ExposureCtrl(DIOSBOARD_OP op, EXPOSURE_ID id, EXPOSURE_PARAM &params) override;
  25. virtual int MCU_Ctrl(DIOSBOARD_OP op, MCU_ID id, MCU_ATTRIBUTE attr, MCU_PARAM &params) override;
  26. virtual int CAN_Ctrl(DIOSBOARD_OP op, CAN_ID id, CAN_ATTRIBUTE attr, CAN_PARAM &params) override;
  27. protected:
  28. virtual void OnReceivedPacketNotMatched(SCFPacket *RecvPacket);
  29. virtual void OnReceiveFrameNotMatched(char *packet,int length);
  30. private:
  31. bool SendInitDiosBoardCommands();
  32. int Read(FUNCTIONID Id, char *pszContext, unsigned int PacketLen);
  33. int ReadEx(FUNCTIONID Id, char *pszRes, unsigned int ResLen, char *pszContext, unsigned int PacketLen);
  34. int ReadFrame(FUNCTIONID Id, char *pszContext, unsigned int PacketLen, unsigned char FrameCmd);
  35. int ReadCanData(CAN_ID Id, unsigned short stdid,SCFPacket *sendPacket, SCFPacket *RecvPacket, CAN_PARAM &params);
  36. bool ReceiveACK(SCFPacket *sendPacket, SCFPacket *RecvPacket, DWORD timeout = DIOSCTRLCPU_COM_TIMEOUT);
  37. bool ReceiveFrame(FUNCTIONID Id, unsigned char FrameCmd, char *pszContext, unsigned int PacketLen, unsigned int& nDataLen, DWORD Timeout = DIOSCTRLCPU_COM_TIMEOUT);
  38. bool ReceiveCanFream(CAN_ID Id, unsigned short stdid, CAN_PARAM &params, DWORD timeout = DIOSCTRLCPU_COM_TIMEOUT);
  39. private:
  40. IDIOSBoardController *m_DiosBoard;
  41. SCFPacket *m_SendPacket;
  42. SCFPacket *m_ReceivePacket;
  43. };
  44. }