开源改变世界!!

关于 Telnet 功能的问题 #523

推推 grbl 2年前 (2023-01-27) 213次浏览
关闭
luc-github 打开了这个问题 2018 年 12 月 12 日 · 19条评论
关闭

关于 Telnet 功能的问题#523

luc-github 打开了这个问题 2018 年 12 月 12 日 · 19条评论

注释

关于 Telnet 功能的问题 #523

您好,我正在研究 GRBL_ESP32 项目 ( https://github.com/bdring/Grbl_Esp32 ),我们正努力让它与您的 lasergrbl 完美配合。
我们能够进行设置:Telnet / Synchronous / Slow 到目前为止工作得很好

我们想看看我们是否也可以使用缓冲,但我们遇到了 2 个问题,我查看了你的代码但我不熟悉它:
1 – 随机在 telnet 缓冲模式下,几秒钟后,lasergrbl 似乎停止发送 GCODE 但继续发送状态查询,
看起来激光 grbl 没有得到正确数量的确认或类似的东西,有什么
方法可以检查这个?
我还可以知道是什么触发了使用 telnet 和缓冲模式使缓冲区变满吗?

2 – 再次随机进入 telnet 缓冲模式,ESP32 wifi RX 缓冲区似乎溢出了 – 因此板不再响应并且也冻结了 lasergrbl – 所以停止的唯一方法是终止 lasergrbl 任务 我可以知道最大大小是多少发送缓冲区?

3 – 我看到代码中有一个用于 telnet 的日志文件,socketlog.txt但我找不到它 – 启用它是否需要一个标志?或者应该在哪里生成?

提前致谢

关于 Telnet 功能的问题 #523
所有者
阿尔基皮塔 评论了 2018 年 12 月 12 日  

嗨,luc
,我愿意为你的项目提供我所能提供的所有支持。

对于您在第 1 点描述的内容(停止发送 GCODE 但继续发送状态查询)似乎 lasergrbl“认为”缓冲区已满。

有什么方法可以检查这个吗?我还可以知道是什么触发了使用 telnet 和缓冲模式使缓冲区变满吗?

缓冲区与 telnet 无关。Grbl 有一个串行缓冲区,允许每次发送多条 gcode 行,允许 grbl 固件“预测”下一个动作并优化加速/减速,允许下一条指令没有打嗝等。
这个缓冲区有一个固定的size 和 LaserGRBL 实现了此处描述的字符计数协议。

需要知道的一件事是 LaserGRBL 使用 127 字符(不是 128)的缓冲区大小,因为它与缓冲区为 127 的旧 grbl v0.9 兼容

LaserGRBL 在行数信息附近的左下方进度条中显示此缓冲区的使用情况。因为它只显示一个进度条而不显示数字,所以它对于调试目的不是很有用。

如果您使用 $10=2 激活缓冲区报告,grbl 将开始发送有关缓冲区内部状态报告的调试信息。

https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration#10—status-report-mask
https://github.com/gnea/grbl/wiki/Grbl-v1.1 -接口#real-time-status-reports

另请注意,如果 LaserGRBL 收到包含有关缓冲区信息的状态报告,并且该信息包含多个高于 127 的可用空间字符,则 LaserGRBL 可以将自身缓冲区扩大到此大小。这是由具有 10240 缓冲区的 Grbl-LPC 分支请求的。

关于 Telnet 功能的问题 #523
所有者

3 – 我看到代码 socketlog.txt 中有一个用于 telnet 的日志文件,但我找不到它 – 启用它是否需要一个标志?或者应该在哪里生成?

从命令提示符或快捷方式运行 LaserGRBL。如果您使用“comlog”参数“C:\Program Files (x86)\LaserGRBL\LaserGRBL.exe comlog”启动 LaserGRBL,程序将记录一个名为“netlog.txt”的文件,位于“C:\Users\YourName\AppData\漫游 \LaserGRBL”。在 comlog 文件中,您可以找到从 LaserGRBL 传输/接收的所有数据。

关于 Telnet 功能的问题 #523
所有者

LaserGRBL 在行数信息附近的左下方进度条中显示此缓冲区的使用情况。因为它只显示一个进度条而不显示数字,所以它对于调试目的不是很有用。

我将在进度条上添加一个带有数字信息的工具提示,这样您就可以将 LaserGRBL 字符计数报告的缓冲区状态与 grbl 状态报告报告的值进行比较。

关于 Telnet 功能的问题 #523
作者

非常好,非常感谢您的解释,非常感谢您的支持,这将有助于弄清楚缓冲模式下发生了什么。

关于 Telnet 功能的问题 #523
所有者

我补充说,当 LaserGRBL 识别出机器不再执行任何运动时,它会通过“问题检测器”对话框拦截这种情况(您可能已经看到了)。同时它在sessionlog.txt文件中记录了一些诊断信息。

Logger.LogMessage(“问题检测器”, “{0} [{1},{2},{3}]”, 问题, FreeBuffer, GrblBuffer, GrblBlock);

FreeBuffer 是来自 LaserGRBL 知识/观点的缓冲区空间
GrblBuffer/GrblBlock 取自上次状态报告,如果 $10=2

关于 Telnet 功能的问题 #523
所有者

让我知道

关于 Telnet 功能的问题 #523
作者
luc-github 评论了 2018 年 12 月 12 日  

日志文件非常好 – 似乎 ESP32 核心可能与 lwip 有一些问题 – 我可能需要发送带有最小草图的程序来重现问题 – 可以吗?

关于 Telnet 功能的问题 #523
作者

实际上我想我会在 python 中做一个简单的发件人,这样他们就可以检查发件人并调整他们的调试

关于 Telnet 功能的问题 #523
作者

谢谢 – 实际上我可以通过简单的乒乓交换锁定 WiFi 服务器,所以我只是保持超级简单

关于 Telnet 功能的问题 #523
作者

我会及时通知你 – 在那之前我认为我们可以关闭问题

非常感谢您的大力帮助