开源改变世界!!

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434

推推 grbl 2年前 (2023-01-29) 123次浏览
打开
rene-dev 打开了这个问题 2018 年 5 月 4 日 · 10 条评论
打开

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定#434

rene-dev 打开了这个问题 2018 年 5 月 4 日 · 10 条评论

注释

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者
再生开发 评论了 2018 年 5 月 4 日  

以下是我重现该问题所遵循的步骤:

  1. 启动 sim/axis/axis.ini
  2. 情节 joint.0.vel_cmd
  3. 慢跑

这是我期望发生的事情:

连续速度命令

这是发生了什么:

vel 命令有时会下降到 0

在此之前它工作正常:

我不知道这是否有效,大多数配置不使用该引脚。

有关我的硬件和软件的信息:

d459474在伸展

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
成员

@rene-dev当你说“jog in x”时,你是说你正在使用右箭头键吗?单击并按住“+”点动按钮?

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者作者

啊!我正在使用箭头键。当我使用 +- 按钮时不会发生。
我还注意到它不会发生在 gmoccapy 中。
所以一些轴键处理错误?

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者作者

我无法在我的真实机器上重现它,只能在我的虚拟机开发环境中重现。
有人可以确认吗?

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者
安迪普 评论了 2018 年 5 月 9 日  

我什至无法在 VMWare 上重现它

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
成员

在 X 中,按住一个键实际上会导致 KeyRelease/KeyPress 事件流。Tk 不过滤这些,而是​​将它们分别发送到 porogram。当 KeyRelease 紧随 KeyPress 事件后,AXIS 推断出一个键被按住,它代表一个被按住的键。当 Linux 未虚拟化并且 AXIS UI 在显示它的计算机本地运行时,这似乎工作得很好。

但是,当涉及到remote X、其他远程软件(如VNC)或虚拟化软件(如Virtualbox)时,AXIS 的预期可能会被破坏。

我认为您可以通过使用“xev”程序来大致测试一下是否属于这种情况。运行“xev”,然后定位窗口,以便您可以聚焦它,同时仍能看到启动它的终端。按住任意键。在 xev 窗口中,您应该看到这些重复的事件,并且对于每个 KeyRelease 事件和紧随其后的 KeyPress 事件,“时间”字段应该包含相同的时间戳。如果时间戳有时不同,那么 AXIS 可能会将其检测为“真正的”按键释放事件。

有关详细信息,请参阅https://stackoverflow.com/questions/2100654/ignore-auto-repeat-in-x11-applications ,但由于 Tk API 的限制,AXIS 并未完全实现此处描述的算法。AXIS 不能直接调用 XPending 和 XPeekEvent 之类的 API,但是after_idle在 axis.py: 中的使用def jog_off应该意味着只要在接收到 KeyRelease 事件时 KeyPress 事件处于挂起状态,调用jog_off_actual就会在它发生之前被取消,由于在 Tk 事件循环中处理后续的 KeyPress 事件。

在现代 X 服务器中,显然还有 XkbSetDetectableAutoRepeat,它允许控制如何在每个客户端的基础上传递自动重复事件。然而,如果不编写 Tcl 扩展,这也不能直接从 AXIS 中使用。互联网上很少提及此功能,但它显然至少可以追溯到 2010 年(尽管该线程描述它不能可靠地工作)。在决定 XkbSetDetectableAutoRepeat 是 AXIS 现在在我们想要支持的所有平台上使用的启发式方法的可行替代方案之前,需要进行调查。这也可能会影响重复键的行为方式,例如,如果您想在 MDI 输入字段中按住左箭头。 https://nikit.tcl-lang.org/page/Disable+autorepeat+under+X11提供了一个用于调用 XkbSetDetectableAutoRepeat 的 Tcl/Tk 扩展。

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434 jepler 改了标题 joint.n.vel_cmd 在慢跑时不稳定 joint.n.vel_cmd 在 vi​​rtualbox 中慢跑时不稳定 2018 年 5 月 9 日
joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434 jepler 改了标题 joint.n.vel_cmd 在 vi​​rtualbox 中慢跑时不稳定 joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 2018 年 5 月 9 日
joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
纳罗贡 评论了 2019 年 10 月 17 日  

不使用 virtualbox 也会发生此问题。

使用此键盘(不会发生使用其他键盘)

