我正在尝试从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,但它切断了中间的消息。