Contact me: hankecnc@gmail.com

推推 grbl 3年前 (2023-01-29) 483次浏览
打开
Harvie 打开了这个问题 2018 年 11 月 25 日 · 21条评论
打开

支持RFC2217#60

Harvie 打开了这个问题 2018 年 11 月 25 日 · 21条评论

注释

rfc2217 是用于访问远程串行线路的 telnet 扩展。也许实现起来会很有用,因为有驱动程序(适用于大多数操作系统)将终端服务器连接为本地串口,因此它可以被任何支持本地串口的软件使用。

https://tools.ietf.org/html/rfc2217

合作者

你有这样的司机的例子吗?

作者

我今天做了更多研究,发现他们可能不是真正的司机。它们只是用户空间程序,以某种方式设法添加新的假设备。我在这里写下了我所有的观察:

https://github.com/vlachoudis/bCNC/wiki/Remote-Machine

合作者

供参考 :

合作者
luc-github 评论了 2018 年 11 月 26 日  

抱歉,我不是专家,那么 rfc2217 对于 GRBL_ESP32 与 RawTCP 有什么好处?

GRBL_ESP32 只能读写数据,所以 RawTCP 应该足够了,但我可能错了。

@bdring: GRBL_ESP32 是否可以处理控制线,如果是的话有什么好处?

所有者

什么控制线?硬件流控?

合作者

控制线是 RTS / CTS /DTR /DSR,所以我认为是硬件流控制

所有者

是的,但我认为这不是一个好主意。开发板上的 USB 串口不是那样接线的。它可能不值得额外的 I/O。RTS 和 DTR 用于引导加载程序

合作者

好的,明白了 – 谢谢

作者
哈维 评论了 2018 年 11 月 26 日  

开发板上的 USB 串口不是那样接线的。

我认为 esp32 grbl 的 telnet“串行”接口根本没有连线,因此波特率和流量控制的设置可能完全无关紧要。我做了一些研究,我认为虚拟序列号可能在当前的 grbl esp32 上开箱即用(只要它有通过 telnet 提供的 grbl 序列号)。也许这在文档中值得一提。

有人可以试试吗?我没有窗户可以试试。

在 Linux 上应该很简单:

socat pty,link=/dev/ttyS23 tcp:hostname:port

作者
哈维 评论了 2018 年 11 月 26 日  

顺便说一句,我应该如何通过该 TCP 串口硬重置 ESP32 控制器?目前在 bCNC 中,我们通过脉冲 DTR 引脚重置 arduino。为了向 bCNC 添加 telnet 支持,我需要一些替代方法。

所有者
培养 评论了 2018 年 11 月 26 日  

用于通过引导加载程序对 ESP32 开发板进行编程的 esptool.py 程序使用 DTR 和 RTS。有关如何执行此操作的示意图,请参阅此部分。您只需要将EN拉低即可。

还有一个 [ESPxxx] 命令可以做到这一点。(WebUI 分支)

[ESP444]RESTART pwd=<管理员/密码>

作者
哈维 评论了 2018 年 11 月 26 日  

看到这块原理图…

当您使用 usb/serial 连接到 ESP32 时,这适用。
您需要区分串行和远程登录。通过 Wifi 运行 g 代码时没有串行线。

所有者

[ESP444]RESTART pwd=<管理员/密码>

所有者
培养 评论了 2018 年 11 月 26 日  

重置的目的是什么?您只需要重置 Grbl 或 ESP32 吗?如果这样做,您将失去 Telnet 连接。

您想加入我们的Slack 频道吗?

作者

谈论 arduino:在 bCNC 中,我们有两个按钮“软重置”(ctrl+x) 和“硬重置”(DTR pulse)。
当某些东西被搞砸并且我进入“警报”状态时,它需要软重置。但有时东西冻结得更多,我需要进行硬重置。

