关闭 3 个任务中的第 1 个 lorenzncode 打开了这个问题 2019 年 7 月 4 日 · 3条评论 关闭 3 个任务中的第 1 个 hal.get_value() 不应要求创建组件#621 lorenzncode 打开了这个问题 2019 年 7 月 4 日 · 3条评论 注释 贡献者 劳伦代码 评论了 2019 年 7 月 4 日 以下是我重现该问题所遵循的步骤: 在独立的 Python 脚本中调用 hal.get_value() 而不创建组件 我正在运行用于探测的独立 Python 脚本 – 从终端手动调用。我对 hal.get_value() 的理解是它可用于获取任何引脚、参数或信号的值,而不仅仅是那些来自用户空间组件的值。事实上,如果我首先创建一个虚拟组件,它确实有效。请求是 hal.get_value() 不应要求创建组件。 h = hal.component(“dummy”) h.ready() … if hal.get_value(‘motion.probe-input’): print(‘Probe is tripped – is the probe plugged in?’) 返回 -1 这是我期望发生的事情: 我希望 hal.get_value() 返回引脚的值。 这是发生了什么: 返回错误信息: RuntimeError:在创建组件之前无法调用 有关我的硬件和软件的信息: 我正在使用这个 Linux 发行版和版本(通常显示为lsb_release -a): Linux Mint 19.1 Tessa 我正在使用这个内核版本(显示为uname -a): Linux 平台 4.19.1- rt3 使用 Tcl_SetResult 和 Tcl_GetStringResult #1 SMP PREEMPT RT Sat Mar 2 19:53:32 EST 2019 我在跑步 … 来自 linuxcnc.org 的二进制版本(包括 buildbot.linuxcnc.org) 我自己构建的二进制文件 来自 linuxcnc.org 之外的其他来源的二进制版本 我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,scripts/get-version-from-git): Branch 2.8,我认为最后构建于 6 月 25 日 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等): AXIS 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡): Mesa 5i25 合作者 c-莫利 评论了 2019 年 7 月 4 日 要访问 HAL,需要有一个共享内存指针。这是在制作组件时创建的。这就是为什么需要一个组件。我认为没有任何解决办法。唯一可以做的就是隐藏创建虚拟组件的细节,这对我来说似乎不是一个好的解决方案。 贡献者作者 劳伦代码 评论了 2019 年 7 月 4 日 感谢您确认该组件是必需的。我将继续创建一个虚拟组件,以便在我的脚本中使用 hal.get_value()。 合作者 c-莫利 评论了 2019 年 7 月 4 日 我不认为这适用于你,但任何其他阅读: 如果你有对任何其他组件的引用,例如,如果你正在使用处理程序文件扩展 gladevcp,你可以使用该组件而不是构建一个虚拟组件。 c-morley已完成 关闭 2019 年 7 月 4 日 喜欢 (0) Scarakins 的限制和错误。 #620 Gmoccapy 中的 hal_glib.py 错误 #622 v1.3.8-EDGE 重启后键盘快捷键消失 #427 关闭 无法在 gsender 1.2.0 中打开 .gcode 文件 #367 RaspberryPi 运行 gsender 时出现问题 #89 向 fluidnc 发送 $$ 会导致 gsender 崩溃 #473 v1.3.8-EDGE 重启后键盘快捷键消失 #427 关闭无法在 gsender 1.2.0 中打开 .gcode 文件 #367RaspberryPi 运行 gsender 时出现问题 #89向 fluidnc 发送 $$ 会导致 gsender 崩溃 #473功能请求:抑制发送到机器的 gcode 中的 gcode 注释。 #444 关闭通过网络连接进行连接 #171操纵杆运动的剩余问题 #204 关闭新版本认为我的机器一直处于锁定状态 #474 关闭
以下是我重现该问题所遵循的步骤:
我正在运行用于探测的独立 Python 脚本 – 从终端手动调用。我对 hal.get_value() 的理解是它可用于获取任何引脚、参数或信号的值,而不仅仅是那些来自用户空间组件的值。事实上,如果我首先创建一个虚拟组件,它确实有效。请求是 hal.get_value() 不应要求创建组件。
h = hal.component(“dummy”)
h.ready()
…
if hal.get_value(‘motion.probe-input’):
print(‘Probe is tripped – is the probe plugged in?’)
返回 -1
这是我期望发生的事情:
我希望 hal.get_value() 返回引脚的值。
这是发生了什么:
返回错误信息:
RuntimeError:在创建组件之前无法调用
有关我的硬件和软件的信息:
lsb_release -a
):Linux Mint 19.1 Tessa
uname -a
):Linux 平台 4.19.1- rt3 使用 Tcl_SetResult 和 Tcl_GetStringResult #1 SMP PREEMPT RT Sat Mar 2 19:53:32 EST 2019
scripts/get-version-from-git
):Branch 2.8,我认为最后构建于 6 月 25 日
AXIS
Mesa 5i25