📄 diaobiao97.h
字号:
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the TESTDLL_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// TESTDLL_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#define DLL_EXPORT __declspec(dllexport)
typedef int (CALLBACK * lpReceiveData)(long,char *,int);
typedef int (CALLBACK * lpSendData)(long,char *,int);
typedef void (CALLBACK * lpClearBuff)(BYTE);
typedef void (CALLBACK * lpOnEventMessage)(char *,DWORD);
typedef int (CALLBACK * lpIsExit)(void);
#define TY_FAULT 4
#define TY_EVENT 5
#define TY_TXCLEAR 14
#define TY_RXCLEAR 15
#define TY_TXANDRXCLEAR 16
#define TY_COM 50
#define TY_TCP 51
#define TY_UDP 52
#define CMD_YK 1 //yk type
#define CMD_YT 2
#define CMD_TIME 7
#define CMD_UPDATE_DATA 8
#define CMD_YK_SELECT 9
#define CMD_YK_CANCEL 10
#define CMD_YK_EXEC 11
#define TY_SOE_YX1 1 //soe type
#define TY_SOE_YX2 2
#define TY_SOE_BOXCOMM 3
#define TY_SOE_CHCOMM 4
#define TY_SOE_YCH 5
#define TY_SOE_YCL 6
#define TY_SOE_FG 7
#define TY_SOE_GZ 8
//#pragma pack( push, enter_modbus.h )
#pragma pack(8,push)
#define BOX_DATA_LEN 8 //装置私有数据长度
#define MAX_ITEM_NAME 50
struct CItem
{
WORD m_BoxID; //单元ID
BYTE m_GroupID; //组ID
WORD m_BoxIndexID; //单元内序号
WORD m_GroupIndexID; //组内序号
CHAR m_Name[MAX_ITEM_NAME];
VARIANT m_Value;
BYTE m_Type;
bool m_Status;
bool m_IsCalcu;//计算量标志
};
struct CallbackStruct
{
lpReceiveData fnReceiveData;
lpSendData fnSendData;
lpClearBuff fnClearBuff;
lpOnEventMessage fnOnEventMessage;
lpIsExit fnIsExit;
void * pThis;
void * pPort;
UINT PortType;
WORD ChannelID;
WORD BoxCount;
};
struct BoxPrivateData
{
long Addr;
long CommErrorCount;
BYTE Reserve[BOX_DATA_LEN];
};
struct EventData
{
BYTE DataType; //数据类型 1-模拟量 2-数字量
WORD UnitID; //单元号
WORD UnitIndex; //单元内序号
BYTE EventType; //事件类型 1-数字量变位(不带扩展数据) 2-数字量变位(带扩展数据)
// 3-单元通讯状态改变 4-通讯设备状态改变 5-模拟量越上限
// 6-模拟量越下限 7-模拟量越限复归 8-protect
short Year; //年
BYTE Month; //月
BYTE Day; //日
BYTE Hour; //时
BYTE Minute; //分
BYTE Second; //秒
short MSecond; //毫秒
double Value; //事件数据
BYTE ExtendData[256]; //额外数据
};
#pragma pack(pop)
extern "C"
{
DLL_EXPORT bool Connect(void *pThis,LPSTR type ,void *lpRD,void *lpSD,void *lpCB,void *lpMsg,void * lpExit,void *pCommPort,WORD ChannelID,int box_count);
DLL_EXPORT bool Disconnect(void);
DLL_EXPORT void Initialize(void);
DLL_EXPORT bool WriteData(long Addr,WORD type,WORD groupID,WORD item_count,CItem * pItem,int write_index,double write_value);
DLL_EXPORT int ReadData(long Addr,WORD groupID,WORD item_count,CItem * pItem,int * excount,EventData * * pExData,DWORD *errcount,bool * bCommState);
}
// Connect(pChannel,Type,fnReceiveData,fnSendData,&fnClearBuff,fnOnEventMessage,
// fnIsExit,pCommPort,ChannelID,BoxSize);
//writedata(addr,type,groupid,itemcount,pitem,value);
//ReadData(addr,groupid,itemcount,pitem,&soecount,&psoe,&errcount,&commflag);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -