程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#開發終端式短信的原理和方法(4)

C#開發終端式短信的原理和方法(4)

編輯:關於C語言

串口通信

在C#中要實現串口通信,很多人都不知所措,在論壇上經常可以看到"怎麼用MSCOMM實現串口通信"、"怎樣能過串口與設備相連"諸如此類的問題。其實國外的網友早就把這些列入FAQ中了。

通常,在C#中實現串口通信,我們有四種方法:

第一:通過MSCOMM控件這是最簡單的,最方便的方法。可功能上很難做到控制自如,同時這個控件並不是系統本身所帶,所以還得注冊,不在本文討論范圍。可以訪問http://www.devhood.com/tutorials/tutorial_details.ASPx?tutorial_id=320 ,一個國外網友的寫的教程,作者很熱心,我曾有發郵件給他,很快就回復了。

第二:微軟在.NET新推出了一個串口控件,基於.Net的P/Invoke調用方法實現,詳細的大家可以訪問微軟網站http://msdn.microsoft.com/msdnmag/issues/02/10/NETSerialComm/default.ASPx,方便得到更多資料。

第三:就是用第三方控件啦,可一般都要付費的,不太合實際,不作考慮

第四:自己用API寫串口通信,這樣難度高點,但對於我們來說,可以方便實現自己想要的各種功能

在本文,我們采用第四種方法來實現串口通信,不過不是自己寫,用一個國外網友現成的已經封裝好的類庫,不過功能簡單點,相對我們來說已經夠用了。

在整個終端短信的操作過程中,與串口的通信,只用到了四個功能,打開、寫、讀、關閉串口。下面是類庫對這四個功能的定義:

打開串口:

函數原型:public void Open()

說明:打開事先設置好的端口

示例:

using JustinIO;
static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口號
ss_port.BaudRate = 19200; //串口通信波特率
ss_port.ByteSize = 8; //數據位
ss_port.Parity = 0; //奇偶校驗
ss_port.StopBits = 1;//停止位
ss_port.ReadTimeout = 1000; //讀超時
try
{
 if (ss_port.Opened)
 {
  ss_port.Close();
  ss_port.Open(); //打開串口
 }
 else
 {
  ss_port.Open();//打開串口
 }
 return true;
}
catch(Exception e)
{
 MessageBox.Show("錯誤:" + e.Message);
 return false;
}

寫串口:

函數原型:public void Write(byte[] WriteBytes)

WriteBytes 就是你的寫入的字節,注意,字符串要轉換成字節數組才能進行通信

示例:

ss_port.Write(Encoding.ASCII.GetBytes("AT+CGMI\r")); //獲取手機品牌

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved