通过第5章描述的软件设计,只有当数据源、触发条件和数据处理全都具备时,才是一个完整的数据采集任务,参照模块设计,触发条件可放在处理模块上实现。其实现流程如图7.4-1所示。
图7.4-1 采集任务实现流程图(www.xing528.com)
采样时间到时,处理模块调用读取模块数据函数读取传感器模块的输出数据,读取模块数据函数返回的数据经过多项式处理,将处理结果通过推送模块数据函数推送至处理模块的输出节点,在实现中既要体现时间又要体现流程;在图7.4-1中当处理模块中的读取数据函数动作能够引起传感器模块读取物理传感器数据动作时,推送数据函数动作能引起数据处理模块推送数据动作时,这个流程就可以实现。
数据源、处理模块和数据记录模块组成一个完整的数据采集任务流程,使用面向对象的方法来分析,可以做如下设计,先设计一个CModule的基类,该类具有软件设计模型的共性,在以CModule为父类生成三个子类,传感器模块、处理模块和数据记录模块,在程序运行时使用父指针*CModule就可以访问传感器模块、处理模块和数据记录模块的共有成员,通过这种办法可以将传感器模块、处理模块和数据记录模块在一个进程内联系起来,利用对象指针数组,可以将传感器模块、处理模块和数据记录模块存储在一个任务数组里;以任务数组为元素可以组成一个任务链表;通过任务链表可以确定整个系统正在运行的数据采集任务,通过任务数组可以访问任务中的每个模块;通过一个链表和一个数组就可以将整个数据采集任务流程实现;考虑到整个数据采集任务的触发机制大部分是时间驱动,可以将时间触发机制放到系统的后台,触发条件的设置点可以放在处理模块上;整个数据采集任务的实现可设计成图7.4-2所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。