摘 要: 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进行处理,非常感谢!