Contact me: hankecnc@gmail.com

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071

推推 grbl 3年前 (2023-01-30) 188次浏览
关闭
damiodj 打开了这个问题 2021 年 2 月 8 日 · 7条评论
关闭

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容#1071

damiodj 打开了这个问题 2021 年 2 月 8 日 · 7条评论

注释

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
贡献者

在尝试使用用户组件 wj200_vfd 并设置串行端口奇偶校验时,该组件提供了一个“奇偶校验”参数。
Y 或 N 的代码过滤器:

wj200_vfd.c 的第 434 行:
if(parity != ‘Y’ && parity != ‘N’)

而新的 libmodbus 期望 N、E、O(No、Even、Odd – https://libmodbus.org/docs/v3.0.8/modbus_new_rtu.html

将第 434 行更改为:
if(parity != ‘N’ && parity != ‘E’ && parity!=’O’)

解决问题

还需要更改第 437 行中的消息以反映这一点。

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
合作者

哪个版本的 LibModbus?
参考http://wiki.linuxcnc.org/cgi-bin/wiki.pl?MinimumSoftwareVersions
哪些LinuxCNC版本受到影响?

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
贡献者作者

在干净的 Debian 10 上测试,LinuxCNC 2.8.1 和 2.9-pre 都会受到影响。
libmodbus 当前版本 3.0.8 和 3.1.6 都需要 N、O 或 E。
查看 libmodbus 存储库,我找不到任何接受“Y”作为奇偶校验的旧版本,更改日志中唯一提到的奇偶校验来自 2010 年。

我认为错误一直存在,也许大多数安装都使用 parity == ‘N’,请记住返回的错误设置 parity == ‘Y’ 是通用的,我不清楚之前出了什么问题查看 libmodbus 代码

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
合作者

好的,这似乎很清楚。
您想创建拉取请求吗?(如果没有,那么我们可以希望其他人这样做)

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
贡献者作者

我会。
谢谢

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
合作者

如果它只是对一个文件的一个更改,那么您可以直接在此网站上进行 PR。每个文件在完整代码视图中都有一个编辑图标,然后可以允许进行 PR。
(对于任何更复杂的事情,尤其是涉及多个文件,那么我认为你需要制作一个本地 Git 存储库并以正常方式工作)

WJ200_vfd 与最新 libmodbus 的奇偶校验参数不兼容 #1071
贡献者

由于拉取请求已合并,因此可以关闭此问题。