注释
不错的机器!:) 很难说到底发生了什么,但首先,您使用的是最新版本的 stream.py 吗?有一个更新来解决它使用的字符计数方案中的缺失字符。像您遇到的随机错误会在旧版本上发生。更新后的版本在循环中应该有与此类似的行。
如果不是这样,那么我们将不得不开始更深入地挖掘,比如这是否仅在 v0.8 边缘版本或 master 和 edge 上执行此操作;并且这是否发生在不同的主机和显示/注销睡眠设置上。 |
我只是快速搜索了错误。好像跟Linux和pySerial有关系。在 Linux 上,当它尝试从主机读取缓冲区中读取一个字节时,它将返回一个空字节,表明存在设备断开连接。这可能意味着 Arduino 连接在某个时候被断开,但我也看到 pySerial 源中可能存在错误,该错误会给出虚假错误。一个人在 serialposix.py 的第 456 行注释掉了 raise 异常行,似乎用它解决了他的问题。我不能说或建议您尝试这个,但我会先尝试使用非 Linux 计算机进行确认。 |
我正在使用带有您提到的行的脚本版本。我会检查其他选项。 |
直到现在都无法重现错误,因为它不经常发生。但我已经将 python 脚本翻译成 c# 用于测试目的:https ://github.com/cody82/GrblStreamSharp |
问题。当它确实发生时,它是在程序中的同一个地方发生,还是在您的机器正在做某事时发生?比如在高负载下或运行超过一定时间(例如 5 分钟左右)? 另外,您的 C# 代码是否完全修复了它?如果是这样,那么 pySerial 可能就是罪魁祸首。 |
昨天我什至无法用 python 重现它。它很少发生并且不可重现。也许它甚至只发生在铣削计算机上。(我在另一台电脑上测试,但都运行 Ubuntu 11.10) |
诡异的。这听起来像是您的铣削计算机或接线。测试时另一台计算机是否已连接到您的工厂并打开电源?你可以尝试的一件事是编写一个无限循环来发送相同的 g 代码文件,直到它返回一个错误,但我只使用连接的 Arduino,并将它与你的工厂隔离开来。这将告诉我们问题来自系统的哪一侧:计算机/grbl 一侧,或者是否有任何接线或电气问题反馈导致 grbl 崩溃。 |
一台计算机在工厂,另一台不在。今天,我使用与 python 脚本失败时相同的 mill-job 测试了 c# 程序。该作业有 12000 行,运行一个小时。我工作。当然,我本来可以很幸运的。到目前为止,这个问题发生了两次。两者都使用 python 脚本。我想我将不得不做更多的测试。 |
我有时会在 stream.py 和 grbl_v0_8a_edge_328p_16mhz_9600_build20120212.hex 中遇到此错误:
发生此错误时,我还有一个实时视频:)
http://www.youtube.com/watch?v=ebH1A1NImYc