函数名 | 参数 |
Open |
打开
|
type | 通信协议类型(SerialPort、TCP、UDP、USB等) |
arg | 通信协议类型的相关参数 |
Close |
关闭
|
handle
|
句柄
|
Write |
写
|
handle |
句柄 |
data
|
待写入数据
|
maxSize
| 待写入数量 |
InstallCallBack |
读函数注册
|
handle |
句柄 |
callback
|
数据读回调函数指针
|
UnInit |
事件循环停止
|
QObject的connect函数有几种连接方式,
a) DirectConnection,信号发送后槽函数立即执行,由sender的所在线程执行,同步;
b) QueuedConnection,信号发送后返回,相关槽函数由receiver所在的线程在返回到事件循环后执行,异步;
c) 默认使用的是Qt::AutoConnection,当sender和receiver在同一个线程内时,采用DirectConnection的方式,当sender和receiver在不同的线程时,采用QueuedConnection的方式。
定义CommunicationLib类,类对象在子线程中创建,定义如下所示:
定义CommuLib类型指针,指向创建的SerialPort对象。
定义QCoreApplication类型指针,在CLStop函数中调用a->quit()函数,停止exec()函数。
定义了4个槽函数:
CLopen功能:SerialPort打开函数,运行在子线程。
CLwrite功能:SerialPort写函数,运行在子线程。
CLclose功能:SerialPort关闭函数,运行在子线程。
CLStop功能:SerialPort事件循环停止函数,运行在子线程。
AppThread类为子线程类,在主线程创建,定义了4个信号函数,定义如下:
4个信号函数和槽函数通过Connect函数中的QueuedConnection连接方式连接,在run函数中利用Connect函数连接DLL导出函数和子线程函数。
四、DLL生成。