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

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

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

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

基于Qt實(shí)現(xiàn)的串口示波器

凡億PCB ? 來源:果果小師弟 ? 作者:果果小師弟 ? 2022-06-12 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

摘要:逛github時(shí)看到這個(gè)QT的串口示波器,完全開源,支持串口、TCP、波形顯示、通信協(xié)議。感覺很不錯(cuò),跟以前分享的那個(gè)vofa+有點(diǎn)像。感興趣的可以下載下來學(xué)習(xí)學(xué)習(xí)。

Sailor Project功能說明

48698448-e9e0-11ec-ba43-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ì)刪除配置文件)

操作說明

注意由于QT自帶文本顯示窗口加載大量數(shù)據(jù)后會(huì)造成軟件卡頓,現(xiàn)解決方案為設(shè)定一個(gè)顯示緩沖區(qū),在有刷新數(shù)據(jù)階段(即串口接收數(shù)據(jù)階段),如果需要保持刷新狀態(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ì)開始加載所有數(shù)據(jù),如果你想再次觸發(fā)實(shí)時(shí)刷新數(shù)據(jù)狀態(tài),只需要將滾動(dòng)條移動(dòng)到最低端,并確保有數(shù)據(jù)接收。

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

TCPServer界面

488946fc-e9e0-11ec-ba43-dac502259ad0.png48985ee4-e9e0-11ec-ba43-dac502259ad0.png48acebca-e9e0-11ec-ba43-dac502259ad0.png48ba99be-e9e0-11ec-ba43-dac502259ad0.png48cc7134-e9e0-11ec-ba43-dac502259ad0.png

SEASKY串口通信協(xié)議

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

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

幀頭 設(shè)備類型 設(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ì)定義

