国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C#串口操作的使用淺析

開發 后端
C#串口操作在工業通信方面的應用是如何的呢?那么本文就向你介紹C#串口操作在工業通信編程中使用的心得體會,希望對你了解和學習C#串口操作有所幫助。

C#串口操作的使用:做工業通信有很長時間了,特別是串口(232/485),有VB/VC/C各種版本的串口操作代碼,這些代碼也經過了多年的現場考驗,應該說是比較健壯的代碼,但是目前卻沒有C#相對成熟的串口操作代碼,最近用Moxa的設備開發基于WinCE5.0的C#串口操作代碼,所以就擴充完善了一下C#串口操作,特別是SendCommand函數,這是我比較常用的主從通信代碼,不喜歡用事件或線程接數據,在規定的超時時間內直接循環判斷要接收的數據。

下面是具體C#串口操作的代碼:

  1. public class PortData  
  2. {  
  3. public event PortDataReceivedEventHandle Received;  
  4. public event SerialErrorReceivedEventHandler Error;   
  5. public SerialPort port;  
  6. public bool ReceiveEventFlag = false;   
  7.  //接收事件是否有效 false表示有效  
  8.  
  9. public PortData(string sPortName,   
  10. int baudrate,Parity parity,SerialInterface.SerialMode mode)  
  11. {  
  12. port = new SerialPort(sPortName,   
  13. baudrate, parity, 8, StopBits.One);  
  14. port.RtsEnable = true;  
  15. port.ReadTimeout = 3000;  
  16. port.DataReceived +=   
  17. new SerialDataReceivedEventHandler(DataReceived);  
  18. port.ErrorReceived +=   
  19. new SerialErrorReceivedEventHandler(ErrorEvent);  
  20. }  
  21.  
  22. ~PortData()  
  23. {  
  24. Close();  
  25. }  
  26. public void Open()  
  27. {  
  28. if (!port.IsOpen)  
  29. {     
  30. port.Open();  
  31. }  
  32. }  
  33.  
  34. public void Close()  
  35. {  
  36. if (port.IsOpen)  
  37. {  
  38. port.Close();  
  39. }  
  40. }  
  41. //C#串口操作之數據發送  
  42. public void SendData(byte[] data)  
  43. {  
  44. if (port.IsOpen)  
  45. {  
  46. port.Write(data, 0, data.Length);  
  47. }  
  48. }  
  49. public void SendData(byte[] data,  
  50. int offset,int count)  
  51. {  
  52. if (port.IsOpen)  
  53. {  
  54. port.Write(data, offset, count);  
  55. }  
  56. }  
  57. //C#串口操作之發送命令  
  58. public int SendCommand(byte[] SendData,  
  59.  ref  byte[] ReceiveData,int Overtime)  
  60. {  
  61.  
  62. if(port.IsOpen)  
  63. {  
  64. ReceiveEventFlag = true;//關閉接收事件  
  65. port.DiscardInBuffer(); //清空接收緩沖區   
  66. port.Write(SendData, 0, SendData.Length);  
  67. int num=0,ret=0;  
  68. while (num++ < Overtime)  
  69. {  
  70. if (port.BytesToRead >= ReceiveData.Length) break;  
  71. System.Threading.Thread.Sleep(1);   
  72. }  
  73. if (port.BytesToRead >= ReceiveData.Length)   
  74. ret = port.Read(ReceiveData, 0, ReceiveData.Length);  
  75. ReceiveEventFlag = false;   //打開事件  
  76. return ret;  
  77. }  
  78. return -1;  
  79. }  
  80.  
  81. public void ErrorEvent(object sender,  
  82.  SerialErrorReceivedEventArgs e)  
  83. {  
  84. if (Error != null) Error(sender, e);  
  85. }  
  86. //C#串口操作之數據接收  
  87. public void DataReceived(object sender,  
  88.  SerialDataReceivedEventArgs e)  
  89. {  
  90. //禁止接收事件時直接退出  
  91. if (ReceiveEventFlag) return;  
  92.  
  93. byte[] data = new byte[port.BytesToRead];  
  94. port.Read(data, 0, data.Length);  
  95. if (Received != null) Received(sender,   
  96. new PortDataReciveEventArgs(data));  
  97. }  
  98.  
  99. public bool IsOpen()  
  100. {  
  101. return port.IsOpen;  
  102. }  
  103. }  
  104. public delegate void PortDataReceivedEventHandle(  
  105. object sender, PortDataReciveEventArgs e);  
  106. public class PortDataReciveEventArgs : EventArgs  
  107. {  
  108. public PortDataReciveEventArgs()  
  109. {  
  110. this.data = null;  
  111. }  
  112.  
  113. public PortDataReciveEventArgs(byte[] data)  
  114. {  
  115. this.data = data;  
  116. }  
  117.  
  118. private byte[] data;  
  119.  
  120. public byte[] Data  
  121. {  
  122. get { return data; }  
  123. set { data = value; }  
  124. }  
  125. }  

