Contact me: hankecnc@gmail.com

在作业完成和警报时执行 #375

推推 grbl 3年前 (2023-02-01) 322次浏览
打开
DasWookie 打开了这个问题 2016 年 7 月 16 日 · 7条评论
打开

在作业完成和警报时执行#375

DasWookie 打开了这个问题 2016 年 7 月 16 日 · 7条评论

注释

在作业完成和警报时执行 #375

这是一个能够在事件上执行命令的功能请求。

如果有一种方法可以在作业完成和警报时执行系统命令(或脚本),那就太好了。如果可以选择在成功、失败、警报、进给保持、门、重置、运行等情况下执行不同的命令,那就更好了。这样,当一项工作完成或需要注意时,系统可以通知一个人(例如通过短信和/或电子邮件)工作已经完成,它正在运行和/或发出警报或其他任何东西,并且该单元需要一些关注。

我的 xCarve 大部分工作都是在熄灯配置下运行的,但它正在加工铝,因此运行时间很长。我试着记住设置一个计时器来提醒自己去检查它,但我总是忘记,并最终让机器闲置很长时间。如果我有办法在事件发生时通过系统命令或脚本以某种方式向自己发送通知,那么我就可以更轻松地管理生产。

在作业完成和警报时执行 #375
贡献者

我前段时间提出了类似的东西,然后引入了 gcode 中的 python 脚本。它仍然缺少仅在机器上运行时(而不是在编辑时)运行代码的能力。
无论如何,事件驱动系统将是一个很好的补充。

在作业完成和警报时执行 #375
作者

Python 脚本 INSIDE gcode 远远超出了我的期望。大多数情况下只是能够“在事件中”触发 shell 脚本或 bat 文件。我熄灯了,所以某种形式的警报功能可以让我轻松地与警报脚本集成,该脚本可以呼叫我……或控制灯塔……或给我发送电子邮件……或或或……我试图查看代码,看看我可以在哪里集成这样的东西,但事实证明,熟悉代码库比我当时可用的时间要多。

在作业完成和警报时执行 #375
所有者

我在 ini 文件中添加了一个新的 [Events] 部分。目前它包含两种事件类型
onstart =
onstop =
,它们是在运行开始之前和结束之后执行的系统命令,
例如
onstart = date
onstop = python /home/user/alarm.py

此外,我还添加了长期存在的请求@effer让一个变量在运行期间为真,在编辑期间被忽略。它被调用running,如果你添加 python 命令,比如
%if running: print "This printout will be executed during run"
%print "This is executed any time the gcode is parsed"

你能检查一下它们是否正常工作吗?如果是,请在 wiki 上记录它们

在作业完成和警报时执行 #375
贡献者

完成了一些早期测试,这是 IMO 的一个很好的补充。
如果评估的行是错误的,就会出现一些问题。它引发了奇怪的行为。我制作了一个 PR #400 试图修复它。

在作业完成和警报时执行 #375
作者

一直在试验这个,我很难让 os.system 调用工作。我可以从命令行运行我的测试警报脚本,并从测试程序中调用它们,但由于某种原因,它在 bCNC 中不起作用。

在我的 bCNC.ini 中,我设置了以下值:

pi@bCNC:/inbox/Projects/CNC/Software/bCNC/bCNC $ grep onst bCNC.ini
onstart = ./alarm.py
onstop = ./alarm.py

我尝试过类似的变体:
python alart.py
python ./alarm.py
/usr/local/bin/python /home/user/alarm.py
等等……
都无济于事。测试脚本永远不会通过启动或停止时的 os.system 调用执行。

我用来排除故障的测试脚本是:

#!/usr/bin/python
import os
onStart = “./alarm.py”
if onStart:
try:
retval = os.system(onStart)
except:
pass
print retval`

所以我不知道这里出了什么问题。我的 python 版本是 2.7.9。

我的测试 alarm.py 脚本附在这里:
alarm.py.txt

在作业完成和警报时执行 #375
贡献者

@DasWookie也许您正在编辑错误的设置文件?
不是 bCNC 目录中的文件,而是用户目录中名为.bCNC的文件

在作业完成和警报时执行 #375
作者

以为我早些时候回复了,但在这里看不到。是的,这就是我编辑 bCNC.ini 的问题是程序目录,而不是我的用户目录级别的 .bCNC 文件。该文件的相对路径也有点令人困惑……./Events/alarm.py 是程序目录的本地文件,而不是用户目录,我也花了一点时间才弄明白……但我得到了排序。

“运行”变量让我有点困惑……我是否理解它在整个调用中保持范围,以便我可以在事件脚本中使用它?或者这只是在 bCNC 本身的范围内?抱歉,不是编程新手,但我是 python 的新手……但我看不出它如何在 os.system 调用中共享范围。

我也喜欢运行报告的结尾。这就是我想要的信息!

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

还没有

发展

没有分支机构或拉取请求

3人参加
在作业完成和警报时执行 #375在作业完成和警报时执行 #375在作业完成和警报时执行 #375

喜欢 (0)