注释
|
我对你的问题很困惑。“G00 X3.2 Y4.5 Z5”文本是请求 GRBL 驱动 3 个电机的 GCODE。 |
|
我知道我没有尽可能明确。我会再试一次。
我想接收在我的 ESP32 中发送的 UGS 行,而不需要解释器将其转换为我的电机的步骤。这意味着我需要逐行进入 ESP32 的 GCode。 我希望这能澄清我的疑问,否则我会继续尝试 |
|
我不确定您要做什么。请告诉我们原因,也许我们会理解。 当字符一次一个地到达时,Grbl 解析它们以删除未使用的字符并立即对实时命令字符采取行动。它将其他所有内容放入缓冲区。一旦在缓冲区中检测到行结束,它就会解析该行以查看它是否合法,然后在可以时执行它。 您也许可以更改它以执行您想要的操作。我们不太可能想要更改任何分支。 大部分内容在 serial.cpp 和 protocol.cpp 中 https://github.com/bdring/Grbl_Esp32/blob/WebUI/Grbl_Esp32/protocol.cpp#L110 |
|
@XngelGTGrbl 是一个 GCode 解释器/解析器,你似乎想要的是一个串行端口记录器。但是你没有说的是你想用 gcode 行做什么。您是想将它们写入 SD 卡还是解析其中的一些内容? |
这就是我想要做的,我已经设法在 protocol.cpp 函数中进行了一些思考。一切都井井有条,使之变得如此简单。现在我想知道如何从 ESP32 暂停/恢复作业的执行,这可能吗? |
也许重要的是要提一下我的情况。我负责开发 CNC 机器的大型项目的一部分。我的部分只包括与软件的接口以及通过串行将 GCodes 发送到另一个解析它们的 MCU 进行解释和电机控制。这就是为什么我只想获取 GCode,但现在我需要一种方法来暂停 GRBL 代码的执行,以便我等待外部 MCU 完成之前的任务,然后恢复它以继续制造。 我希望我不会太烦人,我非常感谢你的回答。 |
|
为此使用 Grbl 似乎很奇怪。写/修改发件人不是更好吗? 在最基本的形式中,发送者正在等待 Grbl 的“OK”。您可以通过这种方式控制流量。一些命令,如进给保持和进给速率覆盖是“实时的”,不需要 OK。 你的项目听起来非常超出 Grbl 的范围,所以我要退出这个对话。 祝你好运 |
|
那么没有办法暂停 GRBL 的执行吗?问题是我们想为我们的机器使用无刷电机,因此 GRBL 中包含的控制器对我们来说是不够的。我会继续查看代码,任何帮助都是有用的。 谢谢! |


你好,
我想使用 GRBL 与 Windows 中的通用 GCode 发送程序进行通信。我已经设法与它建立联系,到目前为止一切顺利。然而,对于我正在开发的应用程序,我只需要从程序中获取 GCodes 到 ESP32(例如接收到 ESP32“G00 X3.2 Y4.5 Z5”),而不是驱动电机的步骤。你能给我一些关于如何实现这一目标的提示或见解吗?
感谢您的回答!