Я пытаюсь прочитать время из сообщений GPS, это код:
public void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string data = gpsPort.ReadExisting();
string[] strArr = data.Split('$');
for (int i = 0; i < strArr.Length; i++)
{
string strTemp = strArr[i];
string[] lineArr = strTemp.Split(',');
if (lineArr[0].Equals("GPGGA"))
{
try
{
this.Invoke(new MethodInvoker(delegate ()
{
string time = lineArr[1].Remove(6);
time = time.Insert(2, ":");
time = time.Insert(5, ":");
labelGPSTime.Text = time;
}));
}
catch (Exception ex)
{
string err = ex.Message;
}
}
}
}
Мой код умеет читать время, когда я только запускаю программу, но не после.Если я использую точку останова и прохожу ее шаг за шагом, она работает, но не тогда, когда она работает нормально.Я попытался использовать тот же код с таймером вместо SerialPort_DataReceived, но он обрезает сообщения в середине.