评论
.jpg)
ESP8266 和 Telnet 通信尚未完全测试。它们处于测试阶段,将在未来的版本中正式发布。 你所描述的听起来像是通信稳定性问题。gcode文件缓存在lw.comm-server中,逐行发送给机器。服务器首先发送几行来填充固件的规划器队列,然后等待“ok”发送下一行(依此类推)。如果没有收到所有的 ok,当规划器队列变空时,服务器会失去同步并停止工作。发生这种情况时,您应该能够暂停并恢复以重新启动命令流。你能检查一下吗? |
嗨克劳迪奥,是的,有时暂停恢复工作,但大多数情况下它不会:-(我能做些什么来帮助调试这个吗?干杯道格拉斯
|
如果您能向我发送一份通信日志文件,可能会有所帮助。 |
嗨,克劳迪奥, 在阅读 lw-comms.server 源代码时,我注意到似乎有各种超时,所以我去了:
我第一次能够端到端地运行 5 分钟的工作。:-) 然后我尝试了一个非常大的 50mb 文件,它运行了很长一段时间然后停止了,我无法暂停-恢复以使其继续,我确实在 logfile.txt 中注意到了这一点:
特别感兴趣的是:
想法? 如果你愿意,我可以发送整个 logfile.txt |
我只是重新运行了大型作业和同样的事情:
如果看起来(也许)没有得到“确定”,则需要重试 X 次? |
第一个日志看起来像 o 是在“status”的最后一个 s 之前收到的。在第二种情况下,状态和 o 之后的 LF 被完全遗漏了。这表明存在可能影响发送的 gcode 的一般通信问题。我什至不确定 telnet 是否是此类文件流的不错选择。 |
您是否尝试过通过 websockets 进行正常的 ESP8266 通信? |
串行(ESP8266 上的 RX/TX)绝对需要 ok,因为这是唯一的流量控制。 |
USB 通信具有额外的硬件流控制,可避免缓冲区溢出。 |
好的,同样的问题发生在 WebSockets 上,一个相对简单的解决方案(不知道源代码
|
不,这行不通。您将失去同步并溢出固件缓冲区。状态报告(运行/空闲/位置)由独立于 gcode 执行速度的计时器查询。因此,您可以在等待一个 gcode 完成时获得多个状态报告。如果您在每个空闲或运行状态下发送新的 gcode 行,您将溢出固件缓冲区。 修补是没有意义的。您需要解决通信问题(加扰/丢失数字)。我相信这是由 ESP8266 代码引起的,因为它根本没有流量控制。 您是收集接收到的字符直到得到一个 \n 然后将空行发送到一个,还是只是通过每个接收到的字符的路径? |
顺便说一句:您可以将 Raspberry Pi 连接到机器的 USB 端口,在 Pi 上执行 lw.comm-server 并在任何网络 pc 上运行前端。这工作稳定。 |
这是ESP8266短缺的问题。关闭。 |
场景:
(1) LW 最新版本在 OSX 或 Linux (Ubuntu) 上运行
(2) Emblaser 2 使用 ESP8266 websocket 或 telnet(两种连接类型的情况相同)- 注意我已经为 ESP8266 实现了 telnet。
(3) 使用 ESP8266 或 telnet 正确连接
(4) 作业在停止前启动并运行一段随机时间,有时运行成功完成
(5) 检查 ESP 到 LW 的串行通信我观察到 Smoothie 从<Run to <Idle 根据 Smoothie 的固件,这意味着它已经清空了缓冲区并且没有从 LW 接收到更多数据
想法?