serialPort.ReadExisting() не работает должным образом C# | GSM модем

Я работаю на 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 ответов

Другие вопросы по тегам