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

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

C#讀取RS232串口掃描槍

2019-11-11 03:54:22
字體:
來源:轉載
供稿:網友

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

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

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


上一篇:1100. Mars Numbers (20)

下一篇:面向對象(1)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国产视频在线| 欧美最猛性xxxx| 亚洲国产天堂久久综合网| 亚洲男人天堂视频| 色婷婷亚洲mv天堂mv在影片| 日韩精品福利在线| 亚洲精品中文字幕有码专区| 亚洲va男人天堂| 国产精品亚洲美女av网站| 欧美自拍视频在线观看| 一区二区三区在线播放欧美| 日韩中文字幕免费视频| 日韩av综合中文字幕| 欧美日韩性视频| 亚洲成人国产精品| 成人淫片在线看| 日韩欧美亚洲一二三区| 久久久日本电影| 成人h猎奇视频网站| 亚洲国产精品va在线看黑人动漫| 国内外成人免费激情在线视频| 国产成人精品久久亚洲高清不卡| 欧美在线观看网址综合| 国产精品第一第二| 成人久久一区二区| 中文字幕免费精品一区| 九九热这里只有在线精品视| 久热国产精品视频| 5566日本婷婷色中文字幕97| 欧美高清无遮挡| 欧美一级视频在线观看| 欧美成人精品一区二区| 1769国内精品视频在线播放| 国产精品久久久久久一区二区| 欧美激情在线视频二区| 日韩欧美有码在线| 精品久久久久国产| 亚洲美女在线看| 久久国产精品久久久久久久久久| 97超级碰在线看视频免费在线看| 欧美又大又粗又长| 日韩高清电影免费观看完整| 国产精品久久久久久久久久三级| 中文字幕久热精品视频在线| 日本成人在线视频网址| 91免费看片在线| 久热在线中文字幕色999舞| 久久精品亚洲精品| 国产精品久久久久久五月尺| 国产精品综合久久久| 国产精品高清免费在线观看| 国产精品69久久久久| 91国偷自产一区二区三区的观看方式| 亚洲香蕉在线观看| 亚洲欧洲成视频免费观看| 日韩av中文字幕在线免费观看| 粗暴蹂躏中文一区二区三区| 久久久免费观看| 欧美激情亚洲激情| 欧美日韩国产影院| 欧美限制级电影在线观看| 97免费视频在线播放| 亚洲国产日韩欧美在线99| 欧美极品在线播放| 亚洲视频精品在线| 亚洲精品久久在线| 亚洲色图50p| 亚洲视频一区二区| 综合欧美国产视频二区| 久久久久久久久国产精品| 日韩视频免费看| 欧美日韩人人澡狠狠躁视频| 亚洲精品理论电影| 欧美成人精品三级在线观看| 亚洲免费视频一区二区| 中文字幕亚洲字幕| 国产精品国产三级国产aⅴ浪潮| 成人免费看片视频| 久久久久久国产三级电影| 国产精品欧美日韩久久| 91麻豆国产语对白在线观看| 91地址最新发布| 国产精品视频yy9099| 欧美日韩中文字幕| 一区二区三区www| 中文字幕亚洲激情| 日韩欧美精品免费在线| 午夜精品一区二区三区在线| 欧美日韩视频免费播放| 日韩欧美亚洲综合| 综合国产在线观看| 欧美成人午夜免费视在线看片| 亚洲a中文字幕| 久久99久久99精品中文字幕| 欧美高清视频免费观看| 一区二区三区视频免费在线观看| 日韩精品视频免费| 欧美老女人在线视频| 国产精品福利在线| 国产一区二区三区在线观看网站| 亚洲人午夜精品免费| 欧美成人网在线| 亚洲毛片在线看| x99av成人免费| 国产啪精品视频网站| 国产精品第1页| 亚洲人成在线免费观看| 国产精品久久久久久久久久久久| 亚洲3p在线观看| 亚洲无限乱码一二三四麻| 亚洲欧美日韩视频一区| 国产主播在线一区| 成人黄色影片在线| 国产精品日韩欧美| 国产美女被下药99| 国产精品久久久久久久av电影| 91精品久久久久久| 一区二区三区www| 国产视频观看一区| 亚洲一区二区三区在线免费观看| 欧美伦理91i| 国产成人久久久精品一区| 久热国产精品视频| 最新中文字幕亚洲| 国产v综合ⅴ日韩v欧美大片| 亚洲系列中文字幕| 国产精品伦子伦免费视频| www.xxxx欧美| 日韩69视频在线观看| 久久青草精品视频免费观看| 亚洲精品国产欧美| 日韩高清电影免费观看完整版| 91在线精品视频| 久久久久久久久久久网站| 国产亚洲精品久久久久久777| 日本久久亚洲电影| 尤物yw午夜国产精品视频明星| 久久亚洲精品成人| 亚洲国产日韩欧美在线图片| 欧美老肥婆性猛交视频| 日韩中文在线视频| 2019中文字幕全在线观看| 欧美亚洲一级片| 一区二区三区天堂av| 久久久伊人日本| 热久久视久久精品18亚洲精品| 欧美最猛性xxxxx亚洲精品| 久久韩剧网电视剧| 2021国产精品视频| 97人洗澡人人免费公开视频碰碰碰| 中文字幕精品一区久久久久| 亚洲欧洲第一视频| 亚洲女人被黑人巨大进入| 亚洲欧美在线一区二区| 亚洲福利视频二区| 欧美性受xxxx黑人猛交| 欧美大学生性色视频| 国产成人精品免费视频| 欧美日韩中文字幕| 欧美激情国产日韩精品一区18| 国产精品旅馆在线| 日韩在线欧美在线国产在线| 91av在线免费观看| 欧美巨乳在线观看|