我的程序中有三个按钮,每个按钮的value change都会对应一个事件(event),每个事件都是对同一个NIUSB6216的AO0输出电压,两个按钮是输出两个不同的电压,另一个是输出波形waveform(输出特定数目的电压值) .
我现在的困惑是按下一个按钮,事件还没有运行完,又触发另一事件, 两者会打架,就会报错.我现在在每一个事件中使其余两个按钮disable,除了这种方法,还有别的好办法吗?谢谢
可以选择"锁定前面板直至事件完成",这样前面板就不会响应其他事件了。
另外,你可以尝试改变程序结构,采用基于事件的生产者消费者设计模式,生产者循环只是决定当前的状态(发送哪种AO),消费者循环实质上是一个状态机,具体的发送波形是在消费者循环中不同的状态中完成的,消费者循环中可以采用动态调用VI的方式,3个VI分别对应于三种AO状态,一个VI的调用之前可以强制结束之前VI的调用。这样的后果就是可能有限点AO没有发送完就被打断。
在这种模式下,可以采用枚举量作为队列的元素,由其决定当前状态。