下载资源后端资源详情
th-mcv.zip
大小:7.45MB
价格:10积分
下载量:0
评分:
5.0
上传者:qq_37730663
更新日期:2025-09-22

Qt 串口,多线程(子线程处理串口信号)

资源文件列表(大概)

文件名
大小
chart.cpp
2.56KB
chart.h
1.95KB
global.h
1.11KB
image/
-
image/0.png
6.29KB
image/1.png
80.56KB
image/11.png
83.5KB
image/2.png
89.99KB
image/22.png
92.5KB
image/3.png
88.19KB
image/33.png
90.42KB
image/4.png
80.96KB
image/44.png
83.83KB
image/5.png
77.32KB
image/6.png
83.22KB
image/7.png
79.76KB
image/8.png
81.89KB
image/9.png
85.98KB
image/99.png
88.52KB
image/banben.png
65.59KB
image/bg.png
565B
image/cai.png
70.29KB
image/cai2.png
70.8KB
image/clear.png
1.07KB
image/close.png
70.18KB
image/close2.png
70.95KB
image/dot.png
563B
image/fold.png
909B
image/frame.jpg
119.01KB
image/frame.png
1.17MB
image/go-previous.png
1.11KB
image/image/
-
image/image/1.png
80.56KB
image/image/11.png
83.5KB
image/image/2.png
89.99KB
image/image/22.png
92.5KB
image/image/3.png
88.19KB
image/image/33.png
90.42KB
image/image/360logo.png
67.22KB
image/image/4.png
80.96KB
image/image/44.png
83.83KB
image/image/5.png
77.32KB
image/image/55.png
79.86KB
image/image/6.png
83.22KB
image/image/66.png
86.49KB
image/image/7.png
79.76KB
image/image/77.png
82.3KB
image/image/8.png
81.89KB
image/image/88.png
84.66KB
image/image/9.png
85.98KB
image/image/99.png
88.52KB
image/image/cai.png
70.29KB
image/image/cai2.png
70.8KB
image/image/close.png
70.18KB
image/image/close2.png
70.95KB
image/image/e.ico
167.01KB
image/image/frame.jpg
119.01KB
image/image/frame.png
1.21MB
image/image/frame1.png
1.09MB
image/image/max.png
70.04KB
image/image/max2.png
70.33KB
image/image/min.png
70.2KB
image/image/min2.png
70.44KB
image/image/screen.png
4.26KB
image/image/title.ico
16.56KB
image/images/
-
image/images/0.png
6.29KB
image/images/1.png
3.36KB
image/images/2.png
5.85KB
image/images/3.png
5.49KB
image/images/4.png
6.36KB
image/images/5.png
5.1KB
image/images/6.png
5.68KB
image/images/7.png
5.45KB
image/images/8.png
6.41KB
image/images/9.png
5.77KB
image/images/bg.png
565B
image/images/dot.png
563B
image/images/title.ico
16.56KB
image/main_about.png
13.77KB
image/main_company.png
16.99KB
image/main_config.png
21.15KB
image/main_data.png
19.94KB
image/main_exit.png
21.9KB
image/main_help.png
13.85KB
image/main_main.png
19.13KB
image/main_person.png
23.94KB
image/max.png
70.04KB
image/max2.png
70.33KB
image/min.png
70.2KB
image/min2.png
70.44KB
image/qt-logo.png
5.03KB
image/redo.png
1.71KB
image/screen.png
4.26KB
image/services.png
3.66KB
image/snowIcons/
-
image/snowIcons/01.png
32.2KB
image/snowIcons/02.png
30.1KB
image/snowIcons/03.png
11.82KB
image/snowIcons/04.png
21.4KB
image/snowIcons/05.png
19.3KB
image/snowIcons/06.png
20.4KB
image/snowIcons/07.png
17.03KB
image/snowIcons/08.png
18.97KB
image/snowIcons/09.png
19.81KB
image/snowIcons/10.png
16.72KB
image/snowIcons/11.png
18.95KB
image/snowIcons/12.png
17.83KB
image/snowIcons/13.png
21.7KB
image/snowIcons/14.png
22.19KB
image/snowIcons/15.png
15.2KB
image/snowIcons/16.png
18.04KB
image/snowIcons/17.png
19.75KB
image/snowIcons/18.png
19.23KB
image/snowIcons/19.png
21.61KB
image/snowIcons/20.png
20.51KB
image/snowIcons/21.png
17.12KB
image/snowIcons/22.png
12.13KB
image/title.ico
16.56KB
image/undo.png
1.73KB
image/unfold.png
963B
main.cpp
173B
masterthread.cpp
6.51KB
masterthread.h
3.34KB
mianw.cpp
5.41KB
mianw.h
912B
mianw.ui
10.54KB
myss.qrc
501B
th-mcv.pro
1.35KB
th-mcv.pro.user
23.4KB

资源内容介绍

