Qt SerialBus 的变更

Qt 6 通过有意识地努力使框架更加高效和易于使用。我们试图在每个版本中保持所有公共 API 的二进制和源代码兼容性。但是,在努力使 Qt 成为更好的框架的过程中,一些变更势在必行。在本主题中,我们总结了 Qt SerialBus 模块的这些变更,并提供处理这些变更的指南。

变更概述

Qt SerialBus 模块通常与 Qt 5 版本源代码兼容,使用该库的用户应能够在项目中进行很少或没有任何更改的情况下继续使用。

构建系统

类似于 Qt 6 的一般情况,Qt SerialBus 模块除了 qmake 之外还支持 CMake。

API 变更

Qt CAN 总线

移除 QCanBusFactoryV2

在 Qt 6 中,QCanBusFactoryV2 已被移除,不再是公共 API 的一部分。取而代之的是,QCanBusFactory 添加了额外的 QCanBusFactory::availableDevices 方法,该方法需要由 QCanBusFactory 的子类实现。

QCanBusDevice 变更

QCanBusDevice 发生了以下变更

  • setConfigurationParameter() 和 configurationParameter() 现在使用 ConfigurationKey 而不是 int 的类型。
  • resetController()、hasBusStatus() 和 busStatus() 函数现在是虚拟函数。在 Qt 5 中,由于二进制兼容性,它们是内部回调。
  • 使用私有 API 函数 QCanBusDevice::createDeviceInfo() 的自定义插件需要进行小的调整,因为这些函数现在以 plugin 命名为第一个参数,并对参数列表进行了轻微调整。

QCanBusFrame 变更

QCanBusFrame 现在使用独特的类型 FrameId,它是 quint32 的 typedef,因此现有代码仍然有效。无论如何,建议在升级时使用 FrameId

Qt Modbus

QModbusRtuSerialMaster 和 QModbusRtuSerialSlave 重命名

遵循 Modbus 组织的建议,类 QModbusRtuSerialMaster 已重命名为 QModbusRtuSerialClient,类 QModbusRtuSerialSlave 已重命名为 QModbusRtuSerialServer。建议在新或移植的代码中使用新的类名称以遵守 Modbus 命名方案。

© 2024 Qt公司有限公司。本文件中包含的文档贡献作者拥有其版权。提供的文档是根据由自由软件基金会发布的GNU自由文档许可证1.3版的条款进行许可的。Qt及其相关标志是Qt公司在芬兰和/或世界其他国家的商标。商标属于各自的所有者。