注释
或者,如果 cnc.js 正在处理它,那么它可能不应该将它发送到 LCD。我可以看到用户想要任何一个选项。 |
我赞同这一点——在我点击 LCD 上的按钮后又跑回我的 cncjs 太烦人了。我认为 CNCJS 应该等到 Marlin 返回“ok”表示用户已确认暂停。 |
贡献者
您可能会惊讶于准确跟踪机器状态以正确同步 M0 是多么棘手。我在 cncjs-shopfloor-tablet 中解决了 g2core 的问题,但这并不容易。让它在所有控制器上正常工作非常复杂,以至于我放弃了它。没有办法得到补偿它所花费的时间。根本问题是 UI 和物理机之间有很多队列,控制器固件不是特别擅长报告瞬时状态。CNCjs 可以检测到 M0 并停止发送,但很难确定控制器何时处理了 M0——这与它收到并确认命令的时间不同。与此同时,可能会出现其他类型的保持条件,例如 GCode 错误、工具更改、从 UI 或按钮等发送的馈线。没有一个控制器串行协议设计得很好;g2core 是同类产品中最好的,但它也有问题。 |
贡献者
我看到最初的请求是让 CNCjs 忽略 M0。这很容易做到 – 只需注释掉该行
在 src/server/MarlinController.js 中。如果您等待正式版本包含更改,您可能会等待很长时间,考虑到最近几年 cncjs 的开发很少。 |
每当我更换工具时,我都必须在我的固件 LCD 屏幕和 cnc.js 上确认 M0。我喜欢一个配置设置,让 cnc.js 不会在 M0 上暂停并让固件处理通知,这样我就不必两次确认它们.. 在机器和 cnc.js 上