#pragma once #include "DiosBoardCtrlParams.h" using namespace DIOS::Dev::Communication::Detail; namespace DIOS::Dev::Detail::MachineryECOM { class DIOSBoardProtocolHelper { public: DIOSBoardProtocolHelper(); ~DIOSBoardProtocolHelper(); public: static DIOSBoardProtocolHelper *Instance(); public: bool MakeCommandPacket(FUNCTIONID Id, unsigned char *pDataBuff, unsigned int DataLen, SCFPacket *sendPacket); bool MakeMultiCommandPacket(FUNCTIONID Id, const char *pszContext, unsigned int PacketLen, SCFPacket *sendPacket); bool MakeData485WritePacket(const char *pszContext, unsigned int PacketLen, SCFPacket *sendPacket); bool MakeReadDataPacket(FUNCTIONID Id, SCFPacket *sendPacket); bool MakeReadDataExPacket(FUNCTIONID Id, char *pszReq, unsigned int ReqLen, SCFPacket *sendPacket); bool MakeReadResultPacket(FUNCTIONID Id, SCFPacket *sendPacket); bool MakeGpioDOSetPacket(GPIO_DO_ID id, GPIO_DO_ATTRIBUTE attr, GPIO_DO_PARAM ¶ms, SCFPacket *sendPacket); bool MakeGpioDOWritePacket(GPIO_DO_ID id, GPIO_DO_ATTRIBUTE attr, GPIO_DO_PARAM ¶ms, SCFPacket *sendPacket); bool MakeGpioDISetPacket(GPIO_DI_ID id, GPIO_DI_ATTRIBUTE attr, GPIO_DI_PARAM ¶ms, SCFPacket *sendPacket); bool MakeADSetPacket(AD_ID id, AD_ATTRIBUTE attr, AD_PARAM ¶ms, SCFPacket *sendPacket); bool MakeRS232SetPacket(RS232_ID id, RS232_ATTRIBUTE attr, RS232_PARAM ¶ms, SCFPacket *sendPacket); bool MakeSECSetPacket(SEC_ID id, SEC_ATTRIBUTE attr, SEC_PARAM ¶ms, SCFPacket *sendPacket); bool MakeSCLSetPacket(SCL_ID id, SCL_ATTRIBUTE attr, SCL_PARAM ¶ms, SCFPacket *sendPacket); bool MakeExposureWritePacket(EXPOSURE_ID id, char activeLevel, SCFPacket *sendPacket); bool MakeCanWritePacket(CAN_ID id,CAN_PARAM ¶ms, SCFPacket *sendPacket); bool MakeCanSetPacket(CAN_ID id, CAN_ATTRIBUTE attr, CAN_PARAM ¶ms, SCFPacket *sendPacket); private: int NextFrameID(); private: static DIOSBoardProtocolHelper *m_instance; int m_FrameID; }; }