主要功能及技术要点

缓存、命中与过期

因为ARN接口返回速度的影响,引入了缓存机制,以加快“读”操作的返回速度。

当通过中间层读取底层的信息时,信息分为“即时读取”、“缓存读取”或“延时读取”三种方式。

其中,“模拟基带”、“网络记数器”的值,都是“即时读取”的;而ARN相关的参数,则是“缓存读取”,或者是“延时读取”的。

“缓存命中”,即缓存的数据有效;“缓存过期”,即缓存的数据无效。而判断过期,需要将缓存的数据打上系统时间戳。

如果经过数据操作接口操作数据,为了保证数据在操作过程中的可用性,一般设置缓存在3秒后更新

我们为缓存操作定义了几个函数:

  • LOAD() 载入缓存
  • LOAD_VALID() 载入没有超过给定超时时间的缓存,如果超时则返回空
  • SAVE() 保存缓存数据至文件
  • EXPIRES_UNTIL() 让数据在给定时间内过期
  • CLEAN() 数据立即过期

数据序列化与反序列化

数据调用可能来自不同的进程,为了让每一次的调用都可以共享使用缓存的数据,必须将缓存的数据编码后存储在文件中,当需要时,从文件中读取并解析为数据。

将数据通过编码,然后存储在文件中,此编码过程,为“序列化”(即“serialize”);

反之,从文件中读取数据,通过反序列化,解析为代码直接可用的数据,此解码过程,称为“反序列化”(即“unserialize”)。

数据合法性检查

硬件的能力参数存储在配置文件/etc/config/arn-spec内。

根据设备型号及硬件的能力限制,过滤给定的参数至合法值。

HAL硬件接入层

向上提供统一的数据返回值,同时提供统一的数据操作接口,并根据硬件的能力。

向下兼容所有的硬件平台,根据CPU和设备名称判断硬件平台,以消除“平台相关性”,做到“平台无关”。

HAL不提供任何的数据过滤功能,但是在频繁操作硬件时,控制操作的频率,同时返回错误信息。

results matching ""

    No results matching ""