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