在继保的各种数据模型中,有一类数据模型其组织方式非常类似,包含遥信变位、动作报告、操作事项、遥测越限等,都是多条条目的方式组织。我们团队习惯将这类数据模型称之为报告类数据模型。
在嵌入式应用领域,这类信息一般存储在flash或eeprom等非易失性存储芯片中,各条目信息组织结构一致,并在产品构建初期就约定好存储条数、空间和位置等信息。
报告类数据模型,一般采取环形缓冲区数据结构,如果缓冲区满且有新报告时,会覆盖最旧的条目。环形缓冲区是最基本的数据结构,有两个指针用于读写,并通过浪费一个存储空间来区分缓冲区满和空。
针对报告类数据模型,如何构建抽象接口层呢?
类同AI,为了提炼报告类模型接口,需要先分析汇总各类应用需求。报告数据模型接口抽象的关键是访问接口,需求汇总如下:
- 远传类规约,需要检测是否有新报告,如有新报告时读取并远传,并执行确认操作以防止重复读取。
- 远传类规约,设备重启后需从最旧的报告开始上传。
- 远传类规约,在长期未运行且报告被覆盖后,设备恢复运行时从最旧有效报告开始上传。
- 液晶界面或维护软件类应用,需要查询目前有多少条报告,并支持正序或逆序逐条读取报告。
- 各应用任务运行独立,隐藏互斥信号