📄 xdpsapi30.h
字号:
///////////////////////////////XDPSAPI30///////////////////////////////
#pragma pack(push, 1)
typedef struct {
WORD wTout; //超时周期,单位为100ms
char szTag[30]; //测点名
WORD wTagSum; //内部使用
char szSm[96]; //测点描述
char szTz[6];//12 //特征字
char szUnit[12]; //单位
char szFmt[12]; //输出格式
float fUpLmt; //工程值上限
float fDownLmt; //工程值下限
WORD wCollectSpan; //内部使用
WORD wStatus; //测点状态
float fValue; //测点值
WORD wUnAckCnt; //报警未确认次数
SYSTEMTIME ardt; //最近一次报警时间
WORD wTcnt; //内部使用
} SAnalogPoint;
//模拟量实时状态:
// 以一个字存放,0~15位分别定义如下:
// b0:保留,为0。
// b1:OFW,功能块中任一个输出模拟量溢出范围或越出定义的量程限,
// 此位置1。任一个模拟量输出被限幅在有效数值之间,如果越限,
// 就置位本功能模块的数值溢出状态位。其它情况如被零除、负数
// 开根号等也本置溢出标志。
// b2:IOB,/O通道故障,此位置1。此状态从I/O通道带过来。
// b3:TOUT,网络或I/O通道接收超时,此位置1。超时识别位,超时
// 时被置为1。MMI自己设置本位。各节点自用。本位用于对从网上
// 获取数据的超时识别。
// b4:保留,为0。
// b5:Q,测点品质,0=好,1=坏。取决于b1~b4和前续功能块品质及传
// 递方式。
// b6:EN,1=ScanOff/0=ScanOn,或1=Disbable/0=Enable。
// b7:FST,计算过,此标识位置1。
// b10b9b8:越限报警标识,000=Normal, 100=LL, 101=L, 110=H,
// 111=HH, 011=速率报警
// b11:报警未确认标识, 0=Normal, 1=Unack
// b14b13b12:报警优先级,0~5, 5最高
// b15:报警检查切除标识, 0=Off, 1=On
typedef struct {
WORD wTout; //超时周期,单位为100ms
char szTag[30]; //测点名
WORD wTagSum; //内部使用
char szSm[96]; //测点描述
char szTz[6];//12 //特征字
char szZeroSm[12]; //0状态描述
char szOneSm[12]; //1状态描述
WORD wCollectSpan; //内部使用
WORD wStatus; //测点状态
WORD wUnAckCnt; //报警未确认次数
SYSTEMTIME ardt; //最近一次报警时间
WORD wTcnt; //内部使用
} SDigitalPoint;
//开关量值和状态:
// 用一个1字,包含实时值和实时状态,存放格式定义如下:
// b0:开关点的值, 0=False, 1=True
// b7~b1:同模拟点的定义
// b8:报警标识,0=Normal, 1=Alarm
// b10b9:保留,应为0。
// b15~b11:同模拟点的定义
#pragma pack(pop)
//1)初始化数据库,调用程序首先必须调用InitDatabase
//返回值为0时表示成功。返回值为非0时为不成功,必须退出程序。
int WINAPI InitDatabase();
//2) 根据测点名取模拟点ID号
//szTag为测点名
//返回测点ID号,当返回值-1时表示szTag测点不存在
//注意:ID号是一个4字节长整数,它由两部分组成,节点号和测点在此节点中的序号及本地ID号,
// ID号的高字为节点号,低字为本地ID号
int WINAPI GetAnalogPointID( LPSTR szTag);
//3) 根据ID号取模拟量测点的结构
//iAxID为测点ID号
//pAx为返回的模拟量测点结构
//返回值TRUE表示成功,FALSE表示失败
BOOL WINAPI GetAnalogPoint( int iAxID, SAnalogPoint *pAx);
//4) 根据测点名取开关量点ID号
//szTag为测点名
//返回测点ID号,当返回值-1时表示szTag测点不存在
//注意:ID号是一个4字节长整数,它由两部分组成,节点号和测点在此节点中的序号及本地ID号,
// ID号的高字为节点号,低字为本地ID号
int WINAPI GetDigitalPointID( LPSTR szTag);
//5) 根据ID号取开关量测点的结构
//iDxID为测点ID号
//pDx为返回的开关量测点结构
//返回值TRUE表示成功,FALSE表示失败
BOOL WINAPI GetDigitalPoint( int iDxID, SDigitalPoint *pDx);
#define RUNNINGSTATUS_DOG_REMOVED -2
#define RUNNINGSTATUS_WITHOUT_DOG_TIMEOUT -1
#define RUNNINGSTATUS_UNKOWN 0
#define RUNNINGSTATUS_WITHOUT_DOG_NOTIMEOUT 1
#define RUNNINGSTATUS_NORMAL 2
//6)取得当前狗的运行状态
//如果函数2~5返回不成功,那可能是未插加密狗,下面的函数返回值大于0时,表示加密狗的状态正确。
//注意当未插加密狗时,API仍然可以调用10分钟左右的时间,超过10分钟,函数2~5将返回失败。
int WINAPI GetDogRunningStatus();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -