chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一個(gè)開(kāi)源的QT的串口示波器

strongerHuang ? 來(lái)源:果果小師弟 ? 作者:果果小師弟 ? 2022-11-25 10:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

逛github時(shí)看到這個(gè)QT的串口示波器,完全開(kāi)源,支持串口、TCP、波形顯示、通信協(xié)議。感覺(jué)很不錯(cuò),跟以前分享的那個(gè)vofa+有點(diǎn)像。

Sailor Project功能說(shuō)明

8a09edd0-6c57-11ed-8abf-dac502259ad0.png

串口調(diào)試助手功能

  • 支持傳統(tǒng)的串口調(diào)試助手的基本收發(fā)功能,同時(shí)可以刷新大量的數(shù)據(jù)而不卡頓
  • 支持保存接收的數(shù)據(jù)
  • 支持最大200條可編輯指令的設(shè)置,并用于多條發(fā)送
  • 支持定時(shí)器發(fā)送
  • 支持換行符替換時(shí)間戳功能
  • 支持較多的中文編碼格式
  • 值得注意的是支持Linux簡(jiǎn)單的串口調(diào)試
  • 支持加載csv表格數(shù)據(jù)到200條可編輯指令
  • 支持部分窗口配置的保存和重啟恢復(fù)(前提是你不會(huì)刪除配置文件)

操作說(shuō)明

注意由于QT自帶文本顯示窗口加載大量數(shù)據(jù)后會(huì)造成軟件卡頓,現(xiàn)解決方案為設(shè)定一個(gè)顯示緩沖區(qū),在有刷新數(shù)據(jù)階段(即串口接收數(shù)據(jù)階段),如果需要保持刷新?tīng)顟B(tài)(即實(shí)時(shí)顯示接收得數(shù)據(jù)),則僅顯示顯示緩沖區(qū)的內(nèi)容,你可以使用鼠標(biāo)移動(dòng)向上滾動(dòng)條,停止數(shù)據(jù)刷新,同時(shí)當(dāng)你向上移動(dòng)滾動(dòng)條到一定程度,便會(huì)開(kāi)始加載所有數(shù)據(jù),如果你想再次觸發(fā)實(shí)時(shí)刷新數(shù)據(jù)狀態(tài),只需要將滾動(dòng)條移動(dòng)到最低端,并確保有數(shù)據(jù)接收。

由于保存數(shù)據(jù)為顯示界面的數(shù)據(jù),如果出于刷新?tīng)顟B(tài),則無(wú)法保存所有數(shù)據(jù),正確的做法是關(guān)閉串口后,將滾動(dòng)條移動(dòng)到最頂端,加載全部數(shù)據(jù),然后保存窗口數(shù)據(jù)。

TCPServer界面

8a14e078-6c57-11ed-8abf-dac502259ad0.png8a1f5558-6c57-11ed-8abf-dac502259ad0.png8a2a8ad6-6c57-11ed-8abf-dac502259ad0.png8a3909b2-6c57-11ed-8abf-dac502259ad0.png8a5d4d04-6c57-11ed-8abf-dac502259ad0.png

SEASKY串口通信協(xié)議

通信方式是串口,配置為波特率115200, 8位數(shù)據(jù)位, 1位停止位, 無(wú)硬件流控, 無(wú)校驗(yàn)位。

1、通信協(xié)議格式

幀頭 設(shè)備類(lèi)型 設(shè)備ID 數(shù)據(jù)ID 幀尾
protocol_header(4-byte) equipment_type(2-byte) equipment_id (2-byte) data_id(2-byte) frame_tail(2-byte,CRC16,整包校驗(yàn))

2、幀頭詳細(xì)定義

8a6b92a6-6c57-11ed-8abf-dac502259ad0.png

3、串口通信協(xié)議

