android通过串口获取GPS,利用C#通过串口提取GPS定位信息

摘 要: GPS定位信 的提取可以用VB,VC实现,但实际应用时会比较难用。利用C#语言提供的SerialPort类非常简单地实现了GPS定位信 的提取。

关键词: GPS定位信 ;C#;SerialPort

全球定位系统(GPS)是一种基于空间卫星导航系统,可在地球上和地球附近提供全天候的位置和时间信息的服务。GPS系统具有高效率、多功能、高精度、操作简便、应用广泛等特点。因此,GPS不仅诸多民用领域广泛应用,在军事领域方面应用更为广泛。

1 GPS信 的格式

2 利用C#通过串口提取GPS信息

作为一个基本的串口通信程序,程序需要包含串口选择,波特率选择,打开,关闭,接受数据,显示。

下面开始具体讲解:

第一步,用VS2010创建一个基于C#的winForm项目,并设计界面。

第二步,引入SerialPort的命名间.using System.IO.Ports,

并实例化串口对象private SerialPort my = new SerialPort(),

定义存储GPS文本信息的变量string gpstext = “”。

第三步,添加窗体初始化函数。

第四步:设置串口的端口 ,波特率,打开串口。并设计串口接收到数据后的处理程序。

private void buttonOk_Click(object sender, EventArgs e)

{

my.PortName=comboBox1.SelectedItem.ToString();//设置串口端 my.BaudRate=int.Parse(comboBox2.Text); my.Open();

my.DataReceived+=

my_DataReceived;

}

private void my_DataReceived(object sender, SerialDataReceivedEventArgs e)//串口接收数据事件函数

{

gtext = gtext+ my.ReadExisting(); if(gtext.End

SWith(“\r\n”))

{

BeginInvoke(newEventHandler(Update_Data));//执行Update_Data函数

}}

double long1;//存储距离

private void Update_Data(object sender,

EventArgs e)

{string[] ginfo = gtext.Split(‘,’);//按照逗 分割字符串,并把分割结果 存入字符串数组中。以下是提取时间日期等信 ,其他信息可以按此方法提取。

for (int i = 0; i < ginfo.Length; i++)

{if (ginfo[i] == “$GPRMC”)//检索数据帧。

{if (ginfo[i+2] == “V”)

textBox1.Text = ginfo[i+2]+”已定位”;

if (ginfo[i+2]==”A”)

textBox1.Text=ginfo[i+2]+”未定位”;

}}}

gtext=””;//清空字符串。

}

第五步:添加退出程序代码

3 连接设备并运行程序

把GPS76的输出设置为NEMA,然后连接到电脑的串口上,打开GPS76,待GPS搜到3颗以上的卫星后,运行程序。程序运行后结果如图1所示:

4 结论

参考文献:

[1]徐绍铨等,GPS测量原理及应用[M].武汉:武汉测绘科技大学出版 ,1998.126-133.

[2]葛爱学、罗大成、廖守亿、刘志国,基于VC++的GPS软件接收机设计[J].电讯技术,2010,1(50):8-13.

许海峰(1987-),男,硕士研究生,专业方向为信 与信息处理;顔鹏(1987-),男,硕士研究生,专业方向为信 与信息处理;苏仙鹤(1986-),女,硕士研究生,专业方向为信 与信息处理。

相关资源:GLONASS卫星位置计算与程序实现_葛奎_glonass_卫星位置__matlab…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月23日
下一篇 2021年4月23日

相关推荐