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

Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认

文章目录

  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • 小结

Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认

  确定仪器连接问题,常用的是监测仪器的连接状态,如下代码所示:

void onconnected(QAbstractSocket::SocketState socketStatue)
{qDebug()<<socketStatue;switch (socketStatue){case QAbstractSocket::ConnectingState:{ui->label_Text->setText("QAbstractSocket::ConnectingState");break;}case QAbstractSocket::UnconnectedState:{ui->label_Text->setText("QAbstractSocket::UnconnectedState");break;}case QAbstractSocket::ConnectedState:{ui->label_Text->setText("QAbstractSocket::ConnectedState");break;}case QAbstractSocket::HostLookupState:{ui->label_Text->setText("QAbstractSocket::HostLookupState");break;}case QAbstractSocket::BoundState:{ui->label_Text->setText("QAbstractSocket::BoundState");break;}case QAbstractSocket::ClosingState:{ui->label_Text->setText("QAbstractSocket::ClosingState");break;}case QAbstractSocket::ListeningState:{ui->label_Text->setText("QAbstractSocket::ListeningState");break;}default:{ui->label_Text->setText("Don't have normal QAbstractSocket");}}}
  • 但实际上,这种方式并不是特别好用,这里可以用 程控的通用命令 *IDN? 以及其返回信息进行确认,比如我们连接 santec 激光器。

  • 创建 socket ;

socket = new QTcpSocket(this);
  • 发送 IDN? 命令;
// 连接仪器
socket->abort();
socket->connectToHost(ip,qint16(port));// 发送资讯信息
QThread::msleep(100);
QString str = "*IDN?\r\n"
socket->write(str.toLatin1());
  • 接收返回信息,并确定返回信息中是否有关键字符。
QByteArray read;
read.clear();
while(socket->waitForReadyRead(100))//需要等待所有的数据传输完成
{read += socket->readAll();
}if(read.contains("SANTEC"))
{qDebug()<<"SANTEC 已连接。";
}
  • 另外,记录一个问题即解决办法。
19: error: 'ABCThread' does not name a type; did you mean 'ABC'?ABCThread*ABCThreadEvent;^~~~~~~~~~~~~~~~~~ABC

解决办法,不要头文件互相引用。

小结

  学习,加油,共勉。

http://www.lryc.cn/news/471882.html

相关文章:

  • 【Android】Kotlin教程(4)
  • 机票电子行程单如何批量查验?Java机票电子行程单查验接口示例-发票查验接口
  • 记录element-ui改造select显示为table,并支持多查询条件
  • Spearman、Pearson、Euclidean、Cosine、Jaccard,用来衡量不同数据之间的相似性或差异性
  • Suno 歌曲生成 API 对接说明
  • 详细且系统的Spring Boot应用开发
  • 线程支持库(C++11)
  • 【计网】深入理解NAT机制,内网穿透与内网打洞,代理服务
  • C# 创建型设计模式----工厂模式
  • java中Scanner的nextLine和next方法
  • 2024年全国山洪径流模拟与洪水危险性评价技术及典型地区洪水淹没及损失分析
  • CDC 同步数据需要的MySQL数据权限
  • Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
  • 算法自学 Lesson3 - 逻辑回归(LR)
  • 文件IO流
  • 拥塞控制与TCP子问题(粘包问题,异常情况等)
  • stm32入门教程--DMA 超详细!!!
  • 【使用Flask构建RESTful API】从零开始开发简单的Web服务!
  • 用sdcc给51单片机编译C程序
  • Java Lock LockSupport 源码
  • Elasticsearch基础操作入门
  • 跨域问题解决办法
  • 【数据结构与算法】力扣 23. 合并 K 个升序链表
  • Java Lock CountDownLatch 总结
  • vue+spreadjs开发
  • 针对初学者的PyTorch项目推荐
  • Helm Chart文件介绍
  • 1Panel 是新一代的 Linux 服务器运维管理面板
  • Qml-ShaderEffect的使用
  • 鸿蒙next之axios二次封装并携带cookie