intparse_protocol(protocol_struct*pProtocol,uint16_tparseDataLen)
{
//解析數(shù)據(jù),使用前需提前緩沖pProtocol->message_st.pData
intret=-1;
uint16_tpos_offset;
frame_struct*pFrameStruct=&pProtocol->frame_st;
message_struct*pMessageStruct=&pProtocol->message_st;
if(check_protocol_heade(pMessageStruct->pData)==PROTOCOL_RESULT_OK)
{
//更新幀頭數(shù)據(jù)
pFrameStruct->header.sof=pMessageStruct->pData[0];
//獲取data段的數(shù)據(jù)長(zhǎng)度
pFrameStruct->header.data_length=(pMessageStruct->pData[2]<8)|(pMessageStruct->pData[1]);
pFrameStruct->header.crc_check=pMessageStruct->pData[3];
//獲取此次數(shù)據(jù)包長(zhǎng)度
pMessageStruct->data_len=pFrameStruct->header.data_length+PROTOCOL_DATA_OFFSET+2;
//計(jì)算解析后得到的data_union數(shù)據(jù)長(zhǎng)度
pFrameStruct->frame_user.cmd_data.data_len=(pFrameStruct->header.data_length)/sizeof(data_union);
if(pMessageStruct->data_len<=parseDataLen)
????????{
????????????if(pMessageStruct->data_len<=?pMessageStruct->max_data_len)
{
if(CRC16_Check_Sum(&pMessageStruct->pData[0],pMessageStruct->data_len)!=0)
{
pFrameStruct->frame_user.equipment_type=(pMessageStruct->pData[5]<<8)|(pMessageStruct->pData[4]);
pFrameStruct->frame_user.equipment_id=(pMessageStruct->pData[7]<8)|(pMessageStruct->pData[6]);
pFrameStruct->frame_user.data_id=(pMessageStruct->pData[9]<8)|(pMessageStruct->pData[8]);
//拷貝data段指定長(zhǎng)度數(shù)據(jù)
ret=(int)memcpy(&pFrameStruct->frame_user.cmd_data.pData[0],&pMessageStruct->pData[PROTOCOL_DATA_OFFSET],pFrameStruct->header.data_length);
pos_offset=pFrameStruct->header.data_length+PROTOCOL_DATA_OFFSET;
pFrameStruct->frame_tail=(pMessageStruct->pData[pos_offset+1]<8)|(pMessageStruct->pData[pos_offset]);
returnPROTOCOL_RESULT_OK;
}
else
{
//待解析BUFF超過(guò)預(yù)定解析數(shù)據(jù)容量,避免內(nèi)存越界
PROTOCOL_ERROR_PRINTF("parse_protocol->>CRC16_Check_Sumerr!
");
returnPROTOCOL_RESULT_CHECK_FRAME_ERR;
}
}
else
{
//待解析BUFF超過(guò)預(yù)定解析數(shù)據(jù)容量,避免內(nèi)存越界
PROTOCOL_ERROR_PRINTF("parse_protocol->>data_len[%d]>max_data_len[%d]!
",
pMessageStruct->data_len,
pMessageStruct->max_data_len);
returnPROTOCOL_RESULT_OUT_OF_LEN;
}
}
else
{
//通過(guò)包頭計(jì)算,還未收到完整的數(shù)據(jù)包
//PROTOCOL_ERROR_PRINTF("parse_protocol->>data_len[%d]>max_data_len[%d]!
",
//pMessageStruct->data_len,
//pMessageStruct->max_data_len);
returnPROTOCOL_RESULT_OUT_OF_LEN;
}
}
else
{
//待解析BUFF超過(guò)預(yù)定解析數(shù)據(jù)容量,避免內(nèi)存越界
PROTOCOL_ERROR_PRINTF("parse_protocol->>check_protocol_headeerr!
");
returnPROTOCOL_RESULT_CHECK_HEAD_ERR;
}
PROTOCOL_DEBUG_PRINTF("parse_protocol->>check_protocol_headeok!
");
returnPROTOCOL_RESULT_ERR;
}

軟件截圖

8a7296c8-6c57-11ed-8abf-dac502259ad0.png8a8152ee-6c57-11ed-8abf-dac502259ad0.png8a905078-6c57-11ed-8abf-dac502259ad0.png8aa36d02-6c57-11ed-8abf-dac502259ad0.png

項(xiàng)目開(kāi)源地址:

https://github.com/SEASKY-Master/vSailorProject
審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 示波器
    +關(guān)注

    關(guān)注

    113

    文章

    6705

    瀏覽量

    189270
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118949

原文標(biāo)題:分享一個(gè)開(kāi)源的QT的串口示波器

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何用QT開(kāi)發(fā)個(gè)USB3.0上位機(jī)?

    如何用QT開(kāi)發(fā)個(gè)USB3.0上位機(jī)
    發(fā)表于 05-21 06:54

    ThunderScope:開(kāi)源的、優(yōu)雅的、便攜的專(zhuān)業(yè)級(jí)示波器

    的、高性價(jià)比的專(zhuān)業(yè)示波器。目前已經(jīng)迭代了多個(gè)版本,在 Aleksa 和開(kāi)源社區(qū)的努力下,產(chǎn)品日趨完善。 示波器有兩個(gè)主要版本,一個(gè)是便攜的盒
    的頭像 發(fā)表于 04-29 16:43 ?802次閱讀
    ThunderScope:<b class='flag-5'>開(kāi)源</b>的、優(yōu)雅的、便攜的專(zhuān)業(yè)級(jí)<b class='flag-5'>示波器</b>

    EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的Qt示波器

    基于QT開(kāi)發(fā)調(diào)用正運(yùn)動(dòng)函數(shù)接口實(shí)現(xiàn)控制器數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)的示波器效果
    的頭像 發(fā)表于 04-17 17:12 ?273次閱讀
    EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的<b class='flag-5'>Qt</b><b class='flag-5'>示波器</b>

    【技術(shù)案例】Qt 環(huán)境部署 - Ubuntu 篇

    什么是Qt?Qt個(gè)跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架,可構(gòu)建高性能的桌面、移動(dòng)及Web應(yīng)用程序,也可用于開(kāi)發(fā)非GUI程序,比如控制臺(tái)工具和服務(wù)器。
    的頭像 發(fā)表于 04-16 17:17 ?540次閱讀
    【技術(shù)案例】<b class='flag-5'>Qt</b> 環(huán)境部署 - Ubuntu 篇

    Open Echo:個(gè)開(kāi)源的聲納項(xiàng)目

    “ ?這是個(gè)還在迭代中的項(xiàng)目。開(kāi)源的回聲測(cè)深儀/水深測(cè)量?jī)x/聲吶系統(tǒng),適用于水文測(cè)繪及科研用途?;贏rduino平臺(tái)開(kāi)發(fā)并具備良好兼容性? ” ? Open Echo 概覽 作為持續(xù)迭代
    的頭像 發(fā)表于 03-20 11:14 ?1002次閱讀
    Open Echo:<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>開(kāi)源</b>的聲納項(xiàng)目

    開(kāi)源項(xiàng)目!教你如何制作個(gè)開(kāi)源教育機(jī)械臂

    128x64實(shí)時(shí)反饋。 經(jīng)過(guò)多次失敗的測(cè)試和設(shè)計(jì)迭代,Pedro 2.0終于在2024年發(fā)布,具有改進(jìn)的功能,經(jīng)過(guò)徹底的測(cè)試和驗(yàn)證。 Pedro 2.0是個(gè)完全開(kāi)源的項(xiàng)目,旨在讓每個(gè)人都可以訪問(wèn)
    發(fā)表于 03-10 11:22

    使用Labview做一個(gè)485串口電子秤程序

    232、485串口通訊是最常見(jiàn)的儀器儀表通訊方式之,本文詳細(xì)介紹,用Labview編寫(xiě)個(gè)電子秤的485串口程序.
    發(fā)表于 03-06 18:11 ?0次下載

    用Labview寫(xiě)個(gè)電子稱的485串口程序

    關(guān)鍵詞:Labview + 串口程序 232、485串口通訊是最常見(jiàn)的儀器儀表通訊方式之,本文詳細(xì)介紹,用Labview編寫(xiě)個(gè)電子秤的
    的頭像 發(fā)表于 03-06 09:54 ?727次閱讀
    用Labview寫(xiě)<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>電子稱的485<b class='flag-5'>串口</b>程序

    Qt Group發(fā)布Qt AI Assistant,助力跨平臺(tái)UI開(kāi)發(fā)

    為了進(jìn)步提升跨平臺(tái)用戶界面(UI)開(kāi)發(fā)的效率與便捷性,Qt Group近日推出了款實(shí)驗(yàn)性工具——Qt AI Assistant。這款工具的問(wèn)世,標(biāo)志著
    的頭像 發(fā)表于 02-07 13:47 ?1136次閱讀

    Qt Group發(fā)布Qt Accelerate,加速數(shù)字產(chǎn)品開(kāi)發(fā)進(jìn)程

    Qt Group近日正式推出了Qt Accelerate,這是款專(zhuān)為快速構(gòu)建數(shù)字應(yīng)用而設(shè)計(jì)的解決方案,旨在滿足工業(yè)制造、移動(dòng)出行、消費(fèi)類(lèi)電子等多個(gè)領(lǐng)域的需求。 Qt Accelera
    的頭像 發(fā)表于 01-13 11:19 ?613次閱讀

    QT環(huán)境下使用CH348芯片進(jìn)行設(shè)備識(shí)別與管理

    當(dāng)多個(gè)CH348芯片同時(shí)接入電腦時(shí),每塊芯片虛擬出的8個(gè)串口都相同,這會(huì)導(dǎo)致難以區(qū)分和管理這些串口。為了解決這個(gè)問(wèn)題,我們可以通過(guò)修改每個(gè)CH348芯片的SerialString字段,并在Qt
    的頭像 發(fā)表于 11-29 01:03 ?697次閱讀
    在<b class='flag-5'>QT</b>環(huán)境下使用CH348芯片進(jìn)行設(shè)備識(shí)別與管理

    示波器如何測(cè)試特定的脈沖信號(hào)?還在一個(gè)個(gè)數(shù)?

    個(gè)客戶在使用示波器時(shí)遇到了這樣個(gè)問(wèn)題,他測(cè)試的信號(hào)每間隔段時(shí)間就會(huì)發(fā)出40-70個(gè)脈沖,但
    的頭像 發(fā)表于 09-26 08:09 ?2823次閱讀
    <b class='flag-5'>示波器</b>如何測(cè)試特定的脈沖信號(hào)?還在<b class='flag-5'>一個(gè)</b>個(gè)數(shù)?

    示波器探頭和示波器需要匹配嗎

    示波器探頭和示波器匹配問(wèn)題是個(gè)非常重要的話題,因?yàn)樗鼈冎g的匹配程度直接影響到測(cè)量結(jié)果的準(zhǔn)確性和可靠性。 示波器探頭的工作原理
    的頭像 發(fā)表于 08-09 14:33 ?855次閱讀

    示波器電流探頭最簡(jiǎn)單三個(gè)步驟是什么

    具有重要意義。下面介紹示波器電流探頭的三個(gè)最簡(jiǎn)單步驟: 步驟:選擇合適的電流探頭 確定測(cè)量范圍 :首先,需要根據(jù)待測(cè)電路的電流大小選擇合適的電流探頭。電流探頭通常有不同的量程,如10A、100A、1000A等,選擇
    的頭像 發(fā)表于 08-09 14:24 ?1472次閱讀

    QT5+OpenCV4搭建應(yīng)用開(kāi)發(fā)環(huán)境

    作為深度學(xué)習(xí)算法工程師,必須要掌握應(yīng)用開(kāi)發(fā)技能嗎?搞工程肯定是必須要會(huì)界面開(kāi)發(fā),QT就是個(gè)很不錯(cuò)的選擇。本文以QT5.15 + OpenCV4.8 + OpenVINO2023為例,
    的頭像 發(fā)表于 07-23 11:23 ?1483次閱讀
    <b class='flag-5'>QT</b>5+OpenCV4搭建應(yīng)用開(kāi)發(fā)環(huán)境