NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

输出控制

我的程序中有三个按钮,每个按钮的value change都会对应一个事件(event),每个事件都是对同一个NIUSB6216的AO0输出电压,两个按钮是输出两个不同的电压,另一个是输出波形waveform(输出特定数目的电压值) .

我现在的困惑是按下一个按钮,事件还没有运行完,又触发另一事件, 两者会打架,就会报错.我现在在每一个事件中使其余两个按钮disable,除了这种方法,还有别的好办法吗?谢谢

 

0 项奖励
1 条消息(共 3 条)
3,903 次查看

可以选择"锁定前面板直至事件完成",这样前面板就不会响应其他事件了。

另外,你可以尝试改变程序结构,采用基于事件的生产者消费者设计模式,生产者循环只是决定当前的状态(发送哪种AO),消费者循环实质上是一个状态机,具体的发送波形是在消费者循环中不同的状态中完成的,消费者循环中可以采用动态调用VI的方式,3个VI分别对应于三种AO状态,一个VI的调用之前可以强制结束之前VI的调用。这样的后果就是可能有限点AO没有发送完就被打断。

在这种模式下,可以采用枚举量作为队列的元素,由其决定当前状态。

0 项奖励
2 条消息(共 3 条)
3,867 次查看

讲得太复杂,看不动。我有NIUSB6216,前一段时间偶尔出现过两次如附件的错误,后来一直都没出现过,不知是不是电脑USB接口的问题还是我的软件问题,谢,请指教

0 项奖励
3 条消息(共 3 条)
3,849 次查看