注释
如果我是对的,您确实会使用 gmoccapy 3.0.8,因为这是最新的。我刚刚在 SIM Config 中使用 gmoccapy 3.0.8 进行了测试,我只能通过快速单击 ON 按钮来重现它。 诺伯特 |
在透视中看它。使用 halui,motion.is-on 或 motion.motion-enabled https://forum.linuxcnc.org/38-general-linuxcnc-questions/37317-gmocappy-fires-relay-twice?start=10 我正在使用 2.9 pre 附带的最新版本。我相信是3.08。 |
你好@ALL, 我能够重现该行为。所以现在只是找到原因并修复错误。 诺伯特 |
好的,错误不是来自切换按钮的代码,而是来自 hal 状态。发送打开机器的命令发送两个 hal 状态命令,第一个是关闭,第二个是打开。 诺伯特 |
这似乎是切换按钮中的代码与打开和关闭状态的两个 Hal 状态回调之间的交互。 我添加了调试打印:
然后短路 hal_glib 回调:
现在,当您切换按钮时,您有时会看到屏幕被启用然后立即关闭,您将看到调试打印确认这一点。(它不会停留,因为 hal_glib 回调不会运行) 现在也将 hal_status_state_off 短路:
现在它在调试语句中关闭和打开。 因此,我认为您需要重新考虑用于打开和关闭 linuxcnc 的代码,因为现在按钮执行此操作,而 hal_status 也执行此操作。 看看是否对您有帮助。 |
我在 qtvcp 中使用的一个想法是,如果按钮与 linuxcnc 的状态不同步(无论出于何种原因),您可以通过编程方式切换按钮,但之后会阻止任何代码。 |
您是否注意到,急停复位会发出机器关闭信号? 诺伯特 |
通过后来的更新之一解决。我测试了 2.8 版本和 gmoccapy 3.1.0,错误消失了。 诺伯特 |
以下是我重现该问题所遵循的步骤:
这是我期望发生的事情:
halui.motion.is-on 在打开之前不应有脉冲,并保持打开直到再次按下按钮。
这是发生了什么:
按下 gmocappy 中的 on 按钮会导致 motion.motion-enabled 在打开之前产生脉冲。motion.motion-enabled 触发 halui.motion.is-on。
这是运行 gmocappy。在具有相同配置的同一台机器上,Axis gui 没有此行为。
在此之前它工作正常:
我不知道什么时候改变了。
有关我的硬件和软件的信息:
我正在使用这个 Linux 发行版 Debian 9.9 Stretch:
我正在使用此内核版本 4.9.0-9-rt-amd64 SMP PREEMPT RT Debian):
我在跑步 …
发生这种情况时,我正在使用此用户界面 gmocappy。轴没有这种行为。