【发布时间】:2023-04-01 01:28:01
【问题描述】:
我想使用 C# 从 GSM 调制解调器拨打电话。我已经编写了以下代码。但我无法拨打电话。请告诉错误是什么。还请告诉我如何处理来自调制解调器的代码中的响应,以便我可以显示“呼叫连接”或“无法连接”之类的消息。
private void button1_Click(object sender, EventArgs e)
{
SerialPort po = new SerialPort();
po.PortName = "COM3";
po.BaudRate = int.Parse( "9600");
po.DataBits = Convert.ToInt32("8");
po.Parity = Parity.None;
po.StopBits = StopBits.One;
po.ReadTimeout = int.Parse("300");
po.WriteTimeout = int.Parse("300");
po.Encoding = Encoding.GetEncoding("iso-8859-1");
po.Open();
po.DtrEnable = true;
po.RtsEnable = true;
po.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
po.Write("ATD9030665834;");
}
public void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (e.EventType == SerialData.Chars)
{
//what to write here to display the response??
}
}
【问题讨论】:
-
你能说出 po.Open(); 的返回值是多少吗?成功了吗??
-
是的,端口正在打开。但执行此代码没有给出任何结果
-
那你收到了什么?如果数据到达调制解调器,它将返回“OK”或“NACK”或类似的东西?您使用的是哪种 GSM 调制解调器?它真的需要握手(RTS-CTS)吗?阅读数据表。同时增加读取超时。
-
调制解调器在超级终端中工作正常。我不知道如何处理代码中的响应。需要帮助,这样我才能知道我是否从调制解调器得到任何响应。
-
我是新手。调制解调器是我公司自己制造的。它使用超级终端进行了测试。但我不知道如何在 C# 编码中将这些命令发送到 gsm 调制解调器。
标签: c# serial-port gsm serial-communication telecommunication