开源改变世界

Woddpecker v3.4 主板 (CH340) 和 GBRL v1.1f/h 的通信问题 #1640

推推 grbl 2年前 (2023-02-03) 151次浏览
打开
mveigel-softkomplett 打开了这个问题 2021 年 11 月 5 日 · 0 条评论
打开

Woddpecker v3.4 主板 (CH340) 和 GBRL v1.1f/h 的通信问题#1640

mveigel-softkomplett 打开了这个问题 2021 年 11 月 5 日 · 0 条评论

评论

Woddpecker v3.4 主板 (CH340) 和 GBRL v1.1f/h 的通信问题 #1640

你好,

首先 – 感谢这款出色的软件 :)。它几乎运行良好,但我遇到了一些烦人的问题(经过一些研究后我认为这是因为 CH340 串口到 USB 转换器)。随机地,我在通信中出现了一些乱码,这导致程序异常,我不得不重新连接到机器(失去所有进度)。

这种情况并不经常发生,但(根据墨菲定律)主要是在最坏的情况下(例如相机校准)-通常在进行简单操作(例如移动头部)时。

在摆弄波特率(没有任何进展)之后,我查看了源代码并做了一个小补丁(简单地在 Sender.py 中的 parseLine 调用周围包装了一个 try/except 块,添加了一些输出)。

这对我的情况有帮助(对于有这种情况的人可能在许多其他情况下也有帮助),但我猜这不是最好的解决方案;)。一个很大的改进是重新发送最后一个命令(但我对源代码不够坚定,不想在你的工作中做更大的补丁。

找到下面的补丁并将其应用到 Sender.py,以便其他人可以使用它并提高通信的稳定性。我认为您必须处理选项卡,除此之外只需使用“patch -up0 < filename”,但我认为您知道如何处理它 :)。

--- Sender.py.orig	2020-12-28 21:46:45.000000000 +0100
+++ Sender.py	2021-11-01 23:06:57.472479137 +0100
@@ -782,12 +782,18 @@
 
 				#print "<R<",repr(line)
 				#print "*-* stack=",sline,"sum=",sum(cline),"wait=",wait,"pause=",self._pause
+				try:
 				if not line:
 					pass
 				elif self.mcontrol.parseLine(line, cline, sline):
 					pass
 				else:
 					self.log.put((Sender.MSG_RECEIVE, line))
+				except:
+					self.log.put((Sender.MSG_RECEIVE, str(sys.exc_info()[1])))
+					self.log.put((Sender.MSG_RECEIVE, line))
+					self.log.put((Sender.MSG_RECEIVE, tosend))
+					self.emptyQueue()
 
 			# Received external message to stop
 			if self._stop:

干杯,
迈克尔

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

1名参加者
Woddpecker v3.4 主板 (CH340) 和 GBRL v1.1f/h 的通信问题 #1640

喜欢 (0)