2.2 引擎内核
事件管理是 ALE 引擎中最核心的功能,引擎内核模块负责管理事件的生命周期,如图 2 所示。在ALE 模型中有几个最基本的概念:读周期(Read Cycle),事件周期(Event Cycle)和事件周期定义(ECSpec)。读周期是和读写器交互的最小时间单元,一个读周期的 结果是一组EPCs集合,读周期的时间长短和具体的天线、无线射频协议有关,读周期的输 出就是ALE 层的数据来源。事件周期可以是一个或多个读周期,它是从用户的角度来看待 读写器的,并可以将一个或多个读写器当作一个整体,是ALE 接口和用户交互的最小时间 单元。应用业务逻辑层的客户在ALE 中定义好ECSpec之后,就可接收相应的事件周期的 数据报告。
图2 事件周期定义(ECSpec)状态转移图
2.3 数据处理模块
数据处理模块分为四个子模块:数据队列模块负责缓存数据,当读写器读取到一个标签 时会把数据放入相应的队列,其他的数据处理模块会把数据从队列中取出然后进行处理,当 队列满了或者超时数据会从队列中删除;数据格式转换模块根据应用的要求对数据做出格式 转换;数据过滤模块根据ECSpec的定义对数据进行过滤,过滤规则包括‘包含模式’和‘排除模式’两种模式[3],最后出现在报告中的标签信息至少要与‘包含模式’列表中的一 个模式匹配,并且不能与任何出现在‘排除模式’中的模式匹配;数据分组模块根据ECSpec 的定义对过滤后的数据进行分组和统计。
3 引擎内核实现
引擎内核采用事件驱动的方式实现,见图 3。