I: Bus=0003 Vendor=0a81 Product=0205 Version=0110
N: Name="CHESEN PS2 to USB Converter"
P: Phys=usb-0000:00:14.0-8/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:0A81:0205.0001/input/input15
U: Uniq=
H: Handlers=sysrq kbd leds event12 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff980000000007ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

当你保持按下一个键时,它开始产生这个事件(使用 evtest):

Event: time 1571303245.869988, type 1 (EV_KEY), code 103 (KEY_UP), value 1 Event: time 1571303245.869988, -------------- SYN_REPORT ------------ ^[[AEvent: time 1571303246.137605, type 1 (EV_KEY), code 103 (KEY_UP), value 2 Event: time 1571303246.137605, -------------- SYN_REPORT ------------ ^[[AEvent: time 1571303246.177572, type 1 (EV_KEY), code 103 (KEY_UP), value 2 Event: time 1571303246.177572, -------------- SYN_REPORT ------------
最后一个在一段时间(~1 秒)内重复,点动很平稳,但之后一个新事件 (EV_MSC) 开始出现,点动停止并重复运行,直到您释放并再次按下该键。
Event: time 1571303246.817607, -------------- SYN_REPORT ------------ ^[[A^[[AEvent: time 1571303246.857571, type 1 (EV_KEY), code 103 (KEY_UP), value 2 Event: time 1571303246.857571, -------------- SYN_REPORT ------------ ^[[AEvent: time 1571303246.885929, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1571303246.885929, type 1 (EV_KEY), code 103 (KEY_UP), value 0 Event: time 1571303246.885929, -------------- SYN_REPORT ------------ Event: time 1571303247.005935, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1571303247.005935, type 1 (EV_KEY), code 103 (KEY_UP), value 1 Event: time 1571303247.005935, -------------- SYN_REPORT ------------ ^[[AEvent: time 1571303247.069981, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1571303247.069981, type 1 (EV_KEY), code 103 (KEY_UP), value 0 Event: time 1571303247.069981, -------------- SYN_REPORT ------------ Event: time 1571303247.181979, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1571303247.181979, type 1 (EV_KEY), code 103 (KEY_UP), value 1

是否可以禁用键绑定以在轴 gui 中慢跑并使用具有去抖动功能的 hal_input 组件?

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者

是否可以尝试使用不同的键盘?
这是真机吗?是否有可能添加通过 HAL 引脚而不是 GUI 连接的物理点动按钮?

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434

是否可以尝试使用不同的键盘?
是的,不同的键盘不会发生这种情况

这是真机吗?是否有可能添加通过 HAL 引脚而不是 GUI 连接的物理点动按钮?

是的,这是一台带有工业金属键盘的真机。我们有一个解决问题的吊坠,但这种行为很奇怪。

是否可以在 axis gui 中禁用键盘点动?

我可以使用 hal_input 组件和去抖动输出。

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
纳罗贡 评论了 2019 年 10 月 17 日  

我创建了一个组件来过滤来自 hal_input 键引脚的信号并避免这种行为。
但是我必须使用解除绑定的密钥。

bind_axis“左”“右”0
bind_axis“向下”“向上”1
bind_axis ( “下一个” , “前一个” , 2 )
bind_axis ( “KP_Left” , “KP_Right” , 0 )
bind_axis ( “KP_Down” , “KP_Up” , 1 )
bind_axis ( “KP_Next” , “KP_Prior” , 2 )
bind_axis ( “KP_4” , “KP_6” , 0 )
bind_axis ( “KP_2” , “KP_8” , 1 )
bind_axis ( “KP_3” , “KP_9” , 2 )
bind_axis ( “bracketleft” , bracketright” , 3 )
如果 len ( jog_order ) < 3 :
根窗口bind ( “<KeyPress-KP_Next>” , kp_wrap ( lambda e : None , “KeyPress” ))
根窗口bind ( “<KeyPress-KP_Prior>” , kp_wrap ( lambda e : None , “KeyPress” ))

 

我可以在 axis.py 中评论这一行,但最好创建一个 pin 来禁用/启用轴 gui 的慢跑。这可能吗?

编辑:它会起作用吗?纳罗贡@ 17f6859

joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434
合作者

您应该能够使用 .axisrc 文件取消绑定引脚:
您可能会在这里找到一些线索:https ://forum.linuxcnc.org/21-axis/29735-axis-modifications?start=0

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

4人参加
joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434joint.n.vel_cmd 在 Virtualbox 中的 AXIS 键盘慢跑期间不稳定 #434

喜欢 (0)