新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于嵌入式 RFID 中间件的标签数据处理

基于嵌入式 RFID 中间件的标签数据处理

作者: 时间:2010-01-11 来源:网络 收藏

 (1) type_i 和type_j 为不同编码方式;

 (2) type_i 和type_j 编码方式相同,但是字段field_i_1 和field_j_1 取值不冲突;

 (3) type_i 和type_j 编码方式相同而且前面对应k-1 个字段都是固定值且相等,但是field_i_k 和field_j_k 取值不冲突;

 对应字段 field_i_k 和field_j_k 满足下面任一规则时不冲突。

 (1) field_i_k 和field_j_k 都为固定值且不相同;

 (2) field_i_k 和field_j_k 一个是固定值,另一个是区间low-high,固定值不包含在区间中;

 (3) field_i_k 和field_j_k 都是区间值而且没有重叠。

 groupPattern 无重叠,即可进行分组操作。分组时URI 命令明确指出头部分,查询时直接使用SELECT 操作。其他4 个字段,因为格式可选(确定的数值/部分值[low-high]/所有值*/分组X),所以要对各个字段逐个判断其格式类型,对不同格式分别生成SQL 语句,将各部分生成的SQL 语句汇总到一句中。例如分组命令urn:epc:pat:sgtin-96:0.X.*.[20000-90000],最终产生SQL 操作语句为:

 CREATE VIEW viewGroup AS SELECT * FROM tableURI WHERE Header=’sgtin-96’AND

 Filter = 0 AND Serial BETWEEN 20000 AND 90000 GROUP BY Company。

 3.5 提交数据报表

 每个 EventCycle(向客户端提供报表的时间间隔,客户端定义ECSpec 时设置)结束时根据Time 字段,选取生成视图中当前EventCycle 的数据封装成XML 数据报表发送给客户端。相应操作语句为:

 //time2 = 当前时间,time1 = time2 - EventCycle

 sql = sqlite3_mprintf(“SELECT * FROM viewGroup WHERE Time BETWEEN %d AND %d”,

 time1, time2);

 3.6 删除过期数据

 为了使能长期稳定工作,必须定期删除过期数据。过期数据包括多次插入数据库的重复URI 以及过滤和分组产生的临时视图。对重复产生的URI 数据,只保留最新记录。数据表table URI 总记录条数大于某个值时调用数据备份程序,将表中的数据存贮到另一个目录下,供用户进一步处理。EventCycle 结束时删除相应视图。

 4 结束语

 经编译运行测试,该系统体积非常小,除去 SQLite 动态库不足1MB。兼容不同类型阅读器,稳定可靠,速度高。客户端使用过滤和分组命令能非常方便地订阅所需数据。SQLite 凭借轻型,易于移植,免费开源的优点,除了可以作为 的数据库,还可广泛用于其它领域,比如家庭网关,POS 终端、智能手机和远程监控系统等。


linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