个人demo,看私信挺多的,免费分享
/******************************************************************************** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>** Contact: https://www.qt.io/licensing/**** This file is part of the QtSerialPort module of the Qt Toolkit.**** $QT_BEGIN_LICENSE:BSD$** Commercial License Usage** Licensees holding valid commercial Qt licenses may use this file in** accordance with the commercial license agreement provided with the** Software or, alternatively, in accordance with the terms contained in** a written agreement between you and The Qt Company. For licensing terms** and conditions see https://www.qt.io/terms-conditions. For further** information use the contact form at https://www.qt.io/contact-us.**** BSD License Usage** Alternatively, you may use this file under the terms of the BSD license** as follows:**** "Redistribution and use in source and binary forms, with or without** modification, are permitted provided that the following conditions are** met:** * Redistributions of source code must retain the above copyright** notice, this list of conditions and the following disclaimer.** * Redistributions in binary form must reproduce the above copyright** notice, this list of conditions and the following disclaimer in** the documentation and/or other materials provided with the** distribution.** * Neither the name of The Qt Company Ltd nor the names of its** contributors may be used to endorse or promote products derived** from this software without specific prior written permission.****** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."**** $QT_END_LICENSE$******************************************************************************/#include "masterthread.h"#include <QtSerialPort/QSerialPort>#include <QTime>QT_USE_NAMESPACEMasterThread::MasterThread(QObject *parent) : QThread(parent), waitTimeout(0), quit(false){}//! [0]MasterThread::~MasterThread(){ mutex.lock(); quit = true; cond.wakeOne(); mutex.unlock(); wait();}//! [0]//! [1] //! [2]void MasterThread::transaction(const QString &portName, int waitTimeout, const QString &request){ //! [1] QMutexLocker locker(&mutex); this->portName = portName; this->waitTimeout = waitTimeout; this->request = request; //! [3] if (!isRunning()) start(); else cond.wakeOne();}void MasterThread::sendcmd(const QString &portName, int waitTimeout, char *txbuf, int lenth){ //! [1] QMutexLocker locker(&mutex); this->portName = portName; this->waitTimeout = waitTimeout; this->cmdBuf=txbuf; this->cmdLenth = lenth; //! [3] if (!isRunning()) start(); else cond.wakeOne();}//! [2] //! [3]//! [4]void MasterThread::run(){ bool currentPortNameChanged = false; mutex.lock(); //! [4] //! [5] QString currentPortName; if (currentPortName != portName) { currentPortName = portName; currentPortNameChanged = true; } int currentWaitTimeout = waitTimeout; QString currentRequest = request; mutex.unlock(); //! [5] //! [6] QSerialPort serial; if (currentPortName.isEmpty()) { emit error(tr("No port name specified")); return; } while (!quit) { //![6] //! [7] if (currentPortNameChanged) { serial.close(); serial.setPortName(currentPortName); // serial.setBaudRate(QSerialPort::Baud115200); serial.setDataBits(QSerialPort::Data8); serial.setParity(QSerialPort::NoParity); serial.setStopBits(QSerialPort::OneStop); serial.setFlowControl(QSerialPort::NoFlowControl); serial.setReadBufferSize(8); if (!serial.open(QIODevice::ReadWrite)) { emit error(tr("Can't open %1, error code %2") .arg(portName).arg(serial.error())); return; } } //! [7] //! [8] // write request //QByteArray requestData = currentRequest.toLocal8Bit(); //serial.write(requestData); //serial.write(this->cmdBuf, this->cmdLenth); QByteArray ba2(this->cmdBuf,this->cmdLenth); serial.write(ba2); if (serial.waitForBytesWritten(waitTimeout)) { //! [8] //! [10] // read response if (serial.waitForReadyRead(currentWaitTimeout)) { QByteArray responseData = serial.readAll(); while (serial.waitForReadyRead(10)) responseData += serial.readAll(); this->rxBufSize=responseData.size(); this->rxBuf= responseData.data(); QString response(responseData); //! [12] emit this->response(response); //! [10] //! [11] //! [12] } else { emit timeout(tr("Wait read response timeout %1") .arg(QTime::currentTime().toString())); } //! [9] //! [11] } else { emit timeout(tr("Wait write request timeout %1") .arg(QTime::currentTime().toString())); } //! [9] //! [13] mutex.lock(); cond.wait(&mutex); if (currentPortName != portName) { currentPortName = portName; currentPortNameChanged = true; } else { currentPortNameChanged = false; } currentWaitTimeout = waitTimeout; currentRequest = request; mutex.unlock(); } //! [13]}void MasterThread::stop(){ quit =true;}

用户评论 (0)

发表评论

captcha

相关资源

数据库大作业:火车售票管理系统(Python、pyqt5、QT、mysql)

本系统是由五位华工学子(刘同学、陈同学、罗同学、鲁同学、卢同学)在课余时间中对数据库课程设计进行的一次尝试。起因在于,虽然我们都有部分项目经验,然而一般情况下,都是由导师为我们所引导安排去实施任务的,因此在此课程出来后,我们就商量着体验一次,从零开始的自主实现项目过程。这次课设为对我们自身的提升有很大的帮助,为此希望通过这篇文章分享出来。当然,由于是第一次做如此大的工程,也遇到了一些困难的地方,当工作周期长时,也会出现部分拖沓懈怠,在小组之间的鼓励与监督下,完成让课设继续进行。可惜的是对于本系统由于时间较短,其实是开发并不完整的,而且存在并发性等问题没解决。本文主要介绍了火车票管理系统,其中包括其选题功能概述,对该系统的方案方法设计,以及过程实现等内容。由于系统的代码量较大,因此将会较为抽象地对思想进行介绍,在必要时会举出一些实例,还会附上成果展示以及安装方法。最后补充一下这次团伙作案的心得体会,也是非常宝贵的财富。

121.9MB10积分

一个有趣的有限状态机的JAVA实现

知道如何用java+有限状态机把大象塞进冰箱吗?

59.28KB17积分

开源OpenIPC的地面端基站

开源OpenIPC的地面端基站

39.43MB1积分

lv_sim_codeblocks_win(lvgl 8.0).zip

由于阿里云盘不支持zip文件分享,分享出去的链接中无法查看到源码的zip压缩包,大家可以在这里免费下载codeblocks的工程示例源码包。使用教程:https://blog.csdn.net/qq_35181236/article/details/119040463

101.34MB22积分