评论
这在 InputThread 分支中得到修复。我不知道我们什么时候会把它提升到主线。 |
我可能只是拉它并构建它。如果使用 platformio 构建 FluidNC 的难度只有 Grbl_Esp32 的一半,那么这是显而易见的。 |
请尝试一下。我们需要对该分支进行一些外部测试。我一直在我的机器上使用它。 |
它尝试在一个内核上执行所有 UI IO——网络、串行等等——在另一个内核上执行 gcode 和踩踏。原则上这对我来说似乎是个好主意,但我必须解决几个同步问题才能使其正常工作。 |
哇,这个分支里有很多。 |
您希望我如何报告/解决此分支 (InputThread) 中的回归问题? 例如,我们从 $CD 中得到了一些格式错误的 yaml:
名称/值对中的名称后应始终有一个空格,如下所示:
当 yaml 解析器尝试处理这样的事情时,它会变得更加复杂:
如果这样做,它将通过语法检查并正确解析
在预处理/接收配置数据时,我现在已经解决了这个问题:
|
一些额外的观察: 从 3 个界面(串行、WebUI 和 telnet)中的任何一个:
最后一个标注特定于 WebUI,仅供参考。它不会显示任何状态报告请求的确认 (ok),包括自动报告和您触发的报告。它似乎确实在向他们展示其他一切。 |
我明天会做几份工作(可能会为此腾出空间),如果有任何奇怪的事情发生,我会报告。 |
很好……我会把它拉进来并退出我自己的黑客 |
根据 GRBL 协议,状态报告是单字符“实时”命令,其处理方式不同于面向行的命令。ok acks 仅适用于行。 |
相对于线路协议,实时字符是“带外”的。 |
明白了。之所以调用它,是因为我无法在 WebUI 中验证它们的 acks。我明白为什么他们被压制了……终端窗口将每隔一行快速填满无用的“ok”消息。 其他实时命令,如 feed hold 和 resume(!和 ~)的行为相同……我确实验证了它们也在它们的通道内。 |
呃,我想通了…..用户错误。我在那里有点困惑。 我正在点击进入。循环开始的那个 ok 是由我在它之前发送的 \r 触发的。这没东西看。 这实际上对我一直在挠头的事情真的很有帮助…… 我的发件人只做面向行的处理。我终于明白为什么我的实时命令没问题了……它们后面跟着 /r! |
当我回家时得到以下信息。我没有任何启动线路
来自这里:
config->_macros->startup_line(i) 为空:
让我们检查一下我的启动行:
我无法清除它们:
我的猜测是这只需要检查是否为 null 并将其视为没有启动行。我很好奇你是如何重置它们的。假设我做了 $N0=G91。…我该如何撤消它? 警报和消息 ([MSG:) 正在广播到所有频道。我认为这是一件好事。像这样的东西:
|
正确的说法是:
不是
FluidNC 配置文件格式不是真正的 YAML。它根本没有数据类型,所以没有“null”关键字这样的东西。就配置解析器而言,每个值只是一个字符串。将该字符串解释为数字或其他任何内容由单个项目完成,而不是在解析器级别。 你可能会争辩说,我在某种程度上同意你的观点,提到它与 YAML 的相似性是一种误导。另一方面,假装它是 YAML 确实有许多编辑器和显示代理会着色并帮助缩进的优势。 我个人在我的文件中使用扩展名 .flnc,而不是 .yaml,但其他扩展名并不那么挑剔。 |
Re $N0=G91(例如)-目前更改启动行的唯一方法是发送,例如
那不是持久的;要坚持下去,您必须更改配置文件。 |
null 可能是通过 python yaml 解析器插入的。我也在我的“已解析”配置文件中的其他几个地方看到它:
我现在可能可以通过一些替换/替换逻辑来解决这个问题。另一个想法是在 FluidNC 中过滤掉它们。拥有像配置文件这样的“yaml”并不是那么吸引人,因为它不能很好地与像 python 那样的强化解析器一起工作。 |
我现在已经在我自己的客户端/发件人中清理了这个。我讨厌必须在任何地方解析文字“null”的想法。 |
控制板
打开构建 BlackBox X32
机器描述
蜂王临
输入电路
N/A
配置文件
启动消息
用户界面软件
CNCjs 和 WebUI
发生了什么?
我看到 acks 跨越“通道”边界。来自 webui / telnet pop 的 OKs on serial 反之亦然。
这是一个视频:
https://youtu.be/-xPGeBrDXko
其他信息
没有反应