rdbapi 5.1.1.4 实时数据库接口API

- 首页
- 相关页面
- 结构体
- 文件

- 文件列表
- 全局定义

rdbdef.h
1
9 #ifndef RDBDEF_H
10 #define RDBDEF_H
11
12 typedef char T_I8; //1字节整数
13 typedef unsigned char T_U8; //1字节无符号整数
14
15 typedef short int T_I16;//2字节整数
16 typedef unsigned short int T_U16;//2字节无符号整数
17
18 typedef int T_I32;//4字节整数
19 typedef unsigned int T_U32;//4字节无符号整数
20
21 typedef long long T_I64;//8字节整数
22 typedef unsigned long long T_U64;//8字节无符号整数
23
24 typedef float T_F32;//4字节浮点数
25 typedef double T_F64;//8字节双精度浮点数
26
27 typedef T_I64 T_TIME;//64位时标，精确到100毫秒，UTC/GMT(国际时间)自1970-1-1开始的100毫秒数 = time_t * 10
28
29 //数据类型
30 #define DT_VOID 0 //空类型
31 #define DT_DIGITAL 1 //开关量,也是4字节整数
32 #define DT_INT32 2 //4字节整数
33 #define DT_FLOAT32 3 //4字节浮点数
34 #define DT_INT64 4 //8字节整数
35 #define DT_FLOAT64 5 //8字节浮点数
36 #define DT_STRING 6 //字符串
37 #define DT_OBJECT 7 //对象类型
38
39 //标签分类
40 #define TGCLS_DEC 0 //现场设备标签
41 #define TGCLS_DEFINE 1 //定义标签
42 #define TGCLS_PRESET 2 //预处理标签
43 #define TGCLS_CURVE 3 //曲线标签
44 #define TGCLS_SYSTAG 4 //系统标签
45
46 //压缩方式
47 #define TA_COMPNO 0 //不压缩
48 #define TA_COMPPER 1 //百分比精度压缩
49 #define TA_COMPVAL 2 //绝对值精度压缩
50 #define TA_COMPTIMER 3 //定时存储,使用最大压缩周期间隔存储
51 #define TA_COMPEXTIMER 4 //增强定时存储,使用最大压缩周期间隔存储,并存储区间内的最大最小值记录
52
53 //数据质量
54 #define QA_OK 0 //质量
55 #define QA_SHUTDOWN 1 //关机,数据不可靠
56 #define QA_ERRDATA 2 //数据无效
57 #define QA_NOTAG 3 //无此标签
58 #define QA_ERRTIME 4 //错误的时标
59 #define QA_MANUAL 5 //人工置数
60
61 //权限定义
62 #define OPT_POW_READ 0x01 //读取数据
63 #define OPT_POW_WRITE 0x02 //写数据
64 #define OPT_POW_WTAG 0x04 //写标签
65 #define OPT_POW_MAN 0x08 //账号管理
66 #define OPT_POW_CTRL 0x10 //控制权限
67
68 //标签导入策略,某位有效表示需要修改该项
69 #define TAG_MASK_DES 0x0001 //描述
70 #define TAG_MASK_UNIT 0x0002 //单位
71 #define TAG_MASK_COMPEXC 0x0008 //压缩属性
72 #define TAG_MASK_CLASS 0x0010 //标签分类
73 #define TAG_MASK_ARCHIVE 0x0020 //归档
74 #define TAG_MASK_VDIGITS 0x0040 //显示精度
75 #define TAG_MASK_STEP 0x0080 //梯形插值
76 #define TAG_MASK_LIMIT 0x0100 //上下限值
77 #define TAG_MASK_BKSYN 0x0200 //同步标签
78 #define TAG_MASK_ALARM 0x0400 //Alarm
79
80 //标签导入结果
81 #define TAGIN_NOTMODIFY 0 //标签未修改
82 #define TAGIN_MODIFY 1 //标签修改
83 #define TAGIN_ADD 2 //标签添加
84
85 //rdb_valgetsection中参数nflag的定义
86 #define SECTION_INSERT 0 //插值
87 #define SECTION_AFTER 1 //之后, 时标 >= 指定时间
88 #define SECTION_BEFORE (-1) //之前, 时标 <= 指定时间
89
90 #define SE_OPT_OK 0 //成功
91 #define SE_OPT_NOACTOR 0x20 //无此角色
92 #define SE_OPT_NOUSER 0x21 //无此账号
93 #define SE_OPT_PASSERR 0x22 //密码错误
94 #define SE_OPT_NOPOWER 0x23 //无此权限
95 #define SE_OPT_USEREXIST 0x24 //账号重复
96 #define SE_OPT_ACTOREXIST 0x25 //角色重复
97 #define SE_OPT_ACTORUSE 0x26 //角色正在使用
98 #define SE_OPT_NOLOGIN 0x27 //没有登录
99 #define SE_OPT_NOTACTIVE 0x28 //账号冻结
100 #define SE_OPT_OPTFULL 0x29 //账号满
101 #define SE_OPT_ACTFULL 0x2A //角色满
102 #define SE_OPT_NOTMODPSW 0x2B //不容许修改密码
103
104 #define SE_TG_NOTAG 0x30 //无此标签
105 #define SE_TG_TAGFULL 0x31 //标签满
106 #define SE_TG_NOARCHIVE 0x32 //不归档
107 #define SE_TG_MODSYSTAG 0x33 //不能修改系统标签
108
109 #define SE_DA_TIME 0x40 //时标错误
110 #define SE_DA_TYPE 0x41 //类型错误
111 #define SE_DA_QA 0x42 //质量错误
112 #define SE_DA_NODATA 0x43 //无数据
113
114 #define SE_CTRLNOROUTE 0x61
115 #define SE_CTRLOUTERR 0x62
116
117 #define SE_SRV_FRMNOOD 0xFF //无此命令
118 #define SE_SRV_FRMERR 0xFE //报文错误
119 #define SE_SRV_DBVER 0xFD //API和实时库版本不一致
120 #define SE_SRV_BACKUOPSRV 0XFB //备份服务器
121 #define SE_SRV_DEMOOVER 0xFC //试用过期,历史数据服务停止
122
123
124 //标签越限配置和越限快照读取中cerr定义的值
125 #define LIMIT_LOW 1
126 #define LIMIT_HIGH 2
127 #define LIMIT_LOWLOW 4
128 #define LIMIT_HIGHHIGH 8
129
133 struct rec_tag
134 {
135 T_U32 uid; //标签ID
136
137 T_I8 cdatatype; //数据类型
138 T_I8 ctagtype; //标签类型,没有使用,填写TAGTYPE_NONE,可有客户端自定义。
139 T_I8 ccomptype; //压缩类型
140 T_I8 cres; //保留
141
142 T_F32 fcompval; //压缩精度
143 T_I8 sname[80]; //标签名
144 T_I8 sdes[80]; //描述
145 T_I8 sunit[16]; //工程单位
146
147 T_I8 cdigits; //小数位数，-20 到 10 ; >0 小数位数，小于0，有效位数
148 T_I8 cclass; //分类,默认TGCLS_DEC
149 T_I8 cstep; //梯形插值,1梯形，0线性
150 T_I8 carchive; //存盘,1存盘，0不存
151
152 T_F32 fdnval; //下限
153 T_F32 fupval; //上限
154
155 T_F32 fexcdev; //列外偏差,如果是百分比，则和百分比压缩意义相同
156 T_I16 snexcmin; //最小列外偏差时间
157 T_I16 snexcmax; //最大列外偏差时间
158
159 T_I16 sncompmin; //最小压缩时间间隔(单位秒)
160 T_I16 sncompmax; //最大压缩时间间隔(单位秒)
161
162 T_I32 alarmtype; //报警状态
163 float alarm_llv; //报警下下限
164 float alarm_lv; //报警下限
165 float alarm_hv; //报警上限
166 float alarm_hhv; //报警上上限
167
168 T_U8 sres[24]; //保留,清零
169 }; //sizeof() = 256
170
171
175 struct rec_val
176 {
177 T_TIME time; //GMT时标,从1970年1月1日开始的100毫秒数
178 union
179 {
180 T_I32 i32; //存储didital、int32
181 T_F32 f32; //存储float32
182 T_I64 i64; //存储int64
183 T_F64 f64; //存储float64
184 T_U64 u64; //存储64位整数
185 };
186 T_I8 cvt; //类型
187 T_I8 cqa; //质量
188 T_I8 cerr; //错误码
189 T_I8 cres; //保留,读取越限标签快照时，cres为越限状态,LIMIT_LOW,LIMIT_HIGH,LIMIT_LOWLOW,LIMIT_HIGHHIGH
190 T_U32 unres; //保留
191 };//sizeof() = 24
192
196 struct rec_tagval
197 {
198 char sname[80]; //标签名
199 rec_val val; //值记录
200 }; // sizeof = 104
201
202 #define MAX_OBJ_LEN 1000 //最大对象数据字节数
203
207 struct rec_obj {
208 T_TIME time; //时标
209
210 T_U32 uobjtype; //类型,用户自定义,可当检索条件
211 T_U32 ures; //以后扩展用,比如第2索引BATID
212
213 T_I8 cvt; //数据类型,DT_STRING,DT_BLOB
214 T_I8 cqa; //质量
215 T_I8 cerr; //错误码
216 T_I8 cres; //保留
217
218 T_U16 usres; //保留
219 T_U16 uslen; //数据长度，即sdata的长度，如果是字符串，则不包含结束符0
220
221 T_I8 sdata[MAX_OBJ_LEN];
222 }; //sizeof() = 1024
223
227 struct rec_tagobj
228 {
229 char sname[80];
230 rec_obj var;
231 }; //sizeof() = 1104
232
236 struct rec_operator
237 {
238 char sname[16]; //用户名<=15字符
239 T_U8 smd5pass[16]; //二进制的MD5加密后的密码
240 char sactor[16]; //角色名,内部表关联用
241 char sdes[80]; //描述
242 T_I32 lbactive; //是否活动,0不活动，1活动
243 char nomodpsw; //禁止修改密码；1：禁止；0：容许
244 char sres[27]; //保留
245 }; //sizeof = 160
246
247
251 struct rec_actor
252 {
253 char sname[16]; //角色名
254 char sdes[80]; //描述
255 T_U32 dwpower; //权限
256 char sres[28]; //保留
257 }; //sizeof = 128
258
262 struct rec_soe
263 {
264 T_TIME time; //GMT时标,从1970年1月1日开始的100毫秒数
265 T_U32 uautokey; //自动主键,解决时间相同的SOE事件主键冲突
266 T_I32 type; //事件类型,4字节有符号,(用户自定义,比如可定义越上限，越下限等)
267 T_I16 argtype; //事件参数格式，2字节带符号，<0 为基于字符串的格式，>0为基于2进制的格式。具体有用户定义,用于客户端解析参数。
268 T_U16 arglen; //参数长度(0-240)，基于字符串格式的长度不包括结尾的0。
269 T_I32 level; //事件级别使用
270
271 char source[80]; //事件来源，0结束的字符串，最多存储79字符，可填写标签名或者其他内容
272 char sdes[160]; //事件描述，0结束的字符串，最多存储159字节
273 char sarg[240]; //事件参数。根据argtype和arglen填写。
274 char cflag; //事件已经处理标识
275 char cstatus; //SOE UPdate返回时用于指示是否更新,0表示更新成功，1表示不存在或更新失败
276 char res[6]; //保留
277 }; // sizeof() = 512
278
282 typedef struct tag_ext {
283 uint32_t upos;//保留
284 int status;//状态码，或者返回错误码
285 char tagname[80]; //标签名
286 char des_ll[80]; //低低报警描述
287 char des_l[80]; //低报警描述
288 char des_h[80]; //高报警描述
289 char des_hh[80]; //高高报警描述
290 int level_ll;
291 int level_l;
292 int level_h;
293 int level_hh;
294 char rdes_ll[80];//低低报警恢复描述
295 char rdes_l[80]; //低报警恢复描述
296 char rdes_h[80]; //高报警恢复描述
297 char rdes_hh[80];//高高报警恢复描述
298 }rec_tagext, *prectagext;
299
300 #endif //RDBDEF_H
rec_soe
事件记录
Definition: rdbdef.h:262
rec_actor
角色记录
Definition: rdbdef.h:251
rec_tagval
值标签数据记录
Definition: rdbdef.h:196
tag_ext
标签扩展属性
Definition: rdbdef.h:282
rec_obj
对象数据记录
Definition: rdbdef.h:207
rec_tagobj
对象标签数据记录
Definition: rdbdef.h:227
rec_operator
账号记录
Definition: rdbdef.h:236
rec_tagobj::var
rec_obj var
对象记录
Definition: rdbdef.h:230
rec_val
值数据记录
Definition: rdbdef.h:175
rec_tag
标签属性记录
Definition: rdbdef.h:133
rec_obj::sdata
T_I8 sdata[MAX_OBJ_LEN]
对象数据
Definition: rdbdef.h:221
rec_tagobj::sname
char sname[80]
标签名
Definition: rdbdef.h:229