注释
[吉姆]
HAL 组件 HY_GT_VFD 将名为 hy_gt_vfd.fault-info 的 HAL 引脚声明为 FLOAT 输出。但是,该寄存器 (0x5000) 是一组 BIT 值,因此应声明为 U32。然后 python 可以将其转换为十六进制值以在 GUI 中显示。
我不确定,但是 src/hal/user_comps/hy_gt_vfd.c 似乎没有将故障信息列为浮点数。如何检测/重现您描述的问题?
|
不知道为什么它没有在 C 文件中声明,我也不知道头文件在哪里——我不是 C++ 程序员。不管怎样,文档说它是一个 FLOAT,当它在 GUI (qtdragon) 中运行时,HALSHOW 将它显示为一个 FLOAT。https://linuxcnc.org/docs/stable/html/man/man1/hy_gt_vfd.1.html |
一个寄存器对应的所有引脚都创建为float类型: 更改特定 hal 引脚的类型并非易事,但也不是特别困难。 不过,这不是我可以测试的东西,因为我没有相关的 VFD。 |
谢谢安迪。经过仔细研究,我最终明白了这一点。我可以胡思乱想好几天,试图弄清楚你说的是什么。我看不到处理程序如何将 FLOAT 转换为 U32。你有没有机会为我制作一个修改过的文件作为起点?然后我可以对其进行测试并发布结果。我确实认为这应该在源代码中实现,因为目前无法读取故障代码位。 |
[吉姆]
你有没有机会为我制作一个修改过的文件作为起点?然后我可以对其进行测试并发布结果。我确实认为这应该在源代码中实现,因为目前无法读取故障代码位。
我在 pull request #2209中起草了一个补丁。也许你可以看看它是否按你想要的那样工作?– 快乐黑客 Petter Reinholdtsen
|
谢谢你,彼得。一旦弄清楚如何获取文件,我将对其进行测试。与此同时,我有一个我编写的 python 版本,它运行良好。我不知道开发人员是否有兴趣将它包含在 linuxcnc 中,但如果有,我很乐意提交它以供审查。 |
HAL 组件 HY_GT_VFD 将名为 hy_gt_vfd.fault-info 的 HAL 引脚声明为 FLOAT 输出。但是,该寄存器 (0x5000) 是一组 BIT 值,因此应声明为 U32。然后 python 可以将其转换为十六进制值以在 GUI 中显示。