加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从GPS读取NMEA语句

发布时间:2020-12-16 01:31:48 所属栏目:百科 来源:网络整理
导读:我有一台Mio P550设备,其中包含GPS.我尝试使用SerialPort来获取NMEA句子,只需使用SerialPort.Read()即可.数据以一些奇怪的编码返回. GPS应该以ASCII格式返回NMEA句子,但事实并非如此.这是我的阅读代码: dataLength = this.serialPort.Read(buffor,Gps.BUFFO
我有一台Mio P550设备,其中包含GPS.我尝试使用SerialPort来获取NMEA句子,只需使用SerialPort.Read()即可.数据以一些奇怪的编码返回. GPS应该以ASCII格式返回NMEA句子,但事实并非如此.这是我的阅读代码:

dataLength = this.serialPort.Read(buffor,Gps.BUFFOR_LENGTH);
                Debug.WriteLine("data length: " + dataLength);

                if (dataLength > 0)
                {
                    for (int i = 0; i < dataLength; i++)
                    {
                        char c = Convert.ToChar(buffor[i]);

                        if (c == 'r' || c == 'n')
                        {
                            string data = stringBuilder.ToString();
                            Debug.WriteLine("data readed: " + data);

                            if (data.StartsWith("$GPGGA"))
                            {
                                this.OnLocationChanged(data);
                            }

                            stringBuilder.Length = 0;
                        }
                        else
                        {
                            stringBuilder.Append(c);
                        }

                        Debug.WriteLine("readed data: " + stringBuilder.ToString());
                    }

以下是我得到的样本值:
x???xf?`?x?f???xxx?x

我还有第二个设备(华硕A636N),它返回ASCII的NMEA句子,我的代码效果很好.

我与Mio设备有什么关系来获得ASCII的NMEA句子?或者我如何获取设备返回的数据的编码?我尝试使用System.Text.Encoding.xxx.GetString()中的所有类从readed字节获取字符串,但它不返回正确的数据 – 它返回类似于上面示例的数据.

解决方法

您可能需要确保根据NMEA规范的要求将串行端口的波特率设置为 4800 baud.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读