开源改变世界

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21

推推 grbl 3年前 (2023-02-08) 182次浏览
打开
rcp1 打开了这个问题 2021 年 10 月 14 日 · 5 条评论
打开

Teensy 4.1 在缓冲区满时挂起并触发紧急停止#21

rcp1 打开了这个问题 2021 年 10 月 14 日 · 5 条评论

评论

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21
贡献者
rcp1 评论了 2021 年 10 月 14 日  

你好,

感谢您与 grblHal 的出色合作。

我遇到了有关慢跑的问题。我目前正在尝试实现我自己的游戏手柄驱动程序,以便在 T41U5XBB 板上使用 grblHal 在 cncjs 中慢跑,并向 grblHal 发送大量$J=G91G21X-3.3Y0.0Z0.0F1000.00慢跑命令。此外 – 由于我的代码未完成的性质或我的懒惰 – 我不检查来自 grblHal 的 Ack。因此,这些点动命令会叠加,直到计划和接收缓冲区已满。

如果我用完整的缓冲区触发紧急停止引脚,Teensy 将变得完全不负责任,只有硬电源重置才有帮助。

这可能是一个愚蠢的问题,但是缓冲区已满会导致无响应吗?发件人的任务是在缓冲区满时停止发送吗?grblHal 是我第一次使用基于 grbl 的软件,我认为预期的行为是 grblHal 在任何情况下都不会无响应。

如果我将点动值设置为不合理的数量并在所有轴上用键盘疯狂地点动,我也可以用 IOSender 重现崩溃/变得无响应:

  <Jog>
    <KeyboardEnable>false</KeyboardEnable>
    <FastFeedrate>3000</FastFeedrate>
    <SlowFeedrate>3000</SlowFeedrate>
    <StepFeedrate>3000</StepFeedrate>
    <FastDistance>300</FastDistance>
    <SlowDistance>300</SlowDistance>
    <StepDistance>300</StepDistance>
  </Jog>

这是我的构建设置($I):

[VER:1.1f.20211010:]
[OPT:VNMZSL,35,1024,3,0]
[NEWOPT:ENUMS,RT+,HOME,ES,EXPR,TC,SED]
[FIRMWARE:grblHAL]
[NVS STORAGE:*FLASH]
[DRIVER:iMXRT1062]
[DRIVER VERSION:210930]
[DRIVER OPTIONS:USB.2]
[BOARD:T41U5XBB]
[AUX IO:4,3,0,0]

感谢您的时间。

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21
贡献者

…向 grblHal 发送大量 $J=G91G21X-3.3Y0.0Z0.0F1000.00 点动命令

避免这种情况,如果可能的话,在按键按下时发送一个长距离点动命令,在按键上发送点动取消。

这可能是一个愚蠢的问题,但是缓冲区已满会导致无响应吗?

它不应该——它是我的代码中的错误还是 Teensy USB 代码中的错误?您可以尝试USB_SERIAL_CDC 在 my_machine.h 中设置为 1 并重新刷写吗?

发件人的任务是在缓冲区满时停止发送吗?

是的!由于溢出的字符会丢失,所以溢出缓冲区是有潜在危险的。

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21
贡献者作者
rcp1 评论了 2021 年 10 月 14 日  

好的,所以一般来说这已经是一个边缘情况,因为发送者确实/我不关心缓冲区。

是的,我刚刚将 USB_SERIAL_CDC 设置为 1 进行了测试,它也发生了。

[VER:1.1f.20211010:]
[OPT:VNMZSL,35,1024,3,0]
[NEWOPT:ENUMS,RT+,HOME,ES,EXPR,TC,SED]
[FIRMWARE:grblHAL]
[NVS STORAGE:*FLASH]
[DRIVER:iMXRT1062]
[DRIVER VERSION:210930]
[DRIVER OPTIONS:USB.1]
[BOARD:T41U5XBB]
[AUX IO:4,3,0,0]
Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21

@rcp1出于兴趣,我也在为 CNCjs 使用游戏手柄插件。总体上工作正常,但在 Pi 上有一个麻烦的内存泄漏,我从未深入了解过……

我只是把我的代码贴在 github 上以防它对你有帮助 – https://github.com/dresco/cncjs-pendant-gamecontroller

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21
贡献者作者
rcp1 评论了 2021 年 10 月 14 日  

@rcp1出于兴趣,我也在为 CNCjs 使用游戏手柄插件。总体上工作正常,但在 Pi 上有一个麻烦的内存泄漏,我从未深入了解过……

我只是把我的代码贴在 github 上以防它对你有帮助 – https://github.com/dresco/cncjs-pendant-gamecontroller

@dresco很好,你实际上检查了 grbl 的确认……我可能会复制那部分……(请参阅我当前版本的 cncjs-pendant-gamepad )

Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21
贡献者

遗憾的是 Teensy 不可调试,否则我可能会想尝试复制它并找出它挂在哪里。但是由于它在对系统施加超出我认为安全(并且设计用于)的压力时挂起,所以我现在暂时放弃它。

您可能感兴趣的是,我稍微修改了它们的键盘插件,以便可以使用来自串行端口或 HID 设备的输入,而不是 I2C 键盘。该插件为许多不同的功能(包括慢跑)解码单字符命令。支持三种不同的点动模式:快速、慢速和步进。点动移动通过发送标准点动取消命令(在按键弹起事件上)来终止。

串行端口接口将是最容易工作的,因为许多驱动程序都支持多个端口。HID 设备的工作量更大,只有少数驱动程序支持主机模式(?)。Pro板由@phil-barrett有一个用于第二个 USB 端口的连接器,因此可以使用,如果有人可以添加对游戏手柄的主机模式支持,那就太好了……

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

还没有

发展

没有分支机构或拉取请求

3人参加
Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21Teensy 4.1 在缓冲区满时挂起并触发紧急停止 #21

喜欢 (0)