qt串口阻塞_QT串口编程 - 阻塞从机示例(Blocking Slave)

QT串口编程示例——Blocking Slave展示了如何在非GUI线程中使用QSerialPort同步API进行串口通信。该示例在非GUI线程中使用阻塞方法,确保用户界面保持响应。SlaveThread是QThread子类,用于接收主应用程序的请求并发送响应。在接收到请求时,它会发出request()信号;发生错误或超时时,会发出error()或timeout()信号。
摘要由CSDN通过智能技术生成

QT串口编程 - 阻塞从机示例(Blocking Slave)

Blocking Slave演示了如何在非GUI线程中使用QSerialPort的同步API为串行接口创建应用程序。

e2bcbcd443d4

QSerialPort支持两种通用的编程方法:

异步(非阻塞)方法。当控件返回到Qt的事件循环时,将调度并执行操作。操作完成后,QSerialPort会发出信号。例如,QSerialPort :: write()立即返回。当数据发送到串行端口时,QSerialPort发出bytesWritten()。

同步(阻塞)方法。在非GUI和多线程应用程序中,可以调用waitFor ...()函数(即QSerialPort :: waitForReadyRead())以挂起调用线程,直到操作完成为止。

在此示例中,演示了同步方法。终端示例说明了异步方法。

本示例的目的是演示一种模式,您可以使用该模式来简化串行编程代码,而又不会失去用户界面的响应能力。使用Qt的阻塞式串行编程API通常会导致代码更简单,但是由于其阻塞行为,它只能在非GUI线程中使用,以防止用户界面冻结。但是与许多人的看法相反,将线程与QThread一起使用并不一定会给应用程序增加难以管理的复杂性。

该应用程序是一个从站,演示了与主应用程序Blocking Master Example配对的工作。

从应用程序将通过串行端口从主应用程序接收请求,并发送响应。

我们将从处理串行编程代码的SlaveThread类开始。

class SlaveThread : public QThread

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值