📄 icompro.h
字号:
#ifndef __ICOMPRO2_H__
#define __ICOMPRO2_H__
//The interface ID for this special interface.
#define STR_IID_IPROTOCOL_IMP2 0x8cb34601, 0xa8f5, 0x11d4, { 0x8b, 0xe0, 0x0, 0x50, 0xba, 0xcf, 0xbb, 0x99 }
static const IID IID_ProtocolImp2 = { STR_IID_IPROTOCOL_IMP2 };
#define STR_IID_IPROTOCOL_IMP 0x2d921821, 0xd190, 0x11d1, { 0xbb, 0x16, 0x0, 0x40, 0x5, 0x62, 0x5a, 0xd7 }
static const IID IID_ProtocolImp = { STR_IID_IPROTOCOL_IMP };
//////////////////////////////////////////////////////////////////////////////
// CProtocolImp: Interface of Protocol.
class IProtocolImp2 : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void** ppvObj) = 0;
virtual ULONG STDMETHODCALLTYPE AddRef() = 0;
virtual ULONG STDMETHODCALLTYPE Release() = 0;
//This Interface
virtual int STDMETHODCALLTYPE ProcessPacket2( LPVOID lpPacket ) = 0;
//其它应用程序使用IPModem打开的串口句柄
virtual BOOL STDMETHODCALLTYPE SetTrans( LPVOID *lpHcomm ) = 0;
//将完成由上位机发送某些初始化字符串给相应的硬件设备的功能
virtual BOOL STDMETHODCALLTYPE SetInitialString(char* pDeviceName, LPVOID lpDevAddr,LPVOID InitialString) = 0;
//将串口的句柄传入到其它通讯程序中,实现了多个应用程序使用同一串口句柄的功能.
virtual BOOL STDMETHODCALLTYPE GetTrans( LPVOID *lpHcomm ) = 0;
};
class IProtocolImp : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void** ppvObj) = 0;
virtual ULONG STDMETHODCALLTYPE AddRef() = 0;
virtual ULONG STDMETHODCALLTYPE Release() = 0;
//This Interface
virtual BOOL STDMETHODCALLTYPE GetRegisters( char *szDeviceName, LPVOID *ppReg, int *pRegNum ) = 0;
//与地址为UnitAddr的设备尝试进行通讯,用于故障侦探及恢复尝试.
virtual BOOL STDMETHODCALLTYPE TryConnect( char* pDeviceName, int nUnitAddr, LPVOID lpDevAddr ) = 0;
//将lpDbItem内的有关下位机的内容进行转换并填充到lpVar中
virtual WORD STDMETHODCALLTYPE ConvertUserConfigToVar( LPVOID lpDbItem, LPVOID lpVar ) = 0;
//加载设备的特殊信息,板卡中使用较多
virtual int STDMETHODCALLTYPE LoadDeviceInfo( const char *sProducer, const char *sDeviceName, int nSubType ) = 0;
//初始化通讯设备 如:(串口或板卡等)
virtual BOOL STDMETHODCALLTYPE OpenComDevice( int nDeviceType, LPVOID lpInitData ) = 0;
//关闭该通讯设备
virtual BOOL STDMETHODCALLTYPE CloseComDevice() = 0;
//初始化设备,设置该设备的初始化状态,初始化信息从WIN.INI中得到
virtual BOOL STDMETHODCALLTYPE InitialDevice(char* pDeviceName, int nUnitAddr, LPVOID lpDevAddr ) = 0;
//判断变量是否能够加入到该包中一起采集:如果可以加入,返回TRUE并修改包的起止地址;否则返回FALSE.
virtual BOOL STDMETHODCALLTYPE AddVarToPacket( LPVOID lpVar, int nVarAccessType, LPVOID lpPacket) = 0;
//根据协议处理包,若处理成功则返回真且将数据存入varList中,否则返回FALSE.
virtual int STDMETHODCALLTYPE ProcessPacket( LPVOID lpPacket ) = 0;
//将字符串转换为设备地址,若成功则返回TRUE,若地址字符串不合理则返回FALSE.
virtual BOOL STDMETHODCALLTYPE StrToDevAddr( const char * str, LPVOID lpDevAddr )=0;
//返回最近一次的错误信息.
virtual char * STDMETHODCALLTYPE GetLastError()=0;// int * errCode, char ** errStr );
};
#endif //__PROTOCOLX_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -