Qt readyRead信號避坑:不產生readyRead信號的解決方法

Qt readyRead信號避坑:不產生readyRead信號的解決方法

  • 引言
  • 一、QSerialport的readyRead
    • 1.1 版本問題
    • 1.2 緩存問題
    • 1.3 阻塞問題
  • 二、Q(Tcp)Socket的readyRead
    • 2.1 阻塞問題
    • 2.2 運行一段時間,突然不發信號
    • 2.3 和具體數據有關?

引言

目前沒遇到相關坑,接收到數據不產生readyRead信號(可能和版本或者系統有關),偶然看到關于QTcpSocket的readyRead還有QSerialport的readyRead有坑,特記錄。

一、QSerialport的readyRead

1.1 版本問題

  • 有問題版本總結:Qt5.15.2Qt5.14.2Qt5.13.1Qt5.12.5,很神奇 為什么這么多版本有問題…

Qt5.13.1版本 QSerialport不產生readyRead信號的bug:https://blog.csdn.net/weixin_42485732/article/details/110674994
QT避坑一(串口readyRead信號不產生):https://blog.csdn.net/LongRunning/article/details/147068112
關于QT5.13.1或者其他版本串口readyRead信號不產生的解決方法:https://blog.csdn.net/qq_37868856/article/details/103147353

1.2 緩存問題

串口緩存滿后不再接受數據,無法觸發readReady信號,和網絡緩存區別很大。

串口通信收不到QSerialPort::readyRead信號的問題:https://juejin.cn/post/7317522848451657778

  • 使用bool QSerialPort::clear(QSerialPort::Directions directions = AllDirections)函數清理緩存

1.3 阻塞問題

使用類似waitForBytesWritten的函數會阻塞線程的函數,可能造成信號丟失,再來一個信號會覆蓋前面的信號

QSerialport readyRead 信號偶發不響應問題:https://www.cnblogs.com/yangjinghui/p/17497956.html

二、Q(Tcp)Socket的readyRead

Qt的QTcpSocket的readyRead信號使用體會(機制講解,較詳細):https://blog.csdn.net/dengdew/article/details/79065608

2.1 阻塞問題

解決 QT udp接收不到數據包問題:https://blog.csdn.net/qq_45304158/article/details/108625740 - 問題1

2.2 運行一段時間,突然不發信號

解決辦法,可以重啟Socket:

解決 QT udp接收不到數據包問題:https://blog.csdn.net/qq_45304158/article/details/108625740 - 問題2
QT下udpsocket一段時間接收不到數據的問題:https://blog.csdn.net/zhulichen/article/details/52491132

  • 核心問題就是,緩存中,有數據沒有接收完,導致不發readyRead信號,網上也有其他解決辦法:
    1. 主動接收:比如采用定時器觸發槽函數read數據,或手動發送readyRead信號嘗試接收
    1. 被動接收:每次都用readAll函數讀取,保證數據被讀完,下一次有新數據就必能發readyRead信號

2.3 和具體數據有關?

不確定,沒有試過:

數據中有0x0a 或 0x0d就會觸發此信號:https://blog.csdn.net/qcddao4/article/details/134623704

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86557.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86557.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86557.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大事件項目記錄10-文章分類接口開發-更新文章分類

四、更新文章分類。 CategoryController.java: PutMappingpublic Result update(RequestBody Validated Category category){categoryService.update(category);return Result.success();} CategoryService: //更新分類void update(Category category); …

AI接口使用–阿里云百煉

原文地址:AI接口使用–阿里云百煉 – 無敵牛 歡迎參觀我的個人博客:無敵牛 – 技術/著作/典籍/分享等 最近開發了一個抖音AI起名小程序,已經在抖音上線了,歡迎大家來使用。其中用到了 AI文本生成 功能,我用的是 阿里云…

大模型之提示詞工程入門——解鎖與AI高效溝通的“鑰匙”

一、什么是提示詞工程? 提示詞工程(Prompt Engineering) 是一門通過設計、優化輸入文本(Prompt)來引導大語言模型(LLM)生成高質量輸出的技術。它不僅是AI應用的核心環節,也是連接人…

智慧城市云計算大數據中心項目設計方案

第1章 總體方案設計 1.1 概述 1.2 建設目標 1.3 建設內容 1.3.1 標準規范體系編制 1.3.2 基礎設施平臺建設 1.3.3 數據資源平臺建設 1.3.4 應用支撐平臺建設 1.3.5 云管平臺運維建設 1.3.6 應用上云遷移實施 1.3.7 信息安全保障建設 1.3.8 容災備份系統建設 1.4 設…

OpenMP并行加速學習筆記2025.6.27

在OpenMP并行加速中,線程數(如32、16、8)的選擇需結合硬件核心數、任務類型(計算密集型或I/O密集型)、負載均衡策略及線程開銷綜合判斷。以下為具體差異分析與性能提升對比: 一、核心影響因素分析 1. 硬件…

對象回調和函數回調

1.對象回調: 對象回調原始寫法,A調B B又回頭調A package com.ldj.demo.controller;/*** User: ldj* Date: 2025/6/28* Time: 12:22* Description: 回調函數的理解 對象回調*/ public class Tr {public static void main(String[] args) {A a new A();…

Python實例題:Web 爬蟲與數據可視化

目錄 Python實例題 題目 要求: 解題思路: 代碼實現: Python實例題 題目 Web 爬蟲與數據可視化 要求: 編寫一個爬蟲,從豆瓣電影 Top250 頁面(豆瓣電影 Top 250)抓取電影名稱、評分、導演…

關于ubuntu 20.04系統安裝分區和重復登錄無法加載桌面的問題解決

1. 想要安裝Ubuntu 20.04版本,有兩塊硬盤,所以在分區列表設置的格式為如下: 其中各個/boot 、/home的格式為如下(Ubuntu20.04分區方案_ubuntu20.04手動分區-CSDN博客) 2.安裝完死活輸完密碼進不去主界面 必須禁用Nou…

26考研|數學分析:隱函數定理及其應用

前言 本章主要圍繞隱函數、隱含數組的計算展開,本章的核心還是在于計算的運用,在理論層面要掌握隱函數(隱函數組)存在性定理,在計算方面,要掌握隱函數、隱函數組的計算方法,此外,本…

PyQtNode Editor 第三篇創建節點(節點的定義)

在 PyQtNode Editor 的開發之旅中,經過前兩篇博客對基礎環境搭建和核心類結構的探索,我們已經邁出了堅實的步伐。今天,我們將聚焦于node_scene文件,深入解析其中的代碼邏輯。這段代碼構建了Scene類,它如同整個節點編輯器的 “管理中樞”,承擔著組織和協調節點、邊等關鍵元…

通過docker安裝nginx服務

nginx配置文件 https://gitee.com/Cairo-SR8/nginx-configuration.git一、安裝nginx 1.1 拉去ARM鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_nginx:latest1.2 拉去x86鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/…

盲法在臨床試驗中的應用與挑戰

一、盲法分級與科學價值 1.1 開放標簽 1.1.1 受盲對象 無隱藏。 1.1.2 適用場景 外科手術、器械試驗等無法偽裝的操作。 1.1.3 偏倚控制目標 僅客觀終點(生存率、實驗室指標)。 1.2 單盲 1.2.1 受盲對象 患者。 1.2.2 適用場景 患者報告結局(PRO)為主的試驗(如…

VNware啟動虛擬機報錯:虛擬化性能計數器需要版本為 3 或以上的架構性能監控。

Vmware版本:17.5 結論: 【編輯虛擬機設置-硬件-處理器-虛化計數器】沒勾就勾上,勾了就不勾保存,然后重新打勾 備注:不知道是不是顯示問題,之前勾著的時候報錯。取消報錯,再勾上報錯能正常啟動虛…

微機系統 - 第7章 -可編程接口芯片

可編程并行輸入/輸出接口芯片 8255A -1:結構 8255A為40引腳、雙列直插封裝。 內部結構由數據端口、組控制電路、數據總線緩沖器、讀/寫控制邏輯四部分組成。 數據總線緩沖器:三態8位雙向緩沖器,D7-D0同系統數據總線相連。CPU通過執行輸入/輸出指令來實…

解析云計算虛擬化基石:KVM、QEMU與Libvirt的協同

在云計算和容器化大行其道的今天,傳統虛擬化技術仍是企業IT架構的核心支柱。理解KVM、QEMU和Libvirt的關系,是掌握現代虛擬化技術的關鍵一步。 一、虛擬化技術演進:從軟件模擬到硬件加速的進化之路 虛擬化技術通過在單臺物理服務器上創建多個…

Mac mini 跑 DeepSeek R1 及 QwQ-32B模型實測報告

測試對象:2025 款 Mac mini(M4 / M4 Pro 芯片) 測試模型:DeepSeek-R1(14B/32B)、QwQ-32B(原版/量化版) 測試目標:硬件性能適配性、推理速度、內存占用及優化方案 一、Mac…

github常用插件

一,文檔輔助閱讀系列:自動化wiki處理 1,deepwiki https://deepwiki.com/ 將我們看不懂的官方code文檔轉換為wiki,更加便于理解。 其實能夠翻閱的倉庫很有限,比如說: 但是有很多倉庫并沒有index&#xff…

洛谷P11963 [GESP202503 六級] 環線-普及/提高-

題目描述 小 A 喜歡坐地鐵。地鐵環線有 n n n 個車站&#xff0c;依次以 1 , 2 , ? , n 1,2,\cdots,n 1,2,?,n 標號。車站 i ( 1 ≤ i < n ) i\ (1\leq i<n) i (1≤i<n) 的下一個車站是車站 i 1 i1 i1。特殊地&#xff0c;車站 n n n 的下一個車站是車站 1 …

大網絡辦公區的二層生成樹優化問題

辦公區有華為和思科交換機&#xff0c;此次改造&#xff0c;在辦公火墻上、下聯&#xff0c;做3層IP地址互聯&#xff0c;可以讓大核心不參與辦公區的STP網絡收斂&#xff0c;就不會因為下面辦公區的交換機stp收斂問題導致&#xff0c;核心連接的其他區域網絡出現動蕩&#xff…

重點解析(軟件工程)

一. 概述 什么是軟件、軟件危機、軟件工程 軟件是可執行的指令&#xff08;程序&#xff09;、操作信息的數據以及描述程序操作和使用的文檔的集合。 軟件危機指軟件開發速度跟不上需求增長&#xff0c;導致設計拙劣、維護困難&#xff0c;可能造成經濟損失或災難。 軟件工程是…