开源改变世界!!

通过 web-Pendant UI 进行软重置 #1173

推推 grbl 1年前 (2023-01-27) 159次浏览
关闭
aleslukek 打开了这个问题 2019 年 1 月 15 日 · 8条评论
关闭

通过 web-Pendant UI 进行软重置#1173

aleslukek 打开了这个问题 2019 年 1 月 15 日 · 8条评论

注释

通过 web-Pendant UI 进行软重置 #1173

功能要求

我正在研究一个硬件外部控制,它通过 Pendant web ui 工作。这有点像黑客。当直接通过 GPIO 将按钮连接到我的树莓派作为键盘时,我遇到了很多麻烦。
所以我决定制作一个 ESP8266 模块,它连接了按钮并通过 Pendant UI 与 ugs 接口。它还有一个 LCD 来显示数据。

我得到了大部分工作。现在我可以通过按钮组合获得更多命令。归位、重置零、重置 z 零、快速慢跑、慢跑、探测、清除警报、切换到激光模式、仅显示激光点(低功率)、开始工作、暂停、恢复、取消…只有我不能do 是在触发硬限制后进行软重置。如果 grbl 空闲并且我发送 $C 两次,则软重置有效。但不是在触发限制时。我在考虑与 arduino 重置按钮的物理连接。但我会冒这样的风险,如果 ESP 出于某种原因重置(ESP 有时会这样做),它会向 arduino 发送低信号,从而重置它。如果这发生在 arduino 工作时,那可能很糟糕。所以这是不可能的。如果有软重置的获取请求,我可以硬编码,如果 cnc 正在工作,将无法发送重置请求。

我试了两次 ^X, ctrl-x, 0x18 , $C …. 没有任何效果。

公共 静态 最终 字节 GRBL_RESET_COMMAND = 0x18 ;

 

出于某种原因,UGS 似乎阻止了这些命令,或者没有将它们正确地转换为 arduino。
我将 UGS 与 GET 请求连接起来。我必须启用 pendant ui(启动时自动启用会很棒!)。
cncip:8080/sendGcode/?gCode=xxx
所以xxx是我要发送的gcode。一些命令在文本中,如“RETURN_TO_ZERO”、“CANCEL_FILE”、“SEND_FILE”。

公共 SendGcodeHandler 扩展 AbstractHandler {
@覆盖
public void handle ( String target , Request baseRequest , HttpServletRequest request , HttpServletResponse response ) throws IOException , ServletException {
基础请求设置处理);
字符串 gCode = baseRequestgetParameter ( “gCode” );
尝试{
如果isManualControlEnabled()){
切换gCode){
案例 “$H”
主窗口performHomingCycle ();
打破;
案例 “$X”
主窗口killAlarmLock ();
打破;
案例 “$C”
主窗口toggleCheckMode ();
打破;
案例 “RESET_ZERO”
主窗口重置坐标归零();
打破;
案例 “RETURN_TO_ZERO”
主窗口归零();
打破;
case “SEND_FILE”:
mainWindow.send();
break;
case “PAUSE_RESUME_FILE”:
case “CANCEL_FILE”:
break;
default:
try {
MacroHelper.executeCustomGcode(gCode, mainWindow);
} catch (Exception ex) {
System.err.println(“pendant failed executing gCode [“ + gCode + “]”);
ex.printStackTrace();
}
break;
}
} else {
switch (gCode) {
case “PAUSE_RESUME_FILE”:
mainWindow.pauseResume();
break;
case “CANCEL_FILE”:
mainWindow.cancel();
break;
default:
break;
}
}
} catch (Exception e) {
记录器log ( Level . WARNING , “Exception in pendant.” , e );
记录器警告本地化。getString (“SendGcodeHandler” );
}
回应getWriter ()。打印getSystemStateJson());
}
}

 

如果还有“SOFT_RESET”就好了。试了很多,也打通了UGS源码,但是没有隐藏软复位get请求。

tldr:获取请求 – 通过挂件 web ui 进行软重置的按钮以及挂件 web ui 在启动时自动启动的能力。

通过 web-Pendant UI 进行软重置 #1173

我不是 Java 程序员,但我虽然这可能会有一点帮助:
寻找
issueSoftReset()
来添加这个
案例“东西”:
mainWindow.issueSoftReset();

SOFT_RESET 变量已用于机器状态读取。

通过 web-Pendant UI 进行软重置 #1173
作者
阿莱斯卢凯克 评论了 2019 年 1 月 17 日  

正在研究它。希望这能奏效,但对我来说事情通常不会这么顺利。然而,我对编译 java 并不十分熟悉。将阅读并尝试。

你认为这只是 issueSoftReset() 还是我必须输入 mainWindow.issueSoftReset(); ?

关于自动启用挂件的菜单选项,它确实超出了我的 Java 技能。

通过 web-Pendant UI 进行软重置 #1173

我不会假装能够回答你的问题,但根据我的经验(不是在 java 上)这是一个过程调用,因为其他调用正在使用 mainWindow 我建议使用它并且我不知道如何编译 java 源代码。
祝你好运。

PS:我个人使用蓝牙来控制我的机器,PC 上的 UGS 和手机上的 GRBL Controler 应用程序,一次只能将其中一个连接到机器,所以我用手机准备机器,然后断开连接并使用 UGS 连接 PC,全部通过蓝牙(HC-05 设备连接到 arduino 的 Rx/Tx)。

通过 web-Pendant UI 进行软重置 #1173

我正在开发一个 esp8266 模块,它有一堆按钮和一个连接到它的 LDC 以通过 UGS 进行控制。代码大部分已经完成,还得再测试一下,一旦完成就会把它放在 GitHub 上。到目前为止,它当然可以很好地解决一些小问题。

软重置是我要实现的最后一个功能。

通过 web-Pendant UI 进行软重置 #1173

好的,听起来不错,我会等待它,我有 ESP32,但暂时不使用它。
干得好。

通过 web-Pendant UI 进行软重置 #1173

说实话,还没有抽出时间用 java 重新编译 ugs 并通过 pendant ui 启用软重置。然而,我已经基本完成了我的 UGS Wifi 硬件挂件代码和硬件,必须说它工作得很好!
此处提供代码和原理图https://github.com/aleslukek/UGS-Wifi-Pendant
这仅适用于 UGS,我仅在 grbl 1.1f 上对其进行了测试。

将尝试再次回到这个软重置问题,希望很快!

通过 web-Pendant UI 进行软重置 #1173
合作者

使用新 API 的新版本已经发布,现在有一个用于 softReset 的方法。