#pragma once #include #include #define TIMEOUT -99 class IMcChannel; typedef std::function ONCLOSE; typedef std::function ONCLOSING; typedef std::function ONCONNECTED; typedef std::function ONREADRAWDATA; typedef std::function ONWRITERAWDATA; typedef std::function ONREAD; typedef std::function ONREADDATA; typedef std::function ONWRITE; typedef struct _McChannelListener { ONCLOSE funOnClose; ONCLOSING funOnClosing; ONCONNECTED funOnConnected; ONREADRAWDATA funOnRead; ONWRITERAWDATA funOnWrite; } McChannelListener; namespace MC { #define LERROR 4 #define LWARN 3 #define LINFO 2 #define LDEBUG 1 /** @brief ÃüÁî*/ typedef enum CMD { /** @brief ³ÉÅú¶Á */ BATCH_READ = 0x0401, /** @brief ³ÉÅúд */ BATCH_WRITE = 0x1401, /** @brief Ëæ»ú¶Á */ RANDOM_READ = 0x0403, /** @brief ²âÊÔ(Ëæ»úд) */ TEST_RANDOM_WRITE = 0x0402, /** @brief ¼àÊÓ×¢²áÊý¾Ý */ MONITOR_REGISTER_DATA = 0x0801, /** @brief ¼àÊÓ */ MONITOR = 0x0802, } CMD; /** @brief ×ÓÃüÁî*/ typedef enum SUBCMD { /** @brief °´×Ö */ SC_WORD = 0x0000, /** @brief °´Î» */ SC_BIT = 0x0001, } SUBCMD; /** @brief ÈíÔª¼þÀàÐÍ*/ typedef enum SOFT_COMPONENT { /** @brief ÄÚ²¿¼ÌµçÆ÷(M*) */ M = 0x90, /** @brief Êý¾Ý¼Ä´æÆ÷(D*) */ D = 0xa8, /** @brief Á´½Ó¼Ä´æÆ÷(W*) */ W = 0xb4, /** @brief ÊäÈë(X*) */ X = 0x9c, /** @brief Êä³ö(Y*) */ Y = 0x9d, /** @brief Ëø´æ¼ÌµçÆ÷(L*) */ L = 0x92, /** @brief ²½½ø¼ÌµçÆ÷(S*) */ S = 0x98, /** @brief Á´½Ó¼ÌµçÆ÷(B*) */ B = 0xA0, /** @brief ±¨¾¯Æ÷(F*) */ F = 0x93, /** @brief Îļþ¼Ä´æÆ÷(ZR*) */ ZR = 0xB0, } SOFT_COMPONENT; } class IMcChannel { public: virtual void setChannelListener(McChannelListener *pListener) = 0; virtual void setActionInterval(int millisecond) = 0; virtual std::string &getName() = 0; virtual std::string &getIp() = 0; virtual unsigned int getServerPort() = 0; virtual unsigned int getLocalPort() = 0; virtual bool isConnected() = 0; virtual int connect() = 0; virtual int close() = 0; virtual int sendRawData(char *pData, int nDataSize) = 0; virtual int readData(MC::SOFT_COMPONENT softComponent, unsigned int addr, unsigned int nReadLen, ONREADDATA funOnReadData) = 0; virtual int readData2(MC::SOFT_COMPONENT softComponent, unsigned int addr, unsigned int nReadLen, int executeTime, ONREADDATA funOnReadData) = 0; virtual int readDWord(MC::SOFT_COMPONENT softComponent, unsigned int addr, ONREAD funOnRead) = 0; virtual int readWord(MC::SOFT_COMPONENT softComponent, unsigned int addr, ONREAD funOnRead) = 0; virtual int readWordIfIdle(MC::SOFT_COMPONENT softComponent, unsigned int addr, ONREAD funOnRead) = 0; virtual int readBit(MC::SOFT_COMPONENT softComponent, unsigned int addr, ONREAD funOnRead) = 0; virtual int writeData(MC::SOFT_COMPONENT softComponent, unsigned int addr, const char* pData, unsigned int nDataLen, ONWRITE funOnWrite) = 0; virtual int writeWord(MC::SOFT_COMPONENT softComponent, unsigned int addr, WORD value, ONWRITE funOnWrite) = 0; virtual int writeDWord(MC::SOFT_COMPONENT softComponent, unsigned int addr, DWORD value, ONWRITE funOnWrite) = 0; virtual int writeBit(MC::SOFT_COMPONENT softComponent, unsigned int addr, BOOL value, ONWRITE funOnWrite) = 0; virtual int writeBit2(MC::SOFT_COMPONENT softComponent, unsigned int addr, BOOL value, int executeTime, ONWRITE funOnWrite) = 0; virtual int writeBitIfIdle(MC::SOFT_COMPONENT softComponent, unsigned int addr, BOOL value, ONWRITE funOnWrite) = 0; };