我想建立一個簡單的應用程序,返回通過調制解調器呼叫的號碼,但我似乎只是從調制解調器接收數據的第一行。C#電話號碼接收器
當我運行超級終端,通過AT#CID = 1級的命令,環數,我得到一個完整的輸出:
OK
DATE = 0314
TIME = 1111
NMBR = 4936
NAME =斯圖爾特Ë
環
在我的應用程序中,我似乎只收到包含「確定」部分的第一部分。任何幫助我在做什麼錯誤或缺少?
代碼:
public partial class Form1 : Form
{
public SerialPort port = new SerialPort("COM3", 115200,Parity.None,8,StopBits.One);
public String sReadData = "";
public String sNumberRead = "";
public String sData = "AT#CID=1";
public Form1()
{
InitializeComponent();
}
private void btnRun_Click(object sender, EventArgs e)
{
SetModem();
ReadModem();
MessageBox.Show(sReadData);
}
public void SetModem()
{
if (port.IsOpen == false)
{
port.Open();
}
port.WriteLine(sData + System.Environment.NewLine);
port.BaudRate = iBaudRate;
port.DtrEnable = true;
port.RtsEnable = true;
}
public string ReadModem()
{
try
{
sReadData = port.ReadExisting().ToString();
return (sReadData);
}
catch (Exception ex)
{
String errorMessage;
errorMessage = "Error in Reading: ";
errorMessage = String.Concat(errorMessage, ex.Message);
errorMessage = String.Concat(errorMessage, " Line: ");
errorMessage = String.Concat(errorMessage, ex.Source);
MessageBox.Show(errorMessage, "Error");
return "";
}
}
private void btnExit_Click(object sender, EventArgs e)
{
port.Close();
Close();
}
}
}
不知道這是否是問題,但在MSDN上,'readexisting'似乎返回一個字符串反正所以不知道多少'的ToString()'需要 – Sayse 2013-03-14 11:30:26
你在超級終端使用哪些設置?確保在你的應用程序中使用相同的。 – ellak 2013-03-15 02:30:48
你不妨看看我的問題http://stackoverflow.com/questions/5897916/callerid-detection-doesnt-work-with-some-phones – Marshal 2013-03-15 06:23:01