首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 終端式簡訊開發(七):序列埠初始化與手機資訊讀取

     編輯:關於C語言

步驟六:序列埠初始化

將以下程式碼加入專案(置於 Main 之後):

public bool InitCom(string m_port, int m_baudrate)
{
    ss_port.PortNum = m_port;
    ss_port.BaudRate = m_baudrate;
    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;
    }
}

按 F5 除錯,此階段僅開啟序列埠,尚無可見功能。

步驟七:連接按鈕——讀取手機品牌、型號、簡訊中心號

雙擊「連接」按鈕,貼上程式碼:

private void btnConnect_Click(object sender, System.EventArgs e)
{
    bool opened = InitCom(ConnectPort.SelectedItem.ToString(),
                          Convert.ToInt32(ConnectBaudRate.SelectedItem.ToString()));
    bool Connected = false;
    if (opened)
    {
        // 讀取手機品牌 AT+CGMI
        ss_port.Write(Encoding.ASCII.GetBytes("AT+CGMI\r"));
        string response = Encoding.ASCII.GetString(ss_port.Read(128));
        if (response.Length > 0)
        {
            ConnectState.Text = response.Substring(10, 7);
            Connected = true;
        }
        else
        {
            ConnectState.Text = "與手機連接不成功";
            Connected = false;
        }

        // 讀取手機型號 AT+CGMM
        ss_port.Write(Encoding.ASCII.GetBytes("AT+CGMM\r"));
        response = Encoding.ASCII.GetString(ss_port.Read(128));
        if (response.Length > 0)
        {
            ConnectState.Text += " " + response.Substring(10, 5) + " 連接中......";
            Connected = true;
        }
        else
        {
            ConnectState.Text = "與手機連接不成功";
            Connected = false;
        }

        // 讀取簡訊中心號 AT+CSCA?
        ss_port.Write(Encoding.ASCII.GetBytes("AT+CSCA?\r"));
        response = Encoding.ASCII.GetString(ss_port.Read(128));
        if (response.Length > 0)
        {
            CenterNumber.Text = response.Substring(20, 13);
            Connected = true;
        }
        else
        {
            Connected = false;
        }

        if (Connected)
        {
            btnConnect.Enabled = false;
            btnSend.Enabled = true;
        }
        else
        {
            btnConnect.Enabled = true;
            btnSend.Enabled = false;
        }
    }
}

按 F5 執行,確保手機連接正常,點擊「連接」應顯示手機型號與簡訊中心號。

圖四、連接後程式介面

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved