freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

2串口設(shè)備數(shù)據(jù)的接收和處理-閱讀頁

2025-03-08 18:23本頁面
  

【正文】 ,可以專門建立一個負(fù)責(zé)串口通信和調(diào)度的類,在里面定義一個或多個SerialPort對象作為該類的成員。如果在 10秒內(nèi)接收到數(shù)據(jù),則將接收到的數(shù)據(jù)以十六進(jìn)制方式顯示在文本框中,否則在文本框中顯示“操作超時”異常提示。程序界面如下圖: 圖 串口數(shù)據(jù)的接收 25 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 其中文本框名字為 t1,按鈕名字為 btnStart,對應(yīng)的后臺代碼如下: private SerialPort sp。 ()。 //關(guān)閉串口 } private void btnStart_Click(object sender, EventArgs e) { byte first。 = 10000。 //同步讀?。ǔ绦蛟诖吮蛔枞? tmp = new byte[ + 1]。 (tmp, 1, 1)。 } catch (TimeoutException ex) { = 。 for (int i = 0。 i++) (buff[i].ToString(X2) + )。 } } 28 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 該程序在點擊“開始接收”按鈕后會停止對用戶輸入的響應(yīng),這是因為調(diào)用 ReadByte方法造成當(dāng)前線程被阻塞,直到下位機(jī)發(fā)送的數(shù)據(jù)到達(dá),或接收超時才解除阻塞。在程序點擊“開始接收”按鈕后,立即切換到串口測試工具,并點擊“發(fā)送”按鈕,就可以在程序中看到發(fā)送過來的數(shù)據(jù)。 4接收數(shù)據(jù)的緩存和數(shù)據(jù)幀的提取 (1)創(chuàng)建數(shù)據(jù)接收隊列 CRecvBuf是一個用于緩存接收數(shù)據(jù)的類,利用 List類來實現(xiàn)。每當(dāng)接收到一段數(shù)據(jù),就調(diào)用 Add方法將收到的數(shù)據(jù)添加到隊列中, Add方法中判斷添加數(shù)據(jù)后字節(jié)數(shù)是否超過maxLength,并將超出部份從隊首刪除。 public int maxLength。 = maxLength。 (b)。 } } 30 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 (2) 使用數(shù)據(jù)接收隊列 當(dāng) HSDZC電能綜合測試儀工作在“測量方式 2” 的情況下,使用下面的程序可以接收數(shù)據(jù),并使用前面設(shè)計的 CRecvBuf類的實例緩存接收到的數(shù)據(jù),再從中提取出一個完整數(shù)據(jù)幀。上位機(jī)采用 3個步驟處理接收數(shù)據(jù):第 1步接收到下位機(jī)發(fā)送的數(shù)據(jù);第 2步將接收的數(shù)據(jù)添加到隊列中;第 3步從隊列中根據(jù)起始標(biāo)志和約定數(shù)據(jù)長度提取出一個完整的數(shù)據(jù)幀,后臺代碼如下: private SerialPort sp。 private void btnStart_Click(object sender, EventArgs e) { byte firstByte。 = 10000。 //讀取第 1個回復(fù)字節(jié)(程序在此被阻塞) 32 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 tmp = new byte[ + 1]。 (tmp, 1, 1)。 //接收數(shù)據(jù)顯示在文本框 t1中 (tmp)。 //提取一個完整的數(shù)據(jù)幀 tmp = getBlock()。 //顯示在文本框 t3中 else = 。 //在 t1文本框中顯示異常信息 } } private void Form1_Load(object sender, EventArgs e) { recvBuf = new CRecvBuf(60)。 ()。 } private byte[] getBlock(Listbyte li) { byte[] b = null。 //總長度不足 30字節(jié) //查找最后一個完整的數(shù)據(jù)塊 int p = 。 //已經(jīng)找到,接收循環(huán) if (p != 1) //p為數(shù)據(jù)塊的起始位置 35 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 { b = new byte[30]。 //拷貝數(shù)據(jù)塊到 b數(shù)組 } return b。 36 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 考核要點 考核內(nèi)容 分?jǐn)?shù) 創(chuàng)建應(yīng)用程序項目、創(chuàng)建 SerialPort對象 10% 接收串口測試工具發(fā)送的數(shù)據(jù),并在文本框中顯示 30% 使用串口測試工具模擬 HSDZC電能綜合測試儀發(fā)送數(shù)據(jù),編寫程序接收數(shù)據(jù)、提取數(shù)據(jù)幀、并把解碼后的數(shù)據(jù)顯示在文本框中 60% 37 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 能力拓展 SerialPort類要引入什么命名空間,如何創(chuàng)建 SerialPort對象? Read和 ReadByte方法有什么區(qū)別? ? ,該隊列如何實現(xiàn)? ,且完整的數(shù)據(jù)幀? HSDZC電能綜合測試儀的浮點數(shù)編碼格式,在“任務(wù)實施”第 4個步驟的例子中增加一段代碼,將解碼后的 I U P I U P I U P3這 9個浮點數(shù)值顯示在文本框 t3中。 , March 17, 2023 ? 雨中黃葉樹,燈下白頭人。 :22:5718:22Mar2317Mar23 ? 1故人江海別,幾度隔山川。 :22:5718:22:57March 17, 2023 ? 1他鄉(xiāng)生白發(fā),舊國見青山。 。 2023年 3月 17日星期五 6時 22分 57秒 18:22:5717 March 2023 ? 1做前,能夠環(huán)視四周;做時,你只能或者最好沿著以腳為起點的射線向前。 , March 17, 2023 ? 很多事情努力了未必有結(jié)果,但是不努力卻什么改變也沒有。 :22:5718:22Mar2317Mar23 ? 1世間成事,不求其絕對圓滿,留一份不足,可得無限完美。 :22:5718:22:57March 17, 2023 ? 1意志堅強(qiáng)的人能把世界放在手中像泥塊一樣任意揉捏。 。 2023年 3月 17日星期五 6時 22分 57秒 18:22:5717 March 2023 ? 1空山新雨后,天氣晚來秋。 , March 17, 2023 ? 閱讀一切好書如同和過去最杰出的人談話。 :22:5718:22Mar2317Mar23 ? 1越是無能的人,越喜歡挑剔別人的錯兒。勝人者有力,自勝者強(qiáng)。 2023年 3月 17日星期五 下午 6時 22分 57秒 18:22: ? 1最具挑戰(zhàn)性的挑戰(zhàn)莫過于提升自我。 2023年 3月 17日星期五 6時 22分 57秒 18:22:5717 March 2023 ? 1一個人即使已登上頂峰,也仍要自強(qiáng)不
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1