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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一個開源的QT的串口示波器

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

掃碼添加小助手

加入工程師交流群

逛github時看到這個QT的串口示波器,完全開源,支持串口、TCP、波形顯示、通信協(xié)議。感覺很不錯,跟以前分享的那個vofa+有點像。

Sailor Project功能說明

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

串口調試助手功能

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

操作說明

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

由于保存數據為顯示界面的數據,如果出于刷新狀態(tài),則無法保存所有數據,正確的做法是關閉串口后,將滾動條移動到最頂端,加載全部數據,然后保存窗口數據。

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位數據位, 1位停止位, 無硬件流控, 無校驗位。

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

幀頭 設備類型 設備ID 數據ID 幀尾
protocol_header(4-byte) equipment_type(2-byte) equipment_id (2-byte) data_id(2-byte) frame_tail(2-byte,CRC16,整包校驗)

2、幀頭詳細定義

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

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

intparse_protocol(protocol_struct*pProtocol,uint16_tparseDataLen)
{
//解析數據,使用前需提前緩沖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)
{
//更新幀頭數據
pFrameStruct->header.sof=pMessageStruct->pData[0];
//獲取data段的數據長度
pFrameStruct->header.data_length=(pMessageStruct->pData[2]<8)|(pMessageStruct->pData[1]);
pFrameStruct->header.crc_check=pMessageStruct->pData[3];
//獲取此次數據包長度
pMessageStruct->data_len=pFrameStruct->header.data_length+PROTOCOL_DATA_OFFSET+2;
//計算解析后得到的data_union數據長度
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段指定長度數據
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超過預定解析數據容量,避免內存越界
PROTOCOL_ERROR_PRINTF("parse_protocol->>CRC16_Check_Sumerr!
");
returnPROTOCOL_RESULT_CHECK_FRAME_ERR;
}
}
else
{
//待解析BUFF超過預定解析數據容量,避免內存越界
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
{
//通過包頭計算,還未收到完整的數據包
//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超過預定解析數據容量,避免內存越界
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

項目開源地址:

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


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

    關注

    113

    文章

    6964

    瀏覽量

    194567
  • 定時器
    +關注

    關注

    23

    文章

    3359

    瀏覽量

    121655

原文標題:分享一個開源的QT的串口示波器

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    開源鴻蒙SIG-Qt技術沙龍成都站成功舉辦,觸覺智能產品方案展示

    ,深圳觸覺智能等嘉賓展示了SIG-Qt產品解決方案。SIG-Qt產品解決方案深圳觸覺智能科技有限公司,iotdraw方案展示:iotdraw是面向工業(yè)設備監(jiān)控
    的頭像 發(fā)表于 11-24 13:40 ?254次閱讀
    <b class='flag-5'>開源</b>鴻蒙SIG-<b class='flag-5'>Qt</b>技術沙龍成都站成功舉辦,觸覺智能產品方案展示

    實時示波器和采樣示波器的差別

    實時示波器(Real-Time Oscilloscope)又稱“單次示波器”,它每次觸發(fā)時將會捕獲完整波形。在次連續(xù)記錄中,會捕獲大量
    的頭像 發(fā)表于 11-08 10:58 ?1574次閱讀
    實時<b class='flag-5'>示波器</b>和采樣<b class='flag-5'>示波器</b>的差別

    開源鴻蒙城市技術沙龍成都站圓滿落幕

    10月31日,由開源鴻蒙項目管理委員會(PMC)、開源鴻蒙 SIG-Qt主辦,成都中科合迅科技有限公司(以下簡稱“合迅科技”)支持的“開源鴻蒙城市技術沙龍·成都站”在成都海特國際廣場成
    的頭像 發(fā)表于 11-07 11:14 ?473次閱讀

    LVGL近期很多人問,那它和Qt哪個好?

    最近拜訪做工業(yè)控制、智能家居的客戶時,常被問到同一個問題:嵌入式產品,GUI選LVGL還是Qt? 其實工具選擇沒有絕對的“好”與“壞”,但選對適配場景的GUI圖形用戶界面工具,能直接讓產品開發(fā)效率
    的頭像 發(fā)表于 09-23 15:54 ?759次閱讀
    LVGL近期很多人問,那它和<b class='flag-5'>Qt</b>哪個好?

    普源示波器DS1102Z-E調試串口通信信號

    ,詳解利用DS1102Z-E進行串口信號調試的全流程。 ? 、硬件連接與初步設置 首先需確保示波器與待測串口電路正確連接:使用BNC轉接線連接示波
    的頭像 發(fā)表于 09-17 16:49 ?698次閱讀
    普源<b class='flag-5'>示波器</b>DS1102Z-E調試<b class='flag-5'>串口</b>通信信號

    又短又好用:單片機就串口,如何和多個從機串口通信?串口如何實現主多從?

    即可實現總線。 但是有時候由于些原因不得不也想到另種設計,即讓串口實現主多從這種總線設計。比如板內主MCU只有
    的頭像 發(fā)表于 09-17 11:49 ?834次閱讀
    又短又好用:單片機就<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>串口</b>,如何和多個從機<b class='flag-5'>串口</b>通信?<b class='flag-5'>串口</b>如何實現<b class='flag-5'>一</b>主多從?

    如何用QT開發(fā)USB3.0上位機?

    如何用QT開發(fā)USB3.0上位機
    發(fā)表于 05-21 06:54

    ThunderScope:開源的、優(yōu)雅的、便攜的專業(yè)級示波器

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

    EtherCAT運動控制器實時數據的Qt示波器

    基于QT開發(fā)調用正運動函數接口實現控制器數據實時監(jiān)測的示波器效果
    的頭像 發(fā)表于 04-17 17:12 ?555次閱讀
    EtherCAT運動控制器實時數據的<b class='flag-5'>Qt</b><b class='flag-5'>示波器</b>

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

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

    Open Echo:開源的聲納項目

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

    使用Labview做一個485串口電子秤程序

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

    用Labview寫電子稱的485串口程序

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

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

    為了進步提升跨平臺用戶界面(UI)開發(fā)的效率與便捷性,Qt Group近日推出了款實驗性工具——Qt AI Assistant。這款工具的問世,標志著
    的頭像 發(fā)表于 02-07 13:47 ?1624次閱讀

    Qt Group發(fā)布Qt Accelerate,加速數字產品開發(fā)進程

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