当前位置: 首页 > news >正文

2 如何写一份详细的网站开发方案人像摄影作品

2 如何写一份详细的网站开发方案,人像摄影作品,宁夏正丰建设集团公司联网站,国外psd网页模板网站背景 在编写ModbusTCP时候,连接、寄存器读写属于通用的功能,为了便于后续直接复用,选择封装到一个类。本博文在封装展示该类过程中,会提及到编写该类过程中,出现的连接未成功的问题,以及该问题的解决方式。…

背景

在编写ModbusTCP时候,连接、寄存器读写属于通用的功能,为了便于后续直接复用,选择封装到一个类。本博文在封装展示该类过程中,会提及到编写该类过程中,出现的连接未成功的问题,以及该问题的解决方式。

问题

首先,需要明确设备连接状态有4类:

enum State {UnconnectedState,ConnectingState,ConnectedState,ClosingState};

其次,需要明确client->connectDevice()返回true并不是表示连接成功了,而只是连接请求发送成功,即状态切换到了ConnectingState。由于连接成功是ConnectedState,需要做client->state() == QModbusDevice::ConnectedState判断,只有true了,才是真正意义上的连接成功。

实现

在解决该问题前,需要介绍一个处理事件循环的类QEventLoop,主要作用于在同步代码中实现异步操作的等待,允许在程序中创建一个局部事件循环,用于阻塞当前线程并等待特定事件发生,直到事件循环被退出(quit()exit() 被调用)才结束。它的生命周期:事件循环在exec()调用后启动,在 quit() 后停止,通常配合信号槽机制使用

针对以上提及的问题,加入超时机制,等待连接完成:

bool modbusClient::connect(QString &msg)
{if (!client->connectDevice()) {qDebug() << "连接请求发送失败:" << client->errorString();msg="连接请求发送失败";return false;}// 等待连接完成(添加超时机制)QEventLoop loop;QTimer timer;timer.setSingleShot(true);//单次触发模式。定时器超时后会自动停止,不会重复触发timer.setInterval(2500);// 监听连接状态变化QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);QObject::connect(client, &QModbusClient::stateChanged, [&](QModbusDevice::State state) {// qDebug() << "连接状态变化:" << state;if (state == QModbusDevice::ConnectedState) {loop.quit();  // 连接成功,退出事件循环}});timer.start();loop.exec();if (client->state() != QModbusDevice::ConnectedState) {msg = "连接超时";return false;}return true;
}

解决了以上的问题后,就可以进行modbusClient类封装了,已上传资源,注意使用时候要pro中引入QT += serialbus。调用方式,可以采用值调用方式modbusClient md(it.key(),it.value());md.work1(msg);,也可以采用指针的调用方式modbusClient *md1 =new modbusClient(it.key(),it.value()); md1->work1(msg);

http://www.dtcms.com/a/498222.html

相关文章:

  • 企业网站设计制作收费网页设计精选网站
  • 商务网站策划方案wordpress 积分购物
  • 蓝色风格网站宁波网页制作
  • 一些做淘宝优惠券的网站企业网站模板 下载 论坛
  • 成都网站建设企业微信公众号推广赚钱
  • aspnet网站开发视频南京江宁网站制作公司
  • 网站建设方案对比分析报告建卖手机网站
  • dw手机网站建设wordpress个人网站备案管理
  • 网站开发中间商怎么做免费微信公众号怎么开通
  • 小米网站制作浅谈高校门户网站建设的规范标准
  • 牙科网站建设网站被人抄袭怎么办
  • 网站制作最流行软件顶呱呱代理建设网站
  • 电脑建立网站简历生成器在线制作
  • 怎么用源码搭建网站湖南省郴州市嘉禾县邮政编码
  • 如何做网站的教程网页设计作业分析文档
  • phpmysql网站设计wordpress 模板 html5
  • ui设计师与网站编辑有什么关系互联网域名是什么意思
  • 镇江市建设工程网站如何安装wordpress的备份
  • 云服务器做网站深圳设计学院
  • 搭建网站找什么公司室内设计师工作内容
  • 下载了网站建设asp借用备案网站跳转做淘宝客
  • 建设工程行业招工信息网站制造业中小微企业
  • wordpress自动上传至cdn网站关键词搜索排名优化
  • 网站想举报怎么做怒江商城网站建设
  • 学院网站建设及维护实施办法杭州市住房和城乡建设部网站
  • 上海网站分站建设南通网站排名公司
  • 网站开发怎样搭建网上书城网站开发环境
  • 自学网站建设哪个网站好微信公众号怎么做编辑
  • 清远市住房与城乡建设局的网站查关键词优化seo公司
  • 网新企业网站管理系统软件开发专业难吗