注:1~9 串口的名稱是 "COMx:",>9的以前用\\\\.\\COMx:比較好使,但是在moxa 661設備上卻不行,要用如下格式"$device\\COM" + PortNo.ToString() + "\0",也許這是moxa修改了相應的串口驅動。

C#串口操作的一些內容就向你介紹到這里,希望對你了解和學習使用C#串口操作有所幫助。

【編輯推薦】

  1. 深度剖析C#序列化和反序列化
  2. 深入探討C#序列化和反序列化
  3. C# XML序列化應用淺析
  4. C#對象序列化應用淺析
  5. C#工具欄的編程實現淺析
責任編輯:仲衡 來源: 博客園
相關推薦

2009-08-17 13:34:02

C#異步操作

2009-09-11 11:27:38

AttributeUsC# Attribut

2009-09-07 06:07:46

C#窗體設計

2009-08-18 13:49:21

C# 操作Excel

2009-08-14 15:23:10

C#使用ErrorPr

2009-09-04 15:45:29

C#緩存流

2009-08-19 10:25:14

C#操作Word

2009-08-26 13:48:31

C#打印條碼

2009-08-18 09:37:14

C#枚舉類型

2009-08-18 16:04:12

C# 操作Excel

2009-08-20 10:25:37

C#操作內存

2009-08-19 09:42:52

C#操作Word書簽

2009-08-20 10:53:23

C#操作內存

2009-08-13 13:29:04

C#結構體使用

2009-08-19 16:42:41

C#如何使用XML

2009-08-31 18:38:59

C#寫文件

2009-08-19 11:34:06

C#操作Word

2009-09-18 10:58:31

C#數組操作

2009-08-19 11:13:49

C#操作Word

2009-08-25 16:29:33

C#使用sqlserv
點贊
收藏

51CTO技術棧公眾號

