我正在编写一个应用程序来更新给定用户输入值的数值,并且根据用户的输入值,程序检查是否大于10,如果它大于10,则程序等待1秒然后将有弹出消息说“真实”。
我打算调用条件检查,如果用户的输入值大于10,则每秒打印一次;换句话说,无论在同一循环中的事件结构如何,都要调用案例结构。
但它似乎不像我预期的那样工作。除非有用户的新输入值,否则进入事件结构,即使案例结构处于循环中,程序也无法进入案例结构。
有没有办法调用不依赖于事件结构的案例结构,但我想使用移位寄存器作为数值,并且还要并行拥有事件结构和案例结构。
感谢。
答案 0 :(得分:4)
您已经创建了一个事件结构来处理数字控件的Value Change
输入,因此它将完全按照其说法执行操作:等待值更改事件发生。收到该事件后,将执行其事件结构框架中的代码,然后退出事件结构。
看起来您已将移位寄存器中的值连接到事件结构的timeout
终端,因此我假设您还必须创建Timeout
事件案例?如果是这样,事件结构应该在连接到超时终端的毫秒数之后停止等待。
为了决定是否显示true
消息,您检查的值是在前一次循环迭代中传递给移位寄存器的值。如果控制值发生更改,则来自Value Changed事件案例中的NewVal
终端。但是在超时情况下它来自哪里?它看起来好像你没有在这种情况下连接它,因为从事件结构中出来的终端有一个小点而不是纯橙色。这意味着,对于终端没有连线的情况,您将获得默认值。数值的默认值为零。因此,如果事件结构超时,进入移位寄存器的值为零,则在下一次迭代中从移位寄存器中获得零,零不大于10,因此您不会再看到该消息
在您将NewVal
终端连接到同一控件的Value
属性节点的情况下,我不明白您要尝试做什么。你能解释一下应该达到的目标吗?
你的问题看起来好像这是一个编程练习,你必须使用这些特定的LabVIEW结构,所以不要建议更好的方法来实现你希望这些代码做的事情,我会留给你决定如何改变它。在此期间,虽然我建议您重新阅读Event Structure help以及它链接到的caveats and recommendations。