我想 ESP32 也会有类似的问题。我计划相对较快地实现对 bCNC 的串行 over TCP 支持,但我不知道在这种情况下如何处理硬重置按钮。事实上,我什至不知道 Ctrl+x 是否会导致软重置。我需要尝试结合使用 ESP32 GRBL telnet 和 bCNC。

另一件让我担心的事情是登录该 telnet 服务。这并没有真正用于普通串行连接,所以我需要处理它。我想知道是否有一些用于 telnet 的标准登录协议,所以这不需要我们为 ESP32 GRBL 和 eg 编写单独的代码。ESP32 smoothie 或 tiny-g(如果他们决定实施自己的 telnet)。因为 bCNC 支持的控制器不仅仅是 GRBL。也许我们应该联系其他运动控制器(tiny-g、smoothie、marlin 等)的作者,以就控制器之间兼容的一些连接和授权机制达成一致。也许支持一些可以为我们处理身份验证内容的基本 SSH 连接甚至是有意义的。据我所知,ESP32 上运行着 SSH 实现……

您想加入我们的 Slack 频道吗?

我没有松弛帐户。事实上,我什至不知道什么是 slack :-) 但我当然希望就 bCNC 和 GRBL-ESP32 合作与您的团队取得联系。在开始支持 telnet 之前,我还有一些主要任务需要在 bCNC 中解决。我刚刚发现 GRBL-ESP32 存在,所以我想开始讨论。将来肯定有一些工作要做。

合作者
luc-github 评论了 2018 年 11 月 26 日  

我在 [ESP444]RESTART 中看到的问题 – 它会停止并重新启动 wifi,因此 telnet 连接将中止,这意味着您需要在重新启动完成后重新连接

所有者

Slack 专为团队/团队实时工作而设计。它与 GitHub 有一些集成。如果需要,请尝试链接。它非常容易使用。链接明天失效

RFC854 中定义的 telnet 协议不包括身份验证。如果需要,必须在某种对话中建立连接后实施身份验证。Telnet 是一个非常基本的协议,可用于连接到其他更高级别的协议,如 smtp,也可用于连接到“简单”套接字流 – 大多数(如果不是全部)支持 telnet 的终端程序都允许这样做。

我已经为我的两个 grbl 驱动程序实现了以太网/wifi 流式传输,基本上它只是将串行流重定向到 TCP/IP 流。我可以看到硬重置的必要性,因为有时 grbl 不会以有意义的方式响应软重置,这可以通过为此目的分配控制字符或转义序列来实现。我认为大多数处理器都可以通过编程方式进行硬重置……

IMO 将 telnet 协议带入讨论可能有点误导,它只是一个副作用,它可用于连接到传输可理解数据(如 grbl 数据流)的简单套接字流并与之交互。这样做的一个原因可能是因为很容易劫持用于流式传输的 telnet 端口并连接到用于测试的终端……

讨论可以(应该?)然后归结为哪些 grbl 协议扩展可以很好地支持(更高级的)通过 TCP/IP 的流式传输。

作者

抱歉没有回复,最近比较忙。不过我有一些好消息。

我刚刚发现 bCNC 中使用的串行库已经具有支持本机 IP 的抽象层(RFC2217 和纯 TCP)。我在这里写了一些细节:vlachoudis/bCNC#1072

所以这是一个很好的起点。您可以尝试将 bCNC 连接到 ESP32。

作者

我已经为联网的 GRBL 提出了简单的 auth 协议,我可以将这种支持添加到 bCNC。所以想征求一下大家的意见:

vlachoudis/bCNC#1072(评论)

Linux 上的 Socat 能够将虚拟 tty (/dev/ttyxxxxx) 绑定到远程系统上的端口,

还有另一个项目声称无法做到这一点

https://gitlab.com/lars-thrane-as/ttynvt

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

还没有

发展

没有分支机构或拉取请求

5人参加

支持RFC2217 #60

喜欢 (0)