亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#讀取RS232串口掃描槍

2019-11-11 03:26:56
字體:
來源:轉載
供稿:網友

掃描對于工業商業的主要輸入設備很常見,與掃描槍的通訊也非常簡單。之前看到網上有很多人問,但大多說人沒有給出確切的回答,其實也就是源代碼啦。

我剛好做了一個項目用到了這種掃描槍,現在把做的步驟和代碼上傳上來,跟大家分享一下。

RS232串口的掃描槍不會像USB的掃描槍自動的吧數據輸入的光標焦點所在的位置,因此,需要我們手動的將掃描的數據添加到對應的位置。這也給我們 的軟件開發增加了一丟丟工作。

如果是USB,則只需把鼠標光標定位到需要輸入的位置上去。

如果是RS232的則需要一些額外的操作。

下面來看看實現的步驟。

環境:VS2015 C#,SerialPort類

首先熟悉,serialPort類,這個類是C#自帶的一個串口通訊,使用非常方便,性能還算穩定,因為我用著目前沒發現什么問題。不知道實時性如何。

表1                                                      SerialPort類的常用屬性

名  稱

說  明

BaseStream

獲取 SerialPort 對象的基礎 Stream 對象

BaudRate

獲取或設置串行波特率

BreakState

獲取或設置中斷信號狀態

BytesToRead

獲取接收緩沖區中數據的字節數

BytesToWrite

獲取發送緩沖區中數據的字節數

CDHolding

獲取端口的載波檢測行的狀態

CtsHolding

獲取“可以發送”行的狀態

DataBits

獲取或設置每個字節的標準數據位長度

DiscardNull

獲取或設置一個值,該值指示 Null 字節在端口和接收緩沖區之間傳輸時是否被忽略

DsrHolding

獲取數據設置就緒 (DSR) 信號的狀態

DtrEnable

獲取或設置一個值,該值在串行通信過程中啟用數據終端就緒 (DTR) 信號

Encoding

獲取或設置傳輸前后文本轉換的字節編碼

Handshake

獲取或設置串行端口數據傳輸的握手協議

IsOpen

獲取一個值,該值指示 SerialPort 對象的打開或關閉狀態

NewLine

獲取或設置用于解釋 ReadLine( )和WriteLine( )方法調用結束的值

Parity

獲取或設置奇偶校驗檢查協議

續表

名  稱

說  明

ParityReplace

獲取或設置一個字節,該字節在發生奇偶校驗錯誤時替換數據流中的無效字節

PortName

獲取或設置通信端口,包括但不限于所有可用的 COM 端口

ReadBufferSize

獲取或設置 SerialPort 輸入緩沖區的大小

ReadTimeout

獲取或設置讀取操作未完成時發生超時之前的毫秒數

ReceivedBytesThreshold

獲取或設置 DataReceived 事件發生前內部輸入緩沖區中的字節數

RtsEnable

獲取或設置一個值,該值指示在串行通信中是否啟用請求發送 (RTS) 信號

StopBits

獲取或設置每個字節的標準停止位數

WriteBufferSize

獲取或設置串行端口輸出緩沖區的大小

WriteTimeout

獲取或設置寫入操作未完成時發生超時之前的毫秒數

表2                                                     SerialPort類的常用方法

方 法 名 稱

說  明

Close

關閉端口連接,將 IsOpen 屬性設置為False,并釋放內部 Stream 對象

Open

打開一個新的串行端口連接

Read

從 SerialPort 輸入緩沖區中讀取

ReadByte

從 SerialPort 輸入緩沖區中同步讀取一個字節

ReadChar

從 SerialPort 輸入緩沖區中同步讀取一個字符

ReadLine

一直讀取到輸入緩沖區中的 NewLine 值

ReadTo

一直讀取到輸入緩沖區中指定 value 的字符串

Write

已重載。將數據寫入串行端口輸出緩沖區

WriteLine

將指定的字符串和 NewLine 值寫入輸出緩沖區

SerialPort使用方法:1,首先添加引用using System.IO.Ports;using System.IO;2,創建串口,實例化對象public SerialPort myComPort = new SerialPort("COM4", 9600, Parity.None);3,創建窗口接收函數PRivate void ReceiveData(object sender, SerialDataReceivedEventArgs e)        {            int n = myComPort.BytesToRead;             byte[] buf = new byte[n];            myComPort.Read(buf, 0, n);            textBox2.Invoke                (                new EventHandler(                    delegate                    {                        textBox2.Text = textBox2.Text + Encoding.ASCII.GetString(buf);                    }                    )                );        }4,串口接收函數綁定myComPort.DataReceived += ReceiveData;這里面需要注意的是textBox2.Invoke                (new EventHandler(                    delegate                    {                        textBox2.Text = textBox2.Text + Encoding.ASCII.GetString(buf);                    }                    )                );這部分指令徐需要的,因為有可能你的串口被用在了其他線程里,所以需要用到代理,否則系統報錯。

接下來就是寫接收到掃描碼的數據處理,

這個需要在根據你把數據寫入到什么地方,這里是寫入到了一個TEXTBOX里。

所以需要用textbox的數據更新事件來處理,

舉例如:如果輸入的條碼,二維碼以ENTER結束,則在收到ENTER后處理接收的數據

 private void textBox2_TextChanged(object sender, EventArgs e)        {            MessageBox.Show("KEY DOWN!");            if (textBox2.Text[textBox2.TextLength - 2] == 0x0D && textBox2.Text[textBox2.TextLength - 1] == 0x0A)            {                MessageBox.Show("input the ENTER!");            }        }

串口接收也可以寫成一個線程,不需要使用它的串口接收函數。如如下:

private void ReadPort()        {            while( _keepReading && myComPort.IsOpen )            {                int n = myComPort.BytesToRead;                byte[] buf = new byte[n];                myComPort.Read(buf, 0, n);                textBox2.Invoke                    (                    new EventHandler(                        delegate                        {                            textBox2.Text = textBox2.Text + Encoding.ASCII.GetString(buf);                        }                        )                    );            }                    }

另外增加:

_keepReading = true;_readThread = new Thread(ReceiveData);_readThread.Start();

結束

源代碼傳送門:

http://download.csdn.net/detail/u011518659/9748676


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄在线观看| 国产精品69久久| 国产亚洲成精品久久| www国产精品com| 中文亚洲视频在线| 亚洲一区美女视频在线观看免费| 国产精品视频一区二区高潮| 国产精品99免视看9| 97超级碰在线看视频免费在线看| 国产精品极品美女粉嫩高清在线| 日本一区二区不卡| 在线播放日韩欧美| 青青草99啪国产免费| 精品国产一区二区三区久久久狼| 精品国产区一区二区三区在线观看| 欧美亚洲另类制服自拍| xvideos亚洲人网站| 久久久久久97| 日韩av电影院| 成人av资源在线播放| 最近中文字幕日韩精品| 91啪国产在线| 日韩大片免费观看视频播放| 国产精品高潮粉嫩av| 欧美激情精品久久久久| 日本韩国在线不卡| 国产成人精品亚洲精品| 成人免费视频a| 欧美裸体视频网站| 国产性猛交xxxx免费看久久| 97精品一区二区视频在线观看| 亚洲精品国产精品国自产观看浪潮| 亚洲精品成人久久电影| 中文字幕精品www乱入免费视频| 自拍偷拍亚洲欧美| 成人福利视频在线观看| 成人av在线天堂| 日韩成人在线电影网| 欧洲成人免费aa| 成人欧美一区二区三区黑人孕妇| 欧美人与性动交a欧美精品| 欧美黑人xxx| 成人a级免费视频| 国产精品爱久久久久久久| 亚洲人成77777在线观看网| 中文字幕亚洲欧美日韩在线不卡| 欧美高清在线观看| 91亚洲精品在线| 日韩美女视频免费在线观看| 精品欧美aⅴ在线网站| 高清一区二区三区四区五区| 亚洲精品永久免费| 中文字幕不卡在线视频极品| 欧美情侣性视频| 在线精品播放av| 亚洲图片制服诱惑| 成人国产亚洲精品a区天堂华泰| 国产一区二区三区毛片| 热re99久久精品国产66热| 国产福利精品av综合导导航| 成人激情免费在线| 在线视频欧美日韩| 欧美激情小视频| 国产精品私拍pans大尺度在线| 国内精品久久久久| 欧美福利视频在线观看| 久久人人爽亚洲精品天堂| 亚洲精选在线观看| 亚洲一区二区中文字幕| 亚洲成人黄色网| 亚洲国语精品自产拍在线观看| 91精品国产91久久久久福利| 亚洲午夜精品久久久久久久久久久久| 97精品国产aⅴ7777| 欧美一区二区三区精品电影| 日韩电影中文字幕一区| 美女扒开尿口让男人操亚洲视频网站| 2019中文字幕在线免费观看| 国产精品一区二区久久久| 久久免费视频观看| 日本国产高清不卡| 在线精品高清中文字幕| 精品中文字幕久久久久久| yellow中文字幕久久| 九九精品视频在线观看| 国产精品偷伦一区二区| 欧美福利视频在线| 日韩电影在线观看中文字幕| 日韩精品视频免费在线观看| 国产精品jvid在线观看蜜臀| 久久九九全国免费精品观看| 性日韩欧美在线视频| 亚洲欧美国产一本综合首页| 亚洲第一福利在线观看| 成人免费视频在线观看超级碰| 欧美高清在线视频观看不卡| 国产精品久久电影观看| 日韩中文综合网| 亚洲欧美日韩中文在线| 久久久亚洲国产天美传媒修理工| 国产精品高潮在线| 久久亚洲精品中文字幕冲田杏梨| 美女黄色丝袜一区| 国产剧情久久久久久| 日韩av电影免费观看高清| 久久精品一本久久99精品| 亚洲欧洲中文天堂| 日韩免费在线电影| 国产精品美女久久久免费| 国产在线观看精品一区二区三区| 国产在线精品自拍| 亚洲精品456在线播放狼人| 国产精品扒开腿做爽爽爽男男| 97国产真实伦对白精彩视频8| 国产精品狼人色视频一区| 91精品国产九九九久久久亚洲| 欧美日韩免费在线| 日韩欧美亚洲一二三区| 97色在线播放视频| 亚洲影影院av| 大桥未久av一区二区三区| 亚洲欧美在线一区二区| 亚洲第一精品夜夜躁人人躁| 国产69精品久久久久9999| 精品视频中文字幕| 精品一区二区电影| 日韩在线不卡视频| 亚洲精品黄网在线观看| 97精品国产97久久久久久| 一本大道香蕉久在线播放29| 亚洲欧美成人一区二区在线电影| 亚洲成人激情图| 亚洲天堂av在线播放| 成人免费在线视频网站| 中文字幕国内精品| 亚洲激情电影中文字幕| 国产精品久久久久99| 欧美一区二粉嫩精品国产一线天| 欧美黄色免费网站| 日韩中文在线观看| 国产人妖伪娘一区91| 国产精品免费小视频| 色播久久人人爽人人爽人人片视av| 亚洲天堂第一页| 国产成人精品日本亚洲| 久久久免费观看| 久久色在线播放| 美女性感视频久久久| 色偷偷91综合久久噜噜| 成人在线观看视频网站| 久久久久久久91| 久久免费视频观看| 亚洲综合日韩在线| 一区二区日韩精品| 亚洲欧美日韩中文在线| 亚洲人成网站在线播| 清纯唯美亚洲激情| 国产成人精品免费久久久久| 欧美视频在线观看免费网址| 国产一区二区视频在线观看| 日韩国产精品一区| 欧美精品videos另类日本| 亚洲欧美日韩一区在线| 国产精品一区二区av影院萌芽|