开源改变世界!!

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125

推推 grbl 1年前 (2023-01-27) 147次浏览
关闭
carneeki 打开了这个问题 2018 年 9 月 18 日 · 8条评论
关闭

流式传输到远程 TCP 端口,就好像它是串行端口一样。#1125

carneeki 打开了这个问题 2018 年 9 月 18 日 · 8条评论

注释

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者

功能要求

能够像串行端口一样传输到远程 TCP 端口。

可以键入主机名或 IP 地址,而不是键入“/dev/ttyS0”作为端口,也可以键入远程端口而不是波特率。提议的 NetworkCommunicator(可能扩展 BufferedCommunicator)随后将连接到远程端口并代替串行端口处理通信。

可能的用例:

  • 流式传输到联网的 3d 打印机(或其他潜在设备)。
  • 我个人将在我的 Raspberry Pi 3 上运行一个守护进程以通过 TCP 共享串行端口(在 SSH 隧道内以确保安全,但这不是功能请求的一部分),这将与我的 Grbl 板通信(没有 Visualiser 的 Pi 上的 UGS 对我没有吸引力,而且 Pi 感觉很迟钝)。
  • 有许多可以使用的串行到网络适配器。
  • 通过网络流式传输到运行多个 UGS 实例的多台机器。

潜在问题:

没有我看到的。选择一种进行任何串行到网络转换的机制应该留给用户来选择服务器/工具并建立和维护串行连接。我不建议构建服务器来执行此操作,因为有几个不错的选择。我建议 UGS 也成为一个“telnet 客户端”,就像它已经是一个“串行客户端”一样。

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125 绕线器 添加了 建议 标签 2018 年 9 月 18 日
流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
所有者

今年早些时候完成了一些有助于支持这一点的工作。有一个 ConnectionFactory 用于初始化“Connection”实现,目前,它几乎是在寻找前缀并在两个串行库之间切换。这可以扩展以支持 tcp。

以下是代码中的一些示例:

     * Example with a serial port using the JSSC driver and baud rate 9600
     * jssc://dev/tty.usbmodem1421:9600
     *
     * Example with a serial port using the JSerialComm driver and baud rate 115200
     * jserialcomm://tty.usbmodem1421:115200

相关类:
Connection.java
ConnectionFactory.java
ConnectionDriver.java

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者作者

谢谢@winder!如果我有一些工作,我会看看我能做些什么来制作 PR。

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者作者

我有一些可以编译的东西,我在 UGS 选项面板中添加了一个条目以使用我的新 TCP 连接驱动程序,但由于某种原因,UGS 一直恢复到上次使用的驱动程序。

我已将我的更改推送到:https
://github.com/carneeki/Universal-G-Code-Sender/tree/tcpdriver 时间不早了,我明天再看一下。

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者作者
卡内基 评论了 2018 年 9 月 19 日  

在 JSON 设置文件中将驱动程序设置为“TCP”似乎可以启动驱动程序,我可以继续处理它。

"connectionDriver": "TCP"~/.ugs/UniversalGcodeSender.jsonLinux 上。

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者作者
卡内基 评论了 2018 年 9 月 19 日  

你好@winder我在远程主机和 UGS 之间有一些通信!

我刚刚通过 Pi3 在我的 Grbl 板上移动了步进器,并且在这样做的同时更新了 MPos :D

如上所述,我必须在 .json 文件中指定连接驱动程序——如果您对我在这些设置上做错了什么有任何想法,PR 可能就在附近。解决了。

我正在努力解决的另一个已知问题是,在断开连接时,TCP 接收线程中会引发异常。我可以抓住它并默默地压扁它,但它一开始就不应该被提升。解决了

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125

chillipper 有一个 JSON 服务器,允许将 grbl 连接远程处理到另一台机器。这允许安装在 CNC 钻机内的小型 SoC(例如无头树莓派)通过以太网或 wifi 将 cnc 有效地转换为网络连接设备。

请参阅:https ://github.com/chilipeppr/serial-port-json-server

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
贡献者作者

嗨蒂姆,

听起来你描述的就是我实现的 :) 可能值得链接拉取请求,它是 PR #1127。我使用socat了 ,我认为默认情况下它是 Raspbian 自带的,它是一个轻量级的通用 IO 重定向器;如果它没有与操作系统捆绑在一起,我可能会通过apt-get.

@winder您是否有机会审查 codebeat 问题?我认为它们是唯一可以阻止此 PR 被合并的东西。

流式传输到远程 TCP 端口,就好像它是串行端口一样。 #1125
所有者

@carneeki没想到你在等我!只需单击合并按钮。