远程登录客户端 #189

推推 grbl 3年前 (2023-02-05) 282次浏览
关闭
JensInternal 打开了这个问题 2021 年 12 月 21 日 · 12条评论
关闭

远程登录客户端#189

JensInternal 打开了这个问题 2021 年 12 月 21 日 · 12条评论

评论

远程登录客户端 #189
延斯内部 评论了 2021 年 12 月 21 日  

我的新项目是通过 telnet 将另一个 ESP32 与 FluidNC 连接起来,并将操纵杆运动传递给点动命令。
它基本上可以工作,但是到目前为止我还无法理解一个问题,请寻求帮助。

  • VSC用于Telnet客户端的编程(Arduino框架)
  • 它连接到我的 Windows PC 并且程序已上传
  • 我切换到串行终端,客户端正在启动
  • 客户端获取 WiFi 连接,telnet 客户端连接

目前初始行看起来像这样

WiFi.mode(WIFI_STA);
WiFi.begin(WLAN_SSID, WLAN_PASSWORD);
serial_printf(Serial, "[Status] Connet with WIFI %s ", WLAN_SSID);
  
while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(1000);
  }

if (WiFi.isConnected())
  {
    Serial.print(" connected. Local IP=");
    Serial.println(WiFi.localIP());
    serial_printf(Serial, "[Status] Connect with Telnet IP=%s, Port=%d ... ", WLAN_HOST, WLAN_TELNETPORT);

    if (!client.connect(WLAN_HOST, WLAN_TELNETPORT))
      Serial.print("not ");

      Serial.println("connected");
  }

然后:Grbl 响应或不响应典型的欢迎消息
Grbl 3.2 [FluidNC v3.2.7 (wifi) '$' for help]

目前,我每次都需要通过网络界面重置 FluidNC,有时需要重置几次。对我来说很奇怪。
对我来说有趣的是,FluidNC 重置,而另一个 ESP32 仍在运行,仍然保持 telnet 会话。但是没有欢迎信息。

针对无响应的情况,用 Putty 测试了它。Telnet 会话窗口弹出并在不久后消失。

在这两种情况下,据报告 [ESP130] 都处于开启状态。

上次上传是否可能“占用”了单个 telnet 服务器会话?
实现稳定和回复的 telnet 服务器的更好方法是什么,我想我的编程需要改进。

更具体地说:除了硬重置,我怎样才能可靠地与 FluidNC 建立免费的 telnet 会话甚至测试它?

远程登录客户端 #189

CTRL-X 或按 WebUI 重置按钮没有提供可靠的结果 –> telnet 会话的重置。
除了硬重置,还有其他方法吗?

远程登录客户端 #189

你可以尝试发送 $bye

请尝试更清楚地提出您的问题。最后一个令人困惑。

远程登录客户端 #189

我一直在使用 Microsoft Windows telnet 客户端测试 Telnet,它似乎运行良好。我将使用 PuTTY 进行测试。

远程登录客户端 #189

PuTTY 也可以。您必须使用 Raw 而不是 Telnet,因为 FluidNC“telnet”不执行 Telnet 选项协商;它实际上只是一个原始的 TCP 套接字。

远程登录客户端 #189

远程登录客户端 #189

如果另一个 telnet 客户端已经连接,则无法连接另一个。您必须先关闭前一个。

远程登录客户端 #189

谢谢你,米奇。
这可能表明 client.connected()==true 从现有的 telnet 会话中退出,尽管正在使用 telnet 的派生?

硬重置我的其他 ESP32 不会关闭 FluidNC 上的连接

远程登录客户端 #189

您可能需要研究 TCP/IP 的工作原理。它旨在经受互联网数据包传输的临时延迟,可能涉及许多秒或几分钟的中断。只有当客户端发出适当的关闭序列时,连接才会可靠地关闭。ESP32 客户端的硬重置不会发送连接关闭,它只是停止通话。

这是一个棘手的问题。你最好通过 websocket 连接。Websockets 有周期性的保持活动消息,可用于检测无响应的连接。

远程登录客户端 #189

好点子。
我只是在寻找一个测试设置,虽然点击一侧的重置按钮并在另一侧重置我的吊坠就可以了。
我会试试 websockets :-)