从GPS设备读取时间

时间:2018-05-25 08:18:52

标签: c# gps serial-port

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

0 个答案:

没有答案