注释
我会将其标记为问题,而不是真正的问题。 |
直到星期一我又出城了。您应该使用 WebUI 分支并查看 command.txt 以了解 SD 命令是如何工作的。 WebUI 将很快合并到 master。 |
@GandalfOp您需要发送单独的命令并等待控制器返回相应的“ok”,然后再发送下一个命令。如果您需要发送一系列命令并且它不是 G 代码文件作业,我会在您的软件中为您正在等待响应的不同命令组创建标志,并使用全局计数器值来管理您当前的命令在序列中。这样就万无一失了。 如果您定期轮询“?” 我建议添加一个计时器来捕获任何命令超时或有效管理任何返回以“<”开头的响应的命令。 请参阅我在 vb.NET 中编写的 GRBL 工具中的示例。我有一个枚举来设置我正在编辑设置的状态。然后它在“ok”响应之间按顺序发送相应的命令组。 ‘Accel 设置 |
我认为最好的方法是为命令创建另一个通道。如果您查看 serialCheckTask(),您会发现它可以从多个来源(串行、蓝牙、wifi、telnet)读取命令。 添加另一个源,如“local_control”,将允许 Grbl 从队列中读取命令。按钮等可以将命令添加到队列中。 允许 Grbl 控制这些命令的读取非常重要。您不能立即推送大多数命令,因为 Grbl 的缓冲区可能已满或尚未准备好执行新命令。 您可以查看其他来源作为如何实施新来源的示例。添加一个全面的本地控制面板,带 LCD 等可能是一个更大项目的一部分。我现在没有时间这样做,添加本地显示器违背了我对 Grbl_ESP32(最好的本地显示器)的基本愿景是与您的手机或 PC 的无线连接) |
伟大的!非常感谢,这将非常有帮助! 非常感谢! |
伟大的!将尝试以这种方式运行我的代码!非常感谢! |
您好,很抱歉回答了一个已关闭的问题,但我更改了引脚图以使其在 ESP32 CNC 板上工作,我只能使其工作在引脚 13 上接线,并且只有在按下引脚时才会激活(开关,而不是单按按钮)奇怪的是,当我在 Universal GcodeSender 上执行此操作时,只需按一下按钮,它实际上会激活整个 gcode,而连接到电机的同一程序需要永久按下按钮。 有什么我可以使用的信息吗? 谢谢! |
甘道夫 评论 on 30 Mar 2019
您好,
我正在尝试从代码行执行一些 GRBL 代码,就像我将从 Universal Gcode Sender 发送它们一样(例如:)
if (Start_Button == 1) { "Send $FM" "Send $F" "Send $F=/mycode }
我不会“从字面上”这样做,因为我将在开始按钮上使用中断,然后从内部激活一个全局变量,并在这个全局变量触发时使用手表来执行我的代码。
有没有办法“发送$FM”?否则,这些命令是否存储在内存地址中?这样我就可以直接打电话给地址了。
非常感谢!