我有以下代码片段,我用它来模拟使用AT命令在PC上作为拨号器的呼叫。
我遇到的问题是,有时,对于拨打的随机数,即使用户点击"挂断"在Windows窗体上的按钮,呼叫仍然继续在后台拨号。
实际的拨号电话是这段代码:
SerialPort po = new SerialPort();
po.PortName = ConfigurationManager.AppSettings.Get("modemPort");
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.WriteLine("ATD" + phoneNumber + ";\r");
然后单击“挂断”按钮时,我有以下代码:
po.DiscardInBuffer();
po.DiscardOutBuffer();
po.Close();
这有时会使呼叫在后台拨号。
我甚至添加了以下内容来测试它,但结果仍然相同。
po.WriteLine("ATH" + "\r");
po.WriteLine("ATH0;\r");
po.WriteLine("ATH+CHUP;\r");
有什么想法吗?