48e29c52-e9e0-11ec-ba43-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超過預(yù)定解析數(shù)據(jù)容量,避免內(nèi)存越界
PROTOCOL_ERROR_PRINTF("parse_protocol->>CRC16_Check_Sumerr!
");
returnPROTOCOL_RESULT_CHECK_FRAME_ERR;
}
}
else
{
//待解析BUFF超過預(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
{
//通過包頭計(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超過預(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;
}

軟件截圖

48f219fc-e9e0-11ec-ba43-dac502259ad0.png49092566-e9e0-11ec-ba43-dac502259ad0.png491dee6a-e9e0-11ec-ba43-dac502259ad0.png49342216-e9e0-11ec-ba43-dac502259ad0.png

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

https://github.com/SEASKY-Master/vSailorProject


原文標(biāo)題:一個(gè)開源的QT的串口示波器,很nice!

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

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

    關(guān)注

    113

    文章

    6879

    瀏覽量

    193123
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1596

    瀏覽量

    81379
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    2

    文章

    317

    瀏覽量

    39886

原文標(biāo)題:一個(gè)開源的QT的串口示波器,很nice!

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于QT串口調(diào)試工具設(shè)計(jì)

    串口通信是我們經(jīng)常會(huì)遇到的問題。很多時(shí)候當(dāng)我們?cè)O(shè)計(jì)一個(gè)串口應(yīng)用時(shí),我們希望有一個(gè)簡(jiǎn)便的、可視的方式來驗(yàn)證它。這一篇中我們就來基于QT設(shè)計(jì)一個(gè)串口調(diào)試工具。
    的頭像 發(fā)表于 12-13 14:37 ?4265次閱讀
    基于<b class='flag-5'>QT</b>的<b class='flag-5'>串口</b>調(diào)試工具設(shè)計(jì)

    QT串口通信的簡(jiǎn)單使用

    QT串口通信是上位機(jī)和下位機(jī)通信常用的通信方式, 也是學(xué)習(xí)QT必須學(xué)會(huì)的基礎(chǔ)知識(shí), 這篇就簡(jiǎn)單介紹一下QT串口通信的簡(jiǎn)單使用.
    的頭像 發(fā)表于 01-15 09:27 ?3716次閱讀
    <b class='flag-5'>QT</b><b class='flag-5'>串口</b>通信的簡(jiǎn)單使用

    Qt串口通信專題教程

    這是一個(gè)關(guān)于在Qt Creator下進(jìn)行串口通信軟件開發(fā)的專題教程,能夠幫助你快速的開發(fā)有關(guān)的串口應(yīng)用。
    發(fā)表于 05-04 14:37 ?24次下載

    基于Qt串口通信應(yīng)用研究與實(shí)現(xiàn)嚴(yán)賢

    基于Qt串口通信應(yīng)用研究與實(shí)現(xiàn)_嚴(yán)賢
    發(fā)表于 03-17 08:00 ?3次下載

    基于RS232串口實(shí)現(xiàn)PIC單片機(jī)下位機(jī)與QT上位機(jī)通信

    基于RS232串口實(shí)現(xiàn)PIC單片機(jī)下位機(jī)與QT上位機(jī)通信
    發(fā)表于 11-16 12:21 ?21次下載
    基于RS232<b class='flag-5'>串口實(shí)現(xiàn)</b>PIC單片機(jī)下位機(jī)與<b class='flag-5'>QT</b>上位機(jī)通信

    Qt小項(xiàng)目之串口助手控制LED

    最近剛學(xué)了一點(diǎn)Qt開發(fā)上位機(jī),嘗試著做個(gè)小軟件練練手。查找了很多資料,做了一個(gè)簡(jiǎn)單的串口助手,可以實(shí)現(xiàn)串口基本發(fā)送和接收功能,支...
    發(fā)表于 01-26 18:21 ?2次下載
    <b class='flag-5'>Qt</b>小項(xiàng)目之<b class='flag-5'>串口</b>助手控制LED

    QT 串口示波器串口調(diào)試助手功能

    串口調(diào)試助手功能: 支持傳統(tǒng)的串口調(diào)試助手的基本收發(fā)功能,同時(shí)可以刷新大量的數(shù)據(jù)而不卡頓 支持保存接收的數(shù)據(jù) 支持最大200條可編輯指令的設(shè)置,并用于多條發(fā)送
    發(fā)表于 07-07 15:26 ?3188次閱讀

    【飛凌OKA40i-C開發(fā)板試用體驗(yàn)】QT實(shí)現(xiàn)串口助手

    本文來源電子發(fā)燒友社區(qū),作者:劉建華, 帖子地址: https://bbs.elecfans.com/jishu_2308758_1_1.html 【目的】用QT實(shí)現(xiàn)一個(gè)串口助手。 因?yàn)槲业捻?xiàng)目
    的頭像 發(fā)表于 10-19 11:21 ?1552次閱讀
    【飛凌OKA40i-C開發(fā)板試用體驗(yàn)】<b class='flag-5'>QT</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>串口</b>助手

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

    注意由于QT自帶文本顯示窗口加載大量數(shù)據(jù)后會(huì)造成軟件卡頓,現(xiàn)解決方案為設(shè)定一個(gè)顯示緩沖區(qū),在有刷新數(shù)據(jù)階段(即串口接收數(shù)據(jù)階段),如果需要保持刷新狀態(tài)(即實(shí)時(shí)顯示接收得數(shù)據(jù)),則僅顯示顯示緩沖區(qū)的內(nèi)容,你可以使用鼠標(biāo)移動(dòng)向上滾動(dòng)條,停止數(shù)據(jù)刷新
    的頭像 發(fā)表于 11-25 10:28 ?1403次閱讀

    基于QT串口小助手開發(fā)

    QT開發(fā)一個(gè)串口小助手,要求能實(shí)現(xiàn)串口接收,發(fā)送等基本功能。
    的頭像 發(fā)表于 04-04 15:07 ?2846次閱讀
    基于<b class='flag-5'>QT</b>的<b class='flag-5'>串口</b>小助手開發(fā)

    Qt實(shí)現(xiàn)串口通信

    實(shí)現(xiàn)串口通信,需要知道串口通信需要的信息
    的頭像 發(fā)表于 04-23 17:34 ?4633次閱讀
    <b class='flag-5'>Qt</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>串口</b>通信

    QTQT上位機(jī)串口編程

    QTQT上位機(jī)串口編程 最近因?yàn)轫?xiàng)目需要,需要用到上位機(jī),通過串口與上位機(jī)進(jìn)行通訊,來上傳和下發(fā)一些數(shù)據(jù)以及控制指令,所以用QT寫了一
    發(fā)表于 05-08 10:02 ?30次下載
    <b class='flag-5'>QT</b>篇<b class='flag-5'>QT</b>上位機(jī)<b class='flag-5'>串口</b>編程

    QT實(shí)現(xiàn)簡(jiǎn)單的上位機(jī)軟件

    最近項(xiàng)目要求寫上位機(jī)軟件,需要實(shí)現(xiàn)界面功能和串口讀寫。界面方面用過MFC(早忘記了),網(wǎng)上查閱資料后發(fā)現(xiàn)QT在5.1版本后有自帶的串口模塊,而且用Q
    發(fā)表于 05-08 09:54 ?4次下載
    <b class='flag-5'>QT</b><b class='flag-5'>實(shí)現(xiàn)</b>簡(jiǎn)單的上位機(jī)軟件

    Qt5實(shí)現(xiàn)上位機(jī)與串口通信

    Qt助手內(nèi)搜索:Qt Serial Port為串口的相關(guān)函數(shù)? 1.添加串口頭文件: # include //使用串口功能# inc
    發(fā)表于 05-10 10:46 ?2次下載
    <b class='flag-5'>Qt</b>5<b class='flag-5'>實(shí)現(xiàn)</b>上位機(jī)與<b class='flag-5'>串口</b>通信

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

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