评论
|
实际上,此类功能大多存在。我们为此使用 pyserial url 处理程序: https://pyserial.readthedocs.io/en/latest/url_handlers.html 谈到用于测试的虚拟控制器,有几种可能性。 它使用 socat 创建假串口(目前可能只适用于 linux,可能需要在其他平台上进行一些调整)。 如果你不喜欢假串口的想法,如果 pyserial 修复了这个会有所帮助:pyserial/pyserial#393 这将允许直接启动 grbl 模拟器二进制文件,而无需中间伪串行端口将 bCNC 连接到它。 另请注意,如果这种抽象得到改进,它将不仅仅用于 bCNC。其他使用 pyserial 的项目也会受益。 |
|
因此,虽然我上面列出的大多数用例都有解决方案,但它们都需要在 bCNC 之外进行黑客攻击。 我想我在这里讨论的是代码结构,而不是任何特定的功能。 不过,这是您的选择;如果你认为它没有用,那我就放弃它。 |
|
其他一些随机的想法: Pyserial URL 处理程序; 你在pyserial/pyserial#393的 pyserial 建议; 但是您/可以/使用 paramiko 在远程服务器上以 TCP 模式启动 socat,然后使用 pyserial 连接到它。
|
出色地。我现在真的看不到这样做有什么好处。老实说,我最初的目标正是您建议的方法,但是一旦我发现 pyserial 中的功能足够好,我就放弃了这个意图。 不要误会我的意思。我想确保可以从 bCNC 访问常用硬件。我认为目前这意味着两种情况。 1.) ESP32 的 GRBL 端口(启用 wifi 的硬件) 这两种设置都在工作并在 wiki 中进行了描述: 我并不是说你的方法是错误的。也许我们将来可以从中受益。但现在我认为专注于 bCNC 中更大的问题更有意义。现在真正让我心碎的是 g 代码渲染的速度有多慢。更不用说缺乏抗锯齿了。我们需要想办法实现一些更快的图形显示(例如基于 opengl),这将是快速的并且允许即时渲染和自由 3D 旋转。 |
我不是在谈论在远程服务器上执行任意命令。我说的是在本地执行任意命令。我很清楚这对每个人来说都不是完全安全的,因此需要在使用 pyserial 的代码中显式启用此功能。 我认为问题在于 pyserial 作者反应迟钝。如果他们至少允许新的维护者进入项目,那将会有所帮助。
我是。这是当前可能的 bCNC 设置之一。在物理连接到 GRBL 的机器上运行 SOCAT,并使用 pyserial over LAN 将 bCNC 连接到它。 |
我只是快速浏览了一下 乍一看
你在传统知识中有什么用? 不管怎样, |


我刚刚看了一下
Sender.py。几年前我最后一次查看这个文件,当时认为将不同的控制器类型子类化会很好。很高兴看到控制器插件已经完成了这项工作。
我认为我们可以更进一步。
目前所有支持的控制器都是使用串行端口驱动的,但我认为这有点限制;如果串行端口代码移动到插件父类之一,它将允许编写不依赖于串行端口的插件。
一些有用的插件浮现在脑海中:
Sender.py.Sender类以允许远程使用任何现有插件)。这项工作看起来并不复杂。它主要只是重构,对逻辑的更改很少。
之后插件层次结构看起来像这样:
如果我处理它,这可能会被合并吗?