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

正文內(nèi)容

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

2023-03-17 18:23:30 本頁面
 

【正文】 下面的 HexToFloat函數(shù)描述了將 3個字節(jié)轉(zhuǎn)換為浮點數(shù)的算法: private float HexToFloat(byte B1, byte B2, byte B3) { float f, B, n。信號格式:開始 3字節(jié)均為 12H、 34H、 56H,后續(xù)每三個字節(jié)構(gòu)成一個浮點數(shù)值,分別表示 I U P I U P IU P3,共 9個數(shù)據(jù)。該設(shè)備提供兩種電腦測量方式,在儀表提示“測量方式”時,可以分別按“顯示 1” 和“顯示 2” 進(jìn)入。為了有足夠操作時間, SerialPort對象 sp的 ReadTimeout屬性為 10000毫秒( 10秒)。 //10秒內(nèi)沒有收到回復(fù)數(shù)據(jù),將捕獲到異常 try { firstByte = (byte)()。下面的測試程序說明了超時異常處理的方法: SerialPort sp。例如,現(xiàn)在接收緩沖區(qū)中只有 6個字節(jié),但 count參數(shù)值為 10,則返回值為 6。 當(dāng)調(diào)用 ReadByte方法時 , 如果接收緩沖區(qū)中沒有數(shù)據(jù) , 則程序被阻塞 , 直到緩沖區(qū)中有數(shù)據(jù)或到達(dá) ReadTimeout屬性指定讀取數(shù)據(jù)超時的毫秒數(shù) , 程序才能繼續(xù)運行 。 2 串口的打開和關(guān)閉 SerialPort類中與串口打開和關(guān)閉相關(guān)的成員如下: (1)Open方法 Open方法打開新的串口連接,該方法不帶參數(shù),接口定義如下: public void Open() (2)Close方法 Close方法關(guān)閉已經(jīng)打開的串口連接,該方法不帶參數(shù),接口定義如下: public void Close() 7 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 (3)IsOpen屬性 通過 IsOpen屬性可以獲知串口當(dāng)前是否為打開狀態(tài),返回一個 bool類型的值,該屬性只讀,接口定義如下: public bool IsOpen { get。 使用指定的端口名稱和波特率初始化 SerialPort 類的新實例,其它參數(shù)采用默認(rèn)值 public SerialPort(string portName, int baudRate, Parity parity)。 通過構(gòu)造函數(shù)可以產(chǎn)生 SerialPort類的實例, SerialPort類的構(gòu)造函數(shù)在定義時進(jìn)行了重載,表 : 表 SerialPort類的構(gòu)造函數(shù)定義 表 SerialPort類的構(gòu)造函數(shù)定義 構(gòu)造函數(shù)的接口定義 功能說明 public SerialPort()。利用.NET Framework SerialPort類可以比較方便地在 C應(yīng)用程序中實現(xiàn)串口通信功能。從編程的角度看,串口數(shù)據(jù)的接收就是利用 SerialPort對象的 Read或 ReadByte方法將操作系統(tǒng)存放在串口輸入緩沖區(qū)中的數(shù)據(jù)讀入到一個字節(jié)數(shù)組中。 使用默認(rèn)屬性值創(chuàng)建 SerialPort類的新實例,其中數(shù)據(jù)位數(shù)的默認(rèn)值為 8,校驗位的默認(rèn)值為 None,停止位的默認(rèn)值為 1,默認(rèn)端口名稱為 COM1。 使用指定的端口名稱、波特率和奇偶校驗位初始化 SerialPort 類的新實例,其它參數(shù)采用默認(rèn)值 public SerialPort(string portName, int baudRate, Parity parity, int dataBits)。 } 串口不能重復(fù)進(jìn)行打開和關(guān)閉操作,在打開或關(guān)閉串口前,都要使用該屬性檢查串口是否已經(jīng)處于打開或已經(jīng)處于關(guān)閉狀態(tài),以免引發(fā)異常。 8 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 ReadByte方法返回一個 int類型的值,在實際應(yīng)用時,要將返回值強(qiáng)制轉(zhuǎn)換為 byte類型。 在實際應(yīng)用時,通常先通過 SerialPort對象的 BytesToRead屬性獲得接收緩沖區(qū)中已有的字節(jié)數(shù),并根據(jù)該屬性值來設(shè)置 count參數(shù)。 private void btnStart_Click (object sender, EventArgs e) { byte firstByte。 //同步讀?。ǔ绦蛟诖吮蛔枞? = (X2)。在 10秒時間內(nèi),測試者可以通過串口測試程序發(fā)送一個或多個字節(jié)過來,此時程序結(jié)束阻塞狀態(tài)繼續(xù)運行,并在文本框中顯示接收到的第 1個字節(jié);如果 10秒內(nèi)沒有數(shù)據(jù)到達(dá),則引發(fā) TimeoutException。 在測量方式 1的情況下測試儀每秒通過 RS232接口發(fā)送 1組數(shù)據(jù),長度 46字節(jié)。 上位機(jī)在和 HSDZC電能綜合測試儀進(jìn)行通信時,不需要向設(shè)備寫入數(shù)據(jù),而是被動地讀取設(shè)備發(fā)送過來的數(shù)據(jù)。 //B:尾數(shù) n:階碼指數(shù) B = (B2 * 256 + B1) / 65536F。 n = B3。 } 6553 6 12562 BBB ???14 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 6 數(shù)據(jù)幀片段的緩存方法 (1)使用集合類存儲接收數(shù)據(jù) 在通信過程中,數(shù)據(jù)幀表示由多個字節(jié)構(gòu)成的,具有一定格式,表示完整語意的一組數(shù)據(jù)。 .NET Framework List類來實現(xiàn)集合元素管理。 Listbyte li = new Listbyte()。 在集合末尾添加另一個集合collection (ba)。 刪除下標(biāo)位置 index處的元素 (2)。 刪除集合中的所有元素 ()。 b=li[3]。 從下標(biāo)位置 index開始,自左向右查找值為 item的第一個元素,返回其下標(biāo) idx=(0x7F,3)。 從下標(biāo)位置 index開始,自右向左查找值為 item的第一個元素,返回其下標(biāo) idx= (0x7F,3)。 (1)通過添加控件創(chuàng)建 SerialPort對象 在“工具箱”中展開“組件”選項卡,選擇“ SerialPort” 組件(如圖 ),用鼠標(biāo)拖動到設(shè)計視圖中的窗口上。 實質(zhì)上是定義并實例化了一個名為 serialPort1的 SerialPort對象。 最后在 Form1類的構(gòu)造函數(shù)中創(chuàng)建對象: public Form1() { InitializeComponent()。 24 工控程序設(shè)計 學(xué)習(xí)情景 串口設(shè)備數(shù)據(jù)的接收和處理 3 串口數(shù)據(jù)的接收 在下面的程序中,當(dāng)點擊“開始接收”按鈕時,程序調(diào)用SerialPort對象的 ReadByte方法,阻塞當(dāng)前線程,并開始接收下位機(jī)發(fā)送的數(shù)據(jù)。 private void Form1_Load(object sender, EventArgs e) {
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1