注释
我计划添加一个可以从 UI 触发自定义脚本的用户定义命令。#75中也提到了这个特性。请继续关注进一步的更新。 |
很高兴听到它正在筹备中…… |
这个特性是在95698eb中加入的,之后会在 1.8.10 版本中发布。示例配置(即 {
"state": {
"checkForUpdates": true
},
"commands": [
{
"text": "Reboot",
"command": "/sbin/reboot"
},
{
"text": "Shutdown",
"command": "/sbin/shutdown"
}
],
"macros": [],
"users": []
}
|
伟大的。有没有办法更新到非发布版本(实时)? |
如果你愿意使用 master 分支中的最新更改,你可以在树莓派上 git clone 这个项目,然后运行 我将在两天内发布一个新版本。请继续关注进一步的更新。 |
我这样做了,但是出现了一堆错误…我会耐心等待直到您发布 |
只是为了让您知道出于安全考虑,我没有提供直接从 Web 界面添加 shell 命令的页面,否则黑客可能会在服务器上执行任意命令或脚本。 您必须暂时手动更新~/.cncrc文件以添加或删除命令。 |
那很好。 |
@cheton在 CNC gui 中有反馈/控制台输出会很好。 此外,这是我的命令(包括 CNC 和系统更新)
|
我也在考虑打开一个新的浏览器窗口(或通知)来接收 stdout 输出,可能会尝试在以后的版本中添加它。 除了 WebSockets,SSE(Server-Sent Events)可能是它的替代解决方案,浏览器可以自动接收服务器发送的事件通知。 关于 stackoverflow 的一些讨论:http: //stackoverflow.com/questions/21934831/nodejs-express-stream-stdout-instantly-to-the-client |
如果您想在它发生时看到它,SSE 或 websockets 会很好,但是在它结束时将日志作为文本文件托管可能非常有用,而且不费吹灰之力。此外,您可能不希望在默认情况下看到输出,只希望看到成功/失败,并带有检查输出的选项。 我觉得这是相关的,但也许不是,根据数控机床的状态启动停止命令怎么样?我想在剪辑时做一个游戏中时光倒流,如果我可以在 gcode 开始、完成或错误时调用脚本,我就可以做到这一点。我希望我没有劫持这个问题,或者如果我没有阅读足够的文档来找到你已经提供的方法来做到这一点。我使用过与 octoprint 类似的东西,它们有一组非常好的事件,我可以用它们来打开和关闭灯,或发送通知,或任何我想要的东西。 |
我刚刚提到了 OctoPrint 的事件。如何将一些事件添加到~/.cncrc文件中,如下所示?一旦事件触发,您可以发送某些 gcode 行或运行脚本。 {
"events": [
{ // Load
"event": "command:load",
"trigger": "gcode",
"command": "G21 ; use millimeters\n$H",
},
{ // Unload
"event": "command:unload",
"trigger": "gcode",
"command": [ // array
"M5" // spindle stop
]
},
{ // Start
"event": "command:start",
"trigger": "system",
"command": "/path/to/script"
},
{ // Stop
"event": "command:stop",
"trigger": "system",
"command": "/path/to/script"
},
{ // Pause
"event": "command:pause",
"trigger": "system",
"command": "/path/to/script"
},
{ // Resume
"event": "command:resume",
"trigger": "system",
"command": "/path/to/script"
}
]
}
|
这看起来很有用。 一些想法: |
谢谢您的意见。从我最初的想法来看,事件管理应该在 UI 上完成,而不是从文本编辑器中完成。这有助于避免混淆。 触发器类型(即“system”或“gcode”)可用于区分gcode和系统调用,它们都可以是一个由换行符分隔的多行文本输入控件。举些例子:
gcode 触发器还可用于支持类似于您上面提到的用例的M6 工具更改命令 ( #118 )。 |
在接下来的几天里,我将添加对事件触发器的初步支持,其中包括以下事件: gcode:load 你有没有发现上面列表中缺少的有用的东西? |
抱歉,我没有早点回复,我的盘子里有很多事情要做。 这些看起来足以满足我的需求。我计划在 gcode:start 时开始延时摄影,然后在 gcode:stop 时停止。当 gcode 完成时会发生这种情况,而不仅仅是当我停止它时,对吗?我还可以在 gcode:stop 上添加 pushbullet 或 slack 通知。 如果我伸出头来,当 cnc.js 开始有用时,我可以看到一个事件。针对特定 gcode 的事件,如 M6 可能也不错。我可以让它在需要更换工具时向我发送通知。我还没有进行工具更改,但这似乎很有用。 我会看看今天或明天是否可以将这些更改应用到我的 CNC 上。谢谢。 |
此功能在 1.9.0-alpha.3 中可用,但管理 UI 尚未实现。我将在 1.9.0-beta 或最终的 1.9.0 版本中添加这部分。 |
在 v1.9.0-alpha.4 中添加了事件触发器配置 UI。我稍后会向 NPM 发布一个新的 alpha 版本。 |
命令和事件配置 UI 现在在 1.9.0-alpha.5 中可用。 |
有什么方法可以添加可以通过 Web UI 以某种方式调用的自定义命令吗?
我有一个 RPi GPIO,可以打开/关闭 cnc 的电源。我想有一种方法可以通过(太棒了)cnc ui 来切换它