日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

最近同事在調(diào)試硬件的串口通訊功能,由于PLC暫時(shí)還沒(méi)到,所以準(zhǔn)備用USB轉(zhuǎn)串口線連接在終端上,通過(guò)電腦USB口模擬串口收發(fā)功能。一開(kāi)始同事下載了一款串口調(diào)試工具,發(fā)現(xiàn)沒(méi)有自定義功能,比如通訊串口收到終端發(fā)送的數(shù)據(jù),需要自動(dòng)應(yīng)答對(duì)應(yīng)指令數(shù)據(jù)(ModBus 主從問(wèn)答方式)。為了配置同事硬件調(diào)試,準(zhǔn)備下載一個(gè)開(kāi)源的串口調(diào)試工具,增加自定義應(yīng)答功能。

開(kāi)源軟件分享-基于WPF的串口調(diào)試工具

Serial port

串口調(diào)試開(kāi)源軟件搜索

打開(kāi)github網(wǎng)站搜索串口調(diào)試,我們搜索到一款名為WPFSerialAssitan的串口調(diào)試軟件感覺(jué)比較符合我們的要求。其README.md文件的介紹如下:

WPFSerialAssitan 串口助手是一款基于C#及WPF的串口助手軟件。本串口助手操作方便,UI簡(jiǎn)潔。軟件實(shí)現(xiàn)了基本的串口通訊需要的功能,開(kāi)發(fā)者可以基于此添加自定義的功能。此外,可以基于此開(kāi)發(fā)出一些簡(jiǎn)單的串口控制類軟件。

我們將代碼克隆到本地,當(dāng)然也可以先f(wàn)ork一份到自己的倉(cāng)庫(kù)再克隆到本地,這樣修改后我們可以將更改推送到github上。我們使用vs2019打開(kāi)工程,查看下其基本的代碼結(jié)構(gòu)。

開(kāi)源軟件分享-基于WPF的串口調(diào)試工具

WPFSerialAssitan code

串口調(diào)試開(kāi)源軟件修改

我們可以看到核心的代碼,基本在EventHandler.cs、core.cs 等2個(gè)類文件中,我們定義一個(gè)Dictionary,將收到的指令和需要應(yīng)答的指令一一定義起來(lái)。

開(kāi)源軟件分享-基于WPF的串口調(diào)試工具

WPFSerialAssitan even code

然后我們修改紅色方框內(nèi)的代碼,對(duì)收到的數(shù)據(jù)進(jìn)行判斷,如果在屬于字典autoReply則自動(dòng)將對(duì)應(yīng)的內(nèi)容應(yīng)答到串口。

            string recvString = Utilities.BytesToText(recvBuffer, receiveMode, serialPort.Encoding);
            this.Dispatcher.Invoke(new Action(() =>
            {
                if (showReceiveData)
                {
                    // 根據(jù)顯示模式顯示接收到的字節(jié).
                    recvDataRichTextBox.AppendText("接收: " +  recvString + System.Environment.NewLine);
                    recvDataRichTextBox.ScrollToEnd();
                }

                dataRecvStatusBarItem.Visibility = Visibility.Collapsed;

                //我們加入自動(dòng)回復(fù)功能
                //如果收到的指令配置在自動(dòng)應(yīng)答字典內(nèi),則自動(dòng)回復(fù)Key對(duì)應(yīng)的Value
                if (autoReply.ContainsKey(recvString)) {
                    SerialPortWrite(autoReply[recvString]);
                    recvDataRichTextBox.AppendText("發(fā)送: " + autoReply[recvString] + System.Environment.NewLine);
                }
            }));

編譯運(yùn)行

由于時(shí)間的關(guān)系,我們將需要自動(dòng)應(yīng)答的指令和回復(fù)內(nèi)容硬編碼到代碼里面了,以后有時(shí)間可以增加一個(gè)配置界面,設(shè)置需要自動(dòng)應(yīng)答的指令并且可以保存。

開(kāi)源軟件分享-基于WPF的串口調(diào)試工具

串口調(diào)試助手

分享到:
標(biāo)簽:串口 調(diào)試
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定