请教各位!
我现在有个数据采集的应用。要求按一下开始按钮后,开始连续采集数据,按下停止按钮或5秒钟后,自动停止。
我考虑使用生产者消费者循环。在按下开始按钮后,元素开始入队列。在消费者循环中,数据不断添加到一个数组中,然后处理。
现在有这么几个问题。因为消费者循环还附带处理界面,所以消费者循环不能停,而生产者循环也不能停。而这样处理,会产生队列错误,是何原因?
另一个我消费者循环中数据保存是采用移位寄存器的数组,如何在下一次测试开始前,清除这个数组?
我觉得可以在生产者循环中放一个条件结构,条件结构的输入就是那个开始按钮,当按下开始按钮,进入条件结构的ture状态中,就把数据写入队列,而在条件结构的false状态中则不采集数据。这样的话,就可以不用停止生产者循环了。至于要清除移位寄存器数据很简单,在循环的输入处加一个空数组常量把移位寄存器初始化即可。
测试开始之前不发送测试指令,也可以读取时间啊,当开始按钮的值为true时直接用获取日期时间VI读取一次系统时间就可以了。