rdbapi  5.1.1.4
实时数据库接口API
rdbapi.h
浏览该文件的文档.
1 
13 #ifndef RDBAPI_H
14 #define RDBAPI_H
15 
16 #include "rdbdef.h"
17 
18 #define DBR_SUCCESS 0 //成功
19 #define SE_ERRHANDLE (-1) //错误的句柄
20 
21 //错误码
22 #define SE_OK 0x00 //成功
23 #define SE_SUCCESS SE_OK //成功
24 #define SE_FAILED 0x01 //失败
25 #define SE_TCP_CONNECT 0x02 //TCP连接错误
26 #define SE_TCP_PROXY_CONNECT 0x03 //SOCKET5代理错误
27 #define SE_TCP_PROXY_AUTH 0x04 //SOCKET5代理验证错误
28 #define SE_TCP_DISCONNECT 0x05 //TCP连接断开
29 #define SE_TCP_IO 0x06 //TCP网络IO错误
30 #define SE_TCP_CONSVRFAIL 0x07 //TCP连接服务器失败
31 #define SE_TCP_SENDBLOCK 0x08 //TCP发送阻塞
32 #define SE_TCP_ERRPKG 0x0A //TCP报文错误
33 #define SE_TCPCALLTIMEOUT 0x0B //TCP调用超时
34 #define SE_ERRARGS 0x0C //调用参数错误
35 
36 #define SE_EXP 0x10 //表达式错误
37 #define SE_EXPVAR 0x11 //表达式引用变量错误
38 #define SE_EXPVAROVER 0x12 //表达式引用变量太多,最多允许4个
39 #define SE_BUSY 0x13 //服务器忙,未完成请求任务
40 #define SE_NOTCONNECT 0x1F //没有连接
41 
42 #define SE_OPT_OK 0 //成功
43 #define SE_OPT_NOACTOR 0x20 //无此角色
44 #define SE_OPT_NOUSER 0x21 //无此账号
45 #define SE_OPT_PASSERR 0x22 //密码错误
46 #define SE_OPT_NOPOWER 0x23 //无此权限
47 #define SE_OPT_USEREXIST 0x24 //账号重复
48 #define SE_OPT_ACTOREXIST 0x25 //角色重复
49 #define SE_OPT_ACTORUSE 0x26 //角色正在使用
50 #define SE_OPT_NOLOGIN 0x27 //没有登录
51 #define SE_OPT_NOTACTIVE 0x28 //账号冻结
52 #define SE_OPT_OPTFULL 0x29 //账号满
53 #define SE_OPT_ACTFULL 0x2A //角色满
54 
55 #define SE_TG_NOTAG 0x30 //无此标签
56 #define SE_TG_TAGFULL 0x31 //标签满
57 #define SE_TG_NOARCHIVE 0x32 //不归档
58 
59 #define SE_DA_TIME 0x40 //时标错误
60 #define SE_DA_TYPE 0x41 //类型错误
61 #define SE_DA_QA 0x42 //质量错误
62 #define SE_DA_NODATA 0x43 //无数据
63 
64 #define SE_CTRLNOROUTE 0x61 //无路由不能写
65 #define SE_CTRLOUTERR 0x62 //输出错误
66 
67 #define SE_SRV_FRMNOOD 0xFF //无此命令
68 #define SE_SRV_FRMERR 0xFE //报文错误
69 #define SE_SRV_DBVER 0xFD //API和实时库版本不一致
70 #define SE_SRV_BACKUOPSRV 0XFB //备份服务器
71 #define SE_SRV_DEMOOVER 0xFC //试用过期,历史数据服务停止
72 
75 typedef bool(*rdbcb_OnReadTags)(rec_tag ptags[], int nitems, void* pParam);
76 
79 typedef bool(*rdbcb_OnReadVals)(rec_val pvals[], int nitems, void* pParam);
80 
83 typedef bool(*rdbcb_OnReadObjs)(rec_obj pobjs[], int nitems, void* pParam);
84 
87 typedef bool(*rdbcb_OnReadSoes)(rec_soe psoes[], int nitems, void* pParam);
88 
90 typedef void(*rdbcb_OnSscPutSoes)(rec_soe psoes[], int nitems, void* param);
91 
94 typedef bool(*ctrl_OnValWriteToDevice)(rec_tagval* pval, void* pParam);
95 
98 typedef bool(*ctrl_OnObjWriteToDevice)(rec_tagobj* pobj, void* pParam);
99 
100 #define MSGCODE_CONNECT_SUCCESS 60001
101 #define MSGCODE_CONNECT_FAILED 60002
102 #define MSGCODE_DISCONNECTED 60003
103 
104 
108 typedef void(*rdbcd_onmessage)(int nmsgcode, const char* smsg, void* param);
109 
110 #ifdef __cplusplus
111 extern "C" {
112 #endif
113 
125  int rdb_create();
126 
132  int rdb_curdb(int h);
133 
139  int rdb_curdb_inver(int h);
140 
154  int rdb_setslavedb(int h, const char* sip, unsigned short wport, const char* sUser, const char* sPass);
155 
162  int rdb_destory(int h);
163 
171  int rdb_connectex(int h, const char* surl, const char* sUser, const char* sPass, int nTimeOutSec);
172 
182  int rdb_connect(int h, const char *sServerIP, unsigned short wPort, const char * lpszUser, const char * lpszPass);
183 
194  int rdb_connectasyn(int h, const char *sServerIP, unsigned short wPort, const char * lpszUser, const char * lpszPass);
195 
202  int rdb_disconnect(int h);
203 
209  bool rdb_isconnected(int h);
210 
218  int rdb_actoradd(int h, rec_actor* pa);
219 
227  int rdb_actordel(int h, const char *sname);
228 
238  int rdb_actorsget(int h, rec_actor actors[], int nrecbufsize, int *pnacts);
239 
247  int rdb_operatoradd(int h, rec_operator* po);
248 
256  int rdb_operatordel(int h, const char *sname);
257 
267  int rdb_operatorsget(int h, rec_operator opts[], int nrecbufsize, int *pnopts);
268 
277  int rdb_operatormodifypass(int h, const char *sname, const char*soldpass, const char *snewpass);
278 
287  int rdb_taginport(int h, unsigned int dwflag, rec_tag* ptag, int *presult);
288 
295  int rdb_tagget(int h, rec_tag* ptag);
296 
304  int rdb_tagdel(int h, const char *sname);
305 
318  int rdb_tagquery(int h, const char* snamefilter, const char* sdesfilter, int ndatatype, int ntagclass, rdbcb_OnReadTags pfun, void* pParam);
319 
330  int rdb_valputsnapshot(int h, rec_tagval vals[], int nsize);
331 
339  int rdb_valgetsnapshot(int h, rec_tagval vals[], int nsize);
340 
350  int rdb_valinsert(int h, rec_tagval vals[], int nsize);
351 
362  int rdb_valgetsection(int h, long long ltime, int nflag, rec_tagval vals[], int nsize);
363 
388  int rdb_valquery(int h, const char *sname, const char *sexp, long long lts, long long lte, long long lds, int lflag, rdbcb_OnReadVals pfun, void* pParam);
389 
400  int rdb_objputsnapshot(int h, rec_tagobj pobjs[], int nsize);
401 
409  int rdb_objgetsnapshot(int h, rec_tagobj pobjs[], int nsize);
410 
418  int rdb_objinsert(int h, rec_tagobj pobjs[], int nsize);
419 
431  int rdb_objget(int h, const char* stagname, long long lts, long long lte, rdbcb_OnReadObjs pfun, void* pParam);
432 
441  int rdb_soeput(int h, rec_soe psoe[], int nsize);
442 
455  int rdb_soequery(int h, long long lts, unsigned int autokey, long long lte, const char * sexp, rdbcb_OnReadSoes pfun, void* pParam);
456 
465  int rdb_soeupdate(int h, rec_soe psoe[], int nsize);
466 
473  int rdb_soesubscription(int h, int flag);
474 
483  int rdb_soesubscription_setfun(int h, rdbcb_OnSscPutSoes fun, void* param);
484 
500  int rdb_countvalue(int h, const char* sname, const char* sexp, long long lts, long long lte, rec_val* pMin, rec_val* pMax, double *pavg, double *psum, int *plrecs);
501 
515  int rbd_countstatuschang(int h, const char* sname, long long lts, long long lte, int nlowval, int nhighval, int *pnl2h, int *pnh2l);
516 
529  int rdb_countvaltime(int h, const char* sname, const char *sexp, long long lts, long long lte, long long *pltime, int *plrecs);
530 
535  long long rdb_time();
536 
548  long long rdb_localtime2rdbtime(int nyear, int nmon, int nday, int nhour, int nmin, int nsec, int nmsec);
549 
562  bool rdb_rdbtime2localtime(T_TIME ltime, int *pnyear, int *pnmon, int *pnday, int *pnhour, int *pnmin, int *pnsec, int *pnmsec);
563 
574  int rdb_initwritetodevice(int h, ctrl_OnValWriteToDevice funvalw, void* paramvalw, ctrl_OnObjWriteToDevice funobjw, void* paramobjw);
575 
584  int rdb_regctrltag(int h, const char* stagname);
585 
593  int rdb_writevaltodevice(int h, rec_tagval *pval);
594 
602  int rdb_writeobjtodevice(int h, rec_tagobj *pobj);
603 
610  int rdb_setmessagenotify(int h, rdbcd_onmessage fun, void* param);
611 
619  int rdbtime_tostr(int64_t ltime, char *sout, size_t outsize);
620 
627  int64_t rdbtime_fromstr(const char *str, size_t zlen);
628 
636  void rdb_md5_encode(const void* pdata, int nsize, unsigned char out[16]);
637 
646  int rdb_base64_encode(const void* pdata, int nsize, char *sout, int noutsize);
647 
656  int rdb_base64_decode(const char* pdata, int nsize, unsigned char *sout, int noutsize);
657 
663  const char* rdb_geterrmsg(int nerrcode);
664 
671  int rdb_manual_set(int h, rec_tagval *pval);
672 
679  int rdb_manual_del(int h, const char* stagname);
680 
690  int h,
691  const char *station,
692  void(*onread)(rec_tagval pvals[], int nitems, void* param),
693  void* puserparam);
694 
707  int rdb_getsnapshot(
708  int h,//in 句柄
709  const char* tagnames[], //标签名数组
710  int nsize,//个数
711  void(*funval)(const rec_tagval vals[], size_t valsize, void *param), void* param_val,
712  void(*funobj)(const rec_tagobj objs[], size_t objsize, void *param), void* param_obj
713  );
714 
725  int rdb_callmsg(int h, const char* request, int requestsize, void(*fun)(const char* response, int sizeresponse, void* app_param), void* app_param);
726 
735  int rdb_putmsg(int h, const char* jstr, int jstrsize);
736 
744  int rdb_soesubscription_ex(int h, int flag, const char* station);
745 
759  int rdb_soequery_ex(int h, const char* station
760  , long long lts, unsigned int autokey, long long lte, const char * sexp
761  , rdbcb_OnReadSoes pfun, void* puserparam);
762 
771  int rdb_liststation(int h, void(*fun)(const char* jsresp, int sizeresp, void* app_param), void *app_param);
772 
782  int rdb_getruninfo(int h, const char* stationid, void(*fun)(const char* jsresp, int sizeresp, void* app_param), void *app_param);
783 
791  int rdb_tagext_inport(int h, tag_ext* pext, uint32_t umask);//导入单个标签的扩展属性.
792 
800  int rdb_tagext_get(int h, tag_ext* ptags, int size);
801 
808  int rdb_tagext_del(int h, const char* tagname);
809 
810 #ifdef __cplusplus
811 }
812 #endif
813 
814 #endif //RDBAPI_H
long long rdb_time()
获取当前时间的实时库时标
int rdb_liststation(int h, void(*fun)(const char *jsresp, int sizeresp, void *app_param), void *app_param)
从中心站查询当前在线子站列表和概要信息
int rdb_objget(int h, const char *stagname, long long lts, long long lte, rdbcb_OnReadObjs pfun, void *pParam)
读取对象标签历史数据
bool rdb_isconnected(int h)
判断连接状态
int rdb_writevaltodevice(int h, rec_tagval *pval)
写值标签的值到现场设备
void(* rdbcd_onmessage)(int nmsgcode, const char *smsg, void *param)
消息通知回调函数
Definition: rdbapi.h:108
int rdbtime_tostr(int64_t ltime, char *sout, size_t outsize)
实时库时间(从1970-1-1开始的100毫秒数)转换为字符串
int rdb_tagext_get(int h, tag_ext *ptags, int size)
获取一批标签扩展属性
int rdb_valgetsnapshot(int h, rec_tagval vals[], int nsize)
读取值标签快照(读值标签实时数据)
事件记录
Definition: rdbdef.h:262
int rdb_connectex(int h, const char *surl, const char *sUser, const char *sPass, int nTimeOutSec)
高级连接,rdb2020.3版开始增加的接口
int rdb_soesubscription_setfun(int h, rdbcb_OnSscPutSoes fun, void *param)
设置处理订阅的SOE事件处理回调函数
int rdb_tagdel(int h, const char *sname)
删除标签
int rdb_curdb(int h)
获取当前连接的实时库
const char * rdb_geterrmsg(int nerrcode)
根据错误码获取错误描述
int rdb_countvaltime(int h, const char *sname, const char *sexp, long long lts, long long lte, long long *pltime, int *plrecs)
值标签数据c持续时间统计
int rdb_valquery(int h, const char *sname, const char *sexp, long long lts, long long lte, long long lds, int lflag, rdbcb_OnReadVals pfun, void *pParam)
查询值标签历史数据记录
int rdb_operatoradd(int h, rec_operator*po)
添加用户账号
角色记录
Definition: rdbdef.h:251
int rdb_tagquery(int h, const char *snamefilter, const char *sdesfilter, int ndatatype, int ntagclass, rdbcb_OnReadTags pfun, void *pParam)
查询标签
int rbd_countstatuschang(int h, const char *sname, long long lts, long long lte, int nlowval, int nhighval, int *pnl2h, int *pnh2l)
值标签状态改变统计
值标签数据记录
Definition: rdbdef.h:196
int rdb_putmsg(int h, const char *jstr, int jstrsize)
向实时库推送消息
int rdb_getruninfo(int h, const char *stationid, void(*fun)(const char *jsresp, int sizeresp, void *app_param), void *app_param)
从中心站查询子站运行信息
int rdb_taginport(int h, unsigned int dwflag, rec_tag *ptag, int *presult)
导入(添加,更改)标签
int rdb_operatorsget(int h, rec_operator opts[], int nrecbufsize, int *pnopts)
读取账号表
int rdb_objgetsnapshot(int h, rec_tagobj pobjs[], int nsize)
读取对象标签快照数据(读对象标签实时数据)
int rdb_setmessagenotify(int h, rdbcd_onmessage fun, void *param)
设置消息回掉函数
标签扩展属性
Definition: rdbdef.h:282
对象数据记录
Definition: rdbdef.h:207
int rdb_actorsget(int h, rec_actor actors[], int nrecbufsize, int *pnacts)
读取角色表
int rdb_regctrltag(int h, const char *stagname)
注册控制标签
int rdb_operatordel(int h, const char *sname)
删除用户账号
对象标签数据记录
Definition: rdbdef.h:227
账号记录
Definition: rdbdef.h:236
void(* rdbcb_OnSscPutSoes)(rec_soe psoes[], int nitems, void *param)
服务器推送的订阅SOE记录回调函数
Definition: rdbapi.h:90
bool(* rdbcb_OnReadTags)(rec_tag ptags[], int nitems, void *pParam)
标签查询回调函数,nitems <= 256 return false表示终止查询
Definition: rdbapi.h:75
int rdb_operatormodifypass(int h, const char *sname, const char *soldpass, const char *snewpass)
更改自己密码
值数据记录
Definition: rdbdef.h:175
int rdb_objputsnapshot(int h, rec_tagobj pobjs[], int nsize)
写对象标签快照(写对象标签实时数据)
int rdb_soeput(int h, rec_soe psoe[], int nsize)
写入SOE事件
int rdb_actordel(int h, const char *sname)
删除用户角色
bool(* ctrl_OnObjWriteToDevice)(rec_tagobj *pobj, void *pParam)
对象标签写设备回调函数
Definition: rdbapi.h:98
int rdb_connect(int h, const char *sServerIP, unsigned short wPort, const char *lpszUser, const char *lpszPass)
连接实时库
int rdb_soesubscription_ex(int h, int flag, const char *station)
订阅SOE的高级版,支持通过中心站订阅子站SOE
long long rdb_localtime2rdbtime(int nyear, int nmon, int nday, int nhour, int nmin, int nsec, int nmsec)
本地时间合成为实时库时标T_TIME
int rdb_tagget(int h, rec_tag *ptag)
读取标签属性记录
int rdb_writeobjtodevice(int h, rec_tagobj *pobj)
写对象标签的值到现场设备
标签属性记录
Definition: rdbdef.h:133
int rdb_base64_encode(const void *pdata, int nsize, char *sout, int noutsize)
base64快速编码
bool rdb_rdbtime2localtime(T_TIME ltime, int *pnyear, int *pnmon, int *pnday, int *pnhour, int *pnmin, int *pnsec, int *pnmsec)
实时库时标T_TIME分解为本地时间
int rdb_soeupdate(int h, rec_soe psoe[], int nsize)
更新SOE事件记录
bool(* ctrl_OnValWriteToDevice)(rec_tagval *pval, void *pParam)
值标签写设备回调函数
Definition: rdbapi.h:94
int rdb_initwritetodevice(int h, ctrl_OnValWriteToDevice funvalw, void *paramvalw, ctrl_OnObjWriteToDevice funobjw, void *paramobjw)
初始化写设备回调函数
int rdb_valinsert(int h, rec_tagval vals[], int nsize)
补录值标签数据(写值标签历史数据)
int rdb_soequery_ex(int h, const char *station, long long lts, unsigned int autokey, long long lte, const char *sexp, rdbcb_OnReadSoes pfun, void *puserparam)
查询SOE事件高级版,支持通过中心站从子站查询
int rdb_connectasyn(int h, const char *sServerIP, unsigned short wPort, const char *lpszUser, const char *lpszPass)
异步连接实时库
int rdb_curdb_inver(int h)
获取当前实时库的内部版本
int rdb_manual_del(int h, const char *stagname)
取消人工置数
int rdb_getsnapshot(int h, const char *tagnames[], int nsize, void(*funval)(const rec_tagval vals[], size_t valsize, void *param), void *param_val, void(*funobj)(const rec_tagobj objs[], size_t objsize, void *param), void *param_obj)
读取快照,不分值标签还是对象标签
bool(* rdbcb_OnReadObjs)(rec_obj pobjs[], int nitems, void *pParam)
对象记录查询回调函数,nitems <= 64 return false表示终止查询
Definition: rdbapi.h:83
int rdb_valputsnapshot(int h, rec_tagval vals[], int nsize)
写值标签快照(写值标签实时数据)
int rdb_soesubscription(int h, int flag)
订阅SOE事件
int rdb_manual_set(int h, rec_tagval *pval)
设置人工置数
int rdb_destory(int h)
删除句柄
int rdb_objinsert(int h, rec_tagobj pobjs[], int nsize)
补录对象标签历史数据(写对象标签历史数据)
int rdb_valgetsection(int h, long long ltime, int nflag, rec_tagval vals[], int nsize)
读取值标签历史断面数据
void rdb_md5_encode(const void *pdata, int nsize, unsigned char out[16])
计算md5散列值
int rdb_setslavedb(int h, const char *sip, unsigned short wport, const char *sUser, const char *sPass)
设置从库
int rdb_getoutlimit_snaps(int h, const char *station, void(*onread)(rec_tagval pvals[], int nitems, void *param), void *puserparam)
读取当前越限标签快照
int rdb_actoradd(int h, rec_actor *pa)
添加用户角色
int rdb_disconnect(int h)
断开实时库
int rdb_soequery(int h, long long lts, unsigned int autokey, long long lte, const char *sexp, rdbcb_OnReadSoes pfun, void *pParam)
查询SOE事件
int rdb_callmsg(int h, const char *request, int requestsize, void(*fun)(const char *response, int sizeresponse, void *app_param), void *app_param)
向实时库请求消息;
bool(* rdbcb_OnReadSoes)(rec_soe psoes[], int nitems, void *pParam)
SOE记录查询回调函数,nitems <= 128 return false表示终止查询
Definition: rdbapi.h:87
int rdb_base64_decode(const char *pdata, int nsize, unsigned char *sout, int noutsize)
base64快速解码
int rdb_create()
创建接口
int rdb_tagext_del(int h, const char *tagname)
删除一个标签的扩展属性
int rdb_countvalue(int h, const char *sname, const char *sexp, long long lts, long long lte, rec_val *pMin, rec_val *pMax, double *pavg, double *psum, int *plrecs)
值标签数据记录统计
int rdb_tagext_inport(int h, tag_ext *pext, uint32_t umask)
导入标签扩展属性
bool(* rdbcb_OnReadVals)(rec_val pvals[], int nitems, void *pParam)
值记录查询回调函数,nitems <= 2560 return false表示终止查询
Definition: rdbapi.h:79
int64_t rdbtime_fromstr(const char *str, size_t zlen)
本地字符串表达的时间转换为实时库时间