serialPort.ReadExisting()无法正常工作GSM调制解调器

时间:2018-10-20 07:32:26

标签: c# serial-port gsm at-command

am在GSM调制解调器上工作。在我的项目中使用AT COMMAND和C#。 有时它的工作正常。有时不是。在断点期间,它的工作正常。 这是我的代码。

string Opertorname = "";
                string PortStatus = "";
                SerialPort _serialPort = new SerialPort(portName, 115200);
                _serialPort.Parity = Parity.None;
                _serialPort.DataBits = 8;
                _serialPort.StopBits = StopBits.One;
                _serialPort.Handshake = Handshake.XOnXOff;
                string modemoutput= "";
                _serialPort.DtrEnable = true;
                _serialPort.RtsEnable = true;
                _serialPort.NewLine = Environment.NewLine;
                _serialPort.Encoding = Encoding.GetEncoding("iso-8859-1");
                Thread.Sleep(200);
                _serialPort.Open();
                Thread.Sleep(200);
                _serialPort.WriteLine("AT" + "\r");
                Thread.Sleep(300);
                modemoutput= _serialPort.ReadExisting().ToString();
                if (modemoutput.Contains("OK"))
                {
                    PortStatus = "Connected";
                }
                else
                {
                    PortStatus = "Failed";
                }
                Thread.Sleep(1000);
                _serialPort.WriteLine("AT+COPS?" + "\r");
                Thread.Sleep(1000);
                string inputData = "";
                string inData = _serialPort.ReadExisting();
                richTextBox1.Invoke((MethodInvoker)delegate
                {
                    richTextBox1.Text += inData+"\n";

                });

一段时间后,我恢复了如下所示的正确输出

AT+COPS?
 +COPS: 0,0,"AirTel"

有时输出错误,如下所示

AT+õ
AT+þ 

注意:我正在backgroundworker上运行此代码

0 个答案:

没有答案