rdbapi
5.1.1.4
实时数据库接口API
首页
相关页面
结构体
文件
文件列表
全局定义
src
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