注释
我对你的问题感到很困惑。“G00 X3.2 Y4.5 Z5”文本是要求GRBL驱动3个电机的GCODE。 |
我明白我没有尽可能明确。我会再试一次。
我想接收在我的 ESP32 中发送的 UGS 行,而不需要解释器将其转换为我的电机的步骤。这意味着我需要逐行进入 ESP32 的 GCode。 我希望这能澄清我的疑问,如果不是,我会继续尝试:D |
我不确定您要做什么。请告诉我们原因,也许我们会理解。 当字符一次到达一个时,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 暂停/恢复作业的执行,这可能吗? |
也许提一下我的情况很重要。我负责开发数控机床的大型项目的一部分。我的部分只包括与软件的接口以及通过串行将 GCodes 发送到另一个 MCU,后者解析它们并进行解释和电机控制。这就是为什么我只想获取 GCode,但现在我需要一种方法来暂停 GRBL 代码的执行,以便我等待外部 MCU 完成之前的任务,然后恢复它以继续制造。 我希望我不会太烦人,我非常感谢您的回答。 |
为此使用 Grbl 似乎很奇怪。编写/修改发件人不是更好吗? 在最基本的形式中,发送者正在等待来自 Grbl 的“OK”。您可以通过这种方式控制流量。一些命令,如进给保持和进给速率覆盖是“实时的”,不需要 OK。 你的项目听起来非常超出 Grbl 的范围,所以我将退出这个对话。 祝你好运 |
那么有没有办法暂停GRBL的执行?问题是我们想为我们的机器使用无刷电机,因此 GRBL 中包含的控制器对我们来说是不够的。我会继续查看代码,任何帮助都是有用的。 谢谢! |
您可能还想查看:
|
@easytarget你的博文听起来像是垃圾邮件(为什么你的“超级”沙鼠比其他的好)。 |
不是我的博文……与我无关;几周前,我在普通的 Google-fu 中发现了它,当时我还想知道“只是”扩展 Grbl 是多么容易。虽然它提到了他们的 Grbl 分叉,但它几乎不是垃圾邮件,你需要访问他们的主页。 无论如何,正如你所说;OP 试图做的事情听起来像是简单的文本解析,而 Grbl 不会是一种资产;-)。但本着开放和合作的精神,我认为这可能会帮助 OP 或任何其他在未来发现此线程并制定类似疯狂计划的人;这对那些已经了解架构的人来说没有用,但是冷下来我真的很高兴有人花时间写这个。 |
新格尔GT 评论 on 20 Mar 2019
你好,
我想使用 GRBL 与 Windows 中的通用 GCode 发送程序进行通信。我已经设法与它建立了联系,到目前为止一切都很好。但是,对于我正在开发的应用程序,我只需要将程序中的 GCodes 获取到 ESP32(例如接收到 ESP32“G00 X3.2 Y4.5 Z5”),而不是驱动电机的步骤。你能给我一些关于如何实现这一目标的提示或见解吗?
感谢您的回答!