欧美美女15p| 色综合久久六月婷婷中文字幕| 久久久精品黄色| 日韩午夜在线视频| 天堂在线中文字幕| 国产一区二三区| 国产亚洲精品综合一区91| 欧美日韩最好看的视频| 综合久久一区| 国产91九色视频| 99久久亚洲精品蜜臀| 欧美日韩激情小视频| 丰满爆乳一区二区三区| **欧美大码日韩| 国产视频一区二区三区在线播放 | 亚洲图片激情小说| 亚洲黄色小视频在线观看| 欧美亚一区二区| 国产精品久久亚洲| 亚洲人成伊人成综合网小说| av资源中文在线| 国产精品欧美风情| 亚洲摸摸操操av| 免费在线观看黄| 这里只有精品丝袜| 免费大片在线观看www| 精品亚洲一区二区三区在线播放| 另类在线视频| 亚洲免费一在线| 久青草国产在线| 国产aⅴ夜夜欢一区二区三区| 1024精品久久久久久久久| 91精品久久久久久久久| 天天做天天爱天天综合网2021| 91国产美女在线观看| 日韩精品一二三区| 黄色视屏在线免费观看| 日韩亚洲欧美视频| 精品国产乱码一区二区三区四区| 欧美大胆一级视频| 中文精品一区二区| 亚洲日韩第一页| 欧美丰满日韩| free亚洲| 亚洲天堂成人在线视频| 欧洲亚洲精品| 成人免费大片黄在线播放| 亚洲福利视频在线| 美女网站一区| 六月丁香激情网| 欧美精品福利视频| 欧美日韩xxxx| 国产免费a∨片在线观看不卡| 蜜桃久久精品乱码一区二区| 亚洲福利视频一区二区| 亚洲天堂男人| 最新av网站在线观看| 日韩欧美国产骚| 日韩久久一区二区三区| 91九色对白| 麻豆成人在线| 国产黄色片免费在线观看| 久久精品夜夜夜夜夜久久| 国产剧情一区在线| 成人在线免费观看黄色| 中文字幕欧美日韩一区二区| 日本少妇一区二区| 日韩有码一区| 国产中文字幕在线免费观看| 91啦中文在线观看| 嫩草在线播放| 成人亚洲欧美一区二区三区| 91麻豆.com| 高清视频在线观看三级| 国产精品二区三区四区| 综合精品久久久| 日韩一级特黄| 国产v片免费观看| 亚洲精品理论电影| 爽好久久久欧美精品| 你懂的免费在线观看视频网站| 国产精品国产三级国产aⅴ9色| 久久久高清一区二区三区| 日本免费一区二区三区四区| 国产女同一区二区| 在线观看不卡| 中文字幕福利片| 亚洲激情一区二区三区| 91视频国产一区| 亚洲亚裔videos黑人hd| 91黄色免费版| 欧美有码在线视频| 精品91自产拍在线观看一区| 亚洲成人动漫精品| 国产精品国产三级国产普通话三级| 香蕉久久久久久久av网站| 天堂俺去俺来也www久久婷婷 | 日韩精品欧美大片| 18videosex性欧美麻豆| 动漫h在线观看| av动漫在线观看| 一区二区精品在线观看| 亚洲一区二区三区在线视频| 欧美国产亚洲精品久久久8v| 欧美日本视频在线| 一区二区三区日本| 91色综合久久久久婷婷| 91美女在线视频| 久久人人视频| 国产裸体舞一区二区三区| 免费亚洲一区二区| 国产精品日韩二区| 成人淫片在线看| 国产精品丝袜久久久久久不卡| 欧美在线www| 欧美一级bbbbb性bbbb喷潮片| 欧美国产乱视频| 91精品国产91| 欧美一区二区影院| 久久久久久久久综合| 欧美成人精品一区二区| 欧美一区二区高清| 日韩一区二区在线观看| 精品久久国产97色综合| 欧美巨大另类极品videosbest| 精品福利在线视频| 色呦呦网站一区| 91久久精品一区二区三| 色婷婷国产精品| 在线观看一区二区视频| 欧美精品免费视频| 亚洲成人亚洲激情| 最近2019中文字幕第三页视频| 欧美大片第1页| 亚洲自拍偷拍第一页| 狠狠精品干练久久久无码中文字幕| 日本一区二区三区免费看| 国产精品xxx视频| 91在线视频观看| 日韩中文字幕一区二区三区| 中文精品久久| 91精品秘密在线观看| 亚洲欧洲色图| japanese色系久久精品| 电影亚洲精品噜噜在线观看 | 99精品视频中文字幕| 国产aⅴ精品一区二区三区色成熟| 一区久久精品| 亚洲影音一区| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩国产欧| 怡红院精品视频在线观看极品| 亚洲破处大片| 欧美视频在线一区二区三区| 亚洲午夜久久久久久久久电影网| 一本到一区二区三区| 日韩欧美大尺度| 亚洲成人999| 中文字幕精品在线| 最近的2019中文字幕免费一页 | 视频在线99re| 久久国产精品免费观看| 九一精品在线观看| 青青草视频在线免费观看| 免费看成年人视频在线观看| p色视频免费在线观看| 成人video亚洲精品| 欧美系列精品| 精品成人一区| 97se亚洲国产综合在线| 亚洲国产欧美另类丝袜| 91精品一区二区三区久久久久久| 亚洲视频综合网| 91精品视频网站| 国产视频一视频二| 久色视频在线| 国产成人在线中文字幕| 久久久久综合| 亚洲六月丁香色婷婷综合久久 | 国产精品视频久| 欧美黄色免费网址| 91美女在线| 性xxxxfreexxxxx欧美丶| 国产精品片aa在线观看| 国产精品一区在线观看你懂的| 欧美日韩亚洲高清| 久久久伊人日本| 国产在线无码精品| √新版天堂资源在线资源| 久草成人在线| 国产一区二区按摩在线观看| 色婷婷国产精品久久包臀| 欧美精品成人在线| av在线com| 亚洲国产精品国自产拍av| 欧美一区二区三区喷汁尤物| 国产精品手机播放| 亚洲视频第二页| 97品白浆高清久久久久久| 精彩视频一区二区三区|