00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 开发环境
  • 03. 常用属性
  • 04. 常用成员方法
  • 05. 预留
  • 06. 附录

01. 概述

QModbusClient类是发送Modbus请求的接口。

QModbusClient API是围绕一个QModbusClient对象构造的,该对象保留其发送的请求的通用配置和设置。一个QModbusClient对于整个Qt应用程序应该足够了。

创建QModbusClient对象后,应用程序可以使用它发送请求。返回的对象用于获取响应于相应请求而返回的任何数据。

QModbusClient具有异步API。当调用完成时对应的槽函数将会被调用,它采用的参数是QModbusReply对象,该对象包含PDU以及元数据(寻址等)。

注意:QModbusClient将接收到的请求排入队列。并行执行的请求数取决于协议。例如,台式机平台上的HTTP协议针对一个主机/端口组合并行发出6个请求。

 Header:  #include <QModbusClient>qmake: QT += serialbus Since: Qt 5.8 Inherits: QModbusDevice Inherited By: QModbusRtuSerialMaster and QModbusTcpClient

Modbus相关的类

02. 开发环境

Windows系统:Windows10

Qt版本:Qt5.15或者Qt6

03. 常用属性

timeout:此属性保存此客户端使用的超时值

返回此QModbusClient实例使用的超时值(以毫秒为单位)。超时由TimeoutError指示。默认值为1000毫秒。

访问函数

 int timeout() constvoid setTimeout(int newTimeout)

通知信号

 void timeoutChanged(int newTimeout)

04. 常用成员方法

QModbusClient :: QModbusClient(QObject * parent = nullptr)
构造函数  [signal] void QModbusClient::timeoutChanged(int newTimeout)
当此QModbusClient实例超时时,将发出此信号。设备的新响应超时将作为newTimeout传递。   int QModbusClient::numberOfRetries() const
返回客户端在请求失败之前将执行的重试次数。默认值设置为3。[virtual protected] bool QModbusClient::processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data)
将通过自定义Modbus客户端实现来实现。默认实现忽略响应和数据。它始终返回false表示错误。[virtual protected] bool QModbusClient::processResponse(const QModbusResponse &response, QModbusDataUnit *data)
处理Modbus服务器响应并将解码后的信息存储在data中。成功返回true;否则为假。QModbusReply *QModbusClient::sendRawRequest(const QModbusRequest &request, int serverAddress)
发送原始Modbus请求。原始请求可以包含适合Modbus PDU数据部分且具有有效功能代码的任何内容。因此,在发送之前执行的唯一检查就是有效性检查,请参见QModbusPdu :: isValid。如果没有错误发生,该函数将返回一个新的有效QModbusReply ; 否则为nullptr。Modbus网络可能有多个服务器,每个服务器都有一个唯一的serverAddress。QModbusReply *QModbusClient::sendReadRequest(const QModbusDataUnit &read, int serverAddress)
发送到读取由指向的数据的内容的请求的读取。如果没有发生错误,则返回一个新的有效QModbusReply对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress。QModbusReply *QModbusClient::sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress)
发送请求以使用Modbus功能代码QModbusPdu :: ReadWriteMultipleRegisters读取read指向的数据的内容并修改write指向的数据的内容。如果没有发生错误,则返回一个新的有效QModbusReply对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress。QModbusReply *QModbusClient::sendWriteRequest(const QModbusDataUnit &write, int serverAddress)
发送请求以修改write指向的数据内容。如果没有发生错误,则返回一个新的有效QModbusReply对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress。void QModbusClient::setNumberOfRetries(int number)
设置重试请求失败之前,客户端将执行的次数。默认值设置为3。注意:新值必须大于或等于0。更改此属性将仅影响新请求,而不影响已计划的请求。void QModbusClient::setTimeout(int newTimeout)
设置超时时间为newTimeout。最小超时为10毫秒。客户端使用超时来确定它等待服务器响应的时间。如果在要求的超时时间内未收到响应,则设置TimeoutError。这样的超时持续时间更改不会影响已经激活/正在运行的超时。

05. 预留

06. 附录

6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639

【Qt】QModbusClient类相关推荐

  1. Qt学习之路(1)------Qt常用类用法说明

    Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream>int main() {std::cout << ...

  2. Qt 串口类QSerialPort 使用笔记

    Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...

  3. 详解 QT 主要类 QWidget

    QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...

  4. Qt4_在次线程中使用Qt的类

    在次线程中使用Qt的类 当函数可以同时被不同的线程安全地调用时,就称其为"线程安全的"(thread-safe).如果在不同的线程中对某一共享数据同时调用两个线程安全的函数,那么结 ...

  5. QT QVariant类数据类型使用

    QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...

  6. 0004:Qt常用类 - QTime

    Qt常用类 - QTime 1 开发环境 在介绍内容之前,先说明一下开发环境,如下图: Qt版本:Qt5.3.2: Qt开发工具:Qt Creater 3.2.1: Qt构建工具:Desktop Qt ...

  7. Qt自定义类之自由移动的mainwindow

    先要清楚,只是拖动mainwindow你是拖不动那个界面的,但是又想要设计漂亮的无标题栏的控件时,那就需要加自己的重写函数了 一开始我被这个东西给吓到了,因为在网上看了很多人的文章,但是发现我找不到他 ...

  8. Qt 常用类——QStandardItemModel

    转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构 ...

  9. Qt添加类文件编译后,再添加宏Q_OBJECT

    问题简述 创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏Q_OBJECT,后面项目需要,又加入了宏Q_OBJECT,但是发现只是添加了一个宏Q_OBJECT,除此之外没有改动其它 ...

最新文章

  1. 【随笔】深度学习的数据增强还分在线和离线?
  2. GPUImage API 文档之GPUImagePicture类
  3. eclipse占用内存过大_MySQL 服务占用cpu 100%,如何排查问题? (MySQL面试第七弹)...
  4. 如何做好性能测试_流程篇
  5. ubuntu添加软件源
  6. MongoDB学习笔记三:查询
  7. FreeEIM 在盛大的开幕仪式结束之后
  8. html swf格式转换器,蒲公英SWF格式转换器
  9. oracle12能卸干净吗,Oracle卸载干净方法
  10. (项目笔记)opencv人脸识别
  11. 【ZeyFra个人随记02】23考研,重新出发,决不投降,真正的为自己脚踏实地认真努力拼一次吧
  12. 脑瘫患儿家庭的森森林林双包胎赴京演出圆满成功!
  13. Manjaro安装教程
  14. Win10部分引起鼠标卡顿间歇性失灵的原因
  15. 浅谈一下刚学的Java集合
  16. 超级机器人大战A(GBA)帅气攻略(超级系流程2)
  17. 前端开发 html第二课 自结束标签 注释 标签中的属性 文档声明 进制 字符编码 文档使用 VScode 实体 meta标签 语义化标签 块元素和行内元素 布局标签
  18. QTabelWidget表格的插入、删除、更新、动态滑动条以及配合QFile进行表格内容的长期存储
  19. 使用python自动画一只小猪佩奇
  20. 北大信科计算机系怎么样,写给外推北大信科却又不想直博的学弟学妹们

热门文章

  1. 我的编程学习日志(1)--进制转换
  2. 三种Ext提交数据的方法(转)
  3. Linux 下安装 Oracle9i
  4. 计算机软件工作总结,计算机软件培训总结及小结-工作总结
  5. C语言学习之利用指针输出二维数组任一行任一列元素的值
  6. 配置加密_数据库密码配置项都不加密?心也太大了!
  7. 通过mtd读写flash_敏矽微电子Cortex-M0学习笔记11-FLASH存储器
  8. 九度互动社区IT名企招聘上机考试热身赛
  9. Linux——自定义服务命令
  10. SAP HANA中的SLT简介