实时数据平台C++接口函数参考手册-1-实时数据平台C++接口函数参考手册第一部分用户编程接口说明一、C++语言用户接口函数类实时数据平台在Alpha计算机OPENVMS操作系统C++编程环境和PC机VisualC++编程环境中提供了C++语言用户接口函数(API),供用户编程访问实时数据平台中的数据库。C++语言用户接口函数全部放在CUserApi类中,作为CUserApi类的成员函数。用户建立了CUserApi类的实例以后,就可以直接调用CUserApi类的成员函数实时数据平台中的数据库。二、函数返回值大部分用户接口函数的返回值用于表示函数执行状态。表示函数执行状态的返回值总是一个整型数,当返回值大于零时表示函数执行正确,当返回值小于或等于零时,表示函数执行失败。返回值的意义见各个函数中的说明。三、OPENVMS操作系统C++编程环境中调用API在Alpha计算机OPENVMS操作系统C++编程环境中,实时数据平台提供了两个头文件和三个目标模块库。文件分别名称为:userapi.huserdef.hviewlib.olbrtdblib.olbbaselib.olb两个头文件分别为userapi.h和userdef.h,其中分别包含了函数定义和符号定义。用户程序中如果要调用API,必须在程序中用#include包含这两个头文件。用户程序在编译以后要与实时数据平台提供的两个目标模块库连接。连接命令如下:$clink用户程序程序名clink是编程环境中提供的一个命令,它完成用户的C++程序与连接库的自动连接。(注:为使此命令有郊,用户每次以用户身份进入OpenVMS操作系统用户目录下之后,首先执行命令‘$@RTDBLOG’或将此命令加到用户LOGIN命令过程中。)实时数据平台C++接口函数参考手册-2-四、Windows95、WindowsNTVisualC++编程环境中调用APIVisualC++编程环境中,实时数据平台提供了两个头文件、一个引入库和一个动态连接库。文件分别名称为:userapi.huserdef.hrtdbapi.librdtbapi.dll两个头文件分别为userapi.h和userdef.h,其中分别包含了函数定义和符号定义。用户程序中如果要调用API,必须在程序中用#include包含这两个头文件。在用户程序工作台(Workspace)中,在选单project下选择Settings..,进入设置对话框,选择Link设置,在Object/libraryModules下填入rtdbapi.lib。用户程序运行时要保证能找到动态连接库rdtbapi.dll。可以将rdtbapi.dll放在用户程序的目录下,或者放在Windows的system下。第二部分用户编程接口(API)成员函数AckAlarmlongAckAlarm(char*database,longarea,longunit,longattr);AckAlarm函数确认TAG点报警。参数database(读)数据库名,单数据库系统为NULL。area(读)区域号,0表示确认所有区域TAG点报警。unit(读)单元号,0表示确认所有单元TAG点报警。attr(读)数据库属性,说明确认哪种数据库的点,用下列符号表示:RTDB_ATTR_STANDARD标准数据库(缺省值);RTDB_ATTR_SIMULATE仿真数据库。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)AckTagAlarmlongAckTagAlarm(char*database,char*tagName,longcount,longattr)AckTagAlarm函数确认一个或多个TAG点报警。参数database(读)数据库名,单数据库系统为NULL。tagName(读)TAG点名称数组,字符串数组指针。因为仅有PV值有报警数据,这里也可写成:点名.PV。实时数据平台C++接口函数参考手册-3-count(读)TAG点个数。attr(读)数据库属性,说明确认哪种数据库的点,用下列符号表示:RTDB_ATTR_STANDARD标准数据库(缺省值);RTDB_ATTR_SIMULATE仿真数据库。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)AsciiTimelongAsciiTime(TIME_DESC*bTime,char*sTime)AsciiTime函数将二进制时间转换成ASCII时间。参数bTime(读)二进制时间数据结构。TIME_DESC数据结构格式:typedefstruct{longtime;longflag;//0.Error,1.Absolute,2.Relative}TIME_DESC;其中:time为二进制时间值,flag为二进制时间标志:1表示绝对时间,2表示相对时间,0表示错误。sTime(写)ASCII时间字符串。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)BinaryTimelongBinaryTime(char*sTime,TIME_DESC*bTime)BinaryTime函数将ASCII时间转换成二进制时间。参数sTime(读)ASCII时间字符串。bTime(写)二进制时间数据结构。TIME_DESC数据结构格式:typedefstruct{longtime;longflag;//0.Error,1.Absolute,2.Relative}TIME_DESC;其中:time为二进制时间值,flag为二进制时间标志:1表示绝对时间,2实时数据平台C++接口函数参考手册-4-表示相对时间,0表示错误。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)CommitlongCommit(longviewID);Commit函数向实时数据平台提交实时数据视图中的数据。参数viewID(读)实时数据视图标识。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)CreateAlarmViewlongCreateAlarmView(long&viewID,char*database,longarea,longunit,longviewAttr,longcount)CreateAlarmView函数建立报警记录视图。参数viewID(写)报警记录视图标识。database(读)数据库名,单数据库系统为NULL。area(读)区域号,0表示所有区域。unit(读)单元号,0表示所有单元。viewAttr(读)视图属性,用下列符号表示:VIEW_ATTR_STATIC静态视图(缺省值);VIEW_ATTR_ACTIVE动态视图;VIEW_ATTR_STANDARD标准视图,数据来自系统数据库(缺省值);VIEW_ATTR_SIMULATE仿真视图,数据来自仿真数据库。count(读)视图报警中记录个数。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)CreateDataViewlongCreateDataView(long&viewID,char*database,longviewAttr,char*dataDesc,longcount)CreateDataView函数建立实时数据视图。实时数据平台C++接口函数参考手册-5-参数viewID(写)实时数据视图标识。database(读)数据库名,单数据库系统为NULL。viewAttr(读)视图属性,用下列符号表示:VIEW_ATTR_READONLY只读视图(缺省值);VIEW_ATTR_WRITE可写视图;VIEW_ATTR_STATIC静态视图(缺省值);VIEW_ATTR_ACTIVE动态视图;VIEW_ATTR_STANDARD标准视图,数据来自系统数据库(缺省值);VIEW_ATTR_SIMULATE仿真视图,数据来自仿真数据库。dataDesc(读)视图数据TAG点参数描述表,字符串数组指针。数组中元素均为64字节的字符串,每个元素表示一个TAG点参数的描述,TAG点参数的描述为:点名.参数名.细目名。count(读)点参数描述表中点参数个数。返回值:指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)说明如果TAG点参数描述表中某TAG点仅描述为点名,则在建视图时,会按隐式规则将此TAG点的所有参数的PV项自动建成。CreateDayStaViewlongCreateDayStaView(long&viewID,char*database,longviewAttr,char*dataDesc,longtagCount,char*endTime,longcount);CreateDayStaView函数建立日统计数据视图。参数viewID(写)日统计数据视图标识。database(读)数据库名,单数据库系统为NULL。viewAttr(读)视图属性,用下列符号表示:VIEW_ATTR_STANDARD标准视图,数据来自系统数据库(缺省值);VIEW_ATTR_SIMULATE仿真视图,数据来自仿真数据库。dataDesc(读)视图数据TAG点描述表,字符串数组指针。数组中元素均为64字节的字符串,每个元素表示一个TAG点名称。因为仅有PV值保存统计数据,这里也可写成:点名.PV。tagCount(读)视图中TAG点个数。endTime(读)视图统计数据结束时间,视图数据结束时间有三种方法表示:1、绝对时间,时间格式为“YYYY:MM:DD-HH:MM:SS”,意义为“年:月:日-时:分:秒”,表示视图数据结束时间为某一确定时间;2、当前时间,用NULL时表示;实时数据平台C++接口函数参考手册-6-3、相对时间,时间格式为“DD-HH:MM:SS”,意义为“天-时:分:秒”表示视图数据结束时间为当前时间向前减去所表示的相对时间。count(读)视图中每个点的数据个数。返回值指示函数执行状态:不小于1的整数值函数执行成功;小于1的整数值函数执行失败;注:(函数执行失败原因可根据返回值参阅附录A)说明日统计数据是作为一种历史数据保存的,到每天的24时保存当天的日统计数据。日统计数据是以天为单位计算的,以每天0时为基准。在上述视图统计数据结束时间表示法中,用绝对时间表示时,小时、分钟和秒没有意义,函数执行时小时、分钟和秒将被截掉,如“1997:7:30-9:24:12”,作为“1997:7:30-0:0:0”处理;用当前时间表示时,最后一个数据是当前日到当前时间的统计数据,如果统计数据结束时间选择NULL,当前时间是1998年3月5日8时25分36秒,日统计数据视图中最后一个数据是从1998年3月5日到1998年3月5日8时25分36秒的统计数据;用相对时间表示时,相对时间中小时、分钟和秒将被截掉,如“1-9:8:20”将被作为“1-0:0:0”处理,即日统计数据视图中最后一个数据是当日前一天的数据。CreateEventViewlongCreateEventView(long&viewID,char*database,longarea,longunit,longviewAttr,longcount)CreateEventView函数建立事件记录视图。参数viewID(写)事件记录视图标识。database(读)数据库名,单数据库系统为NULL。area(读)区域号,0表示所有区域。unit(读)单元号,0表示