‍一、相关概念

1.GPS(Global Positioning System):全球卫星定位系统

美国的24颗卫星不停地给地面发GPS信号,只要有一台GPS接收设备,就能定位出你所在的位置高度和速度了,它与电子地图的结合就是通常所说的GPS功能

二、连接方式

1.串口:计算机通常通过串口读取gps数据(蓝牙的gps也使用虚拟串口)

2.步骤:

1)普通串口设备

打开串口->设置串口->读取数据->恢复串口->关闭串口

2)蓝牙设备

开启蓝牙->与gps设备连接->打开串口->读取数据->关闭串口->与gps设备断开->关闭蓝牙

3)注意

连接gps蓝牙设备如需要连接密码,设置为0000(蓝牙默认密码)

用蓝牙gps设备一般不用对串口进行设置

三、gps数据格式

1.从串口中读出的是文本数据,每次读出一行,一般情况下,一秒种能收到多行数据

2.有效数据以$GP开头,分为$GPGGA、$GPGSA、$GPGSV、$GPRMC…

3. $GPGGA 是GPS定位的主要数据,通过解析它得到经度、纬度、海拔高度、时间、卫星使用情况等基本信息,其中每项用逗号分隔,共十四个逗号,举例如下:

$GPGGA,064746.000,4925.4895,N,00103.9255,E,1,05,2.1,-68.0,M,47.1,M,,0000*4F

$GPGGA(语句标识头),064746.000(UTC时间),4925.4895(纬度),N(纬度半球),00103.9255(经度),E(经度半球),1(定位质量指示),05(使用卫星数量),2.1(水平精确度),-68.0(海拔高度),M(高度单位),47.1(大地水准面高度),M(高度单位),(差分 GPS数据期限),0000(差分参考基站标号)*4F(校验)(结束标记回车换行)

四、例程

1.功能描述

假设蓝牙模块与gps已连接成功,蓝牙的虚拟串口设备是ttyB2

实现从蓝牙设备连接读取100条数据,解析后(经度/纬度/海拔/卫星个数)显示出来

2.代码

#include

#include

#include

#include

#include

#include

void parseData(char *buf)

{

int ret, nQ, nN, nB, nC;

char cX, cY, cM1, cM2;

float fTime, fX, fY, fP, fH, fB, fD;

if (buf == NULL)

return;

ret = sscanf(buf,

"$GPGGA,%f,%f,%c,%f,%c,%d,%02d,%f,%f,%c,%f,%c,%f,%04d%02x",

&fTime, &fX, &cX, &fY, &cY, &nQ, &nN, &fP, &fH, &cM1, &fB,

&cM2, &fD, &nB, &nC);

printf("x: %c %f, y: %c %f, h %f, satellite: %d\n",

cX, fX, cY, fY, fH, nN);

}

int main(int argc, char **argv)

{

int fd, i, ret;

char buf[1024] =

"$GPGGA,064746.000,4925.4895,N,00103.99255,E,1,05,2.1,-68.0,M,47.1,M,,0000*4F\r\n"; // 此处赋值用于测试

if ((fd = open("/dev/ttyB2", O_RDWR)) == -1)

return -1;

// set fd: tcsetattr... 直接连接串口的设备需要在此设置波特率

for (i = 0; i < 100; i++)

{

ret = read(fd, buf, 1024);

if (ret > 1)

{

if (strstr(buf, "GPGGA") != NULL)

parseData(buf);

}

}

// restore fd: tcsetattr... 直接连接串口的设备需要在此恢复波特率

close(fd);

}

串口读取gps信息php,Linux串口读取GPS数据相关推荐

  1. Linux下读取smBIOS源码,Linux下读取SMBIOS信息

    来源:http://www.linuxde.net/2013/02/12499.html uefi shell下使用smbiosview linux下使用dmidecode 或者amidecode(a ...

  2. linux串口上网的简单实现,Linux串口上网的简单实现(3)

    方法rebuild_header().Linux2.x使用的rebuild_header()例程在本文的附加源程序中,这里不再说明. 编写用户空间串口通信程序 控制串口的server应用程序完成非常简 ...

  3. python中读取word信息_Python实现批量读取word中表格信息的方法

    本文实例讲述了Python实现批量读取word中表格信息的方法.分享给大家供大家参考.具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个py ...

  4. linux虚拟机系统如何读取u盘文件,linux如何读取U盘

    sclzwj 于 2010-01-05 18:55:22发表: 学习了. sclzwj 于 2010-01-05 18:54:21发表: 学习了. zhmymichael 于 2010-01-05 1 ...

  5. linux串口进控制台加密码,linux 串口serial设置登陆密码

    一. 如果是有这个文件 vi /etc/inittab 打开 修改/etc/inittab文件 把 ::askfirst:-/bin/sh tty2::askfirst:-/bin/sh 等全部注掉 ...

  6. linux通过串口读取文件,Linux 串口读写(二)

    例子 下面是一个简单的读取串口数据的例子,使用了上面定义的一些函数和头文件 /************************************************************* ...

  7. 身份证读取设备开发解决方案:2、Android下通过usb转串口读取身份证信息

    身份证读取设备开发解决方案:2.Android下通过usb转串口读取身份证信息 文章目录 身份证读取设备开发解决方案:2.Android下通过usb转串口读取身份证信息 1. 前言 2. 准备 3. ...

  8. Linux 串口编程三 使用termios与API进行串口程序开发

    在 termios 结构体以及内部终端控制标志中,并非所有的参数对于实际的物理串口都是有效的,在使用过程中也不需要对于所有标志的作用都有所理解.事实上,快速掌握一项技术的核心点也是一种学习能力.对于使 ...

  9. Linux 串口编程二 深入了解 termios

    前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...

  10. Linux 串口编程四 串口设备程序开发

    Linux 串口编程和程序相对来说是很简单的,之所以用博客连载来展示,主要是想在学会使用的基础上掌握相关背景,原理以及注意事项.相信在遇到问题的时候,我们就不会对于技术的概念和 API 的使用浅尝辄止 ...

最新文章

  1. 抓包工具 tcpdump 用法说明
  2. 百度开放AI应用学习!
  3. 基于double-check模式尝试将消息放到batch中
  4. 信号处理之filter去噪
  5. Mp4v2封装H264+AAC为MP4
  6. pytorch 查看当前学习率_pytorch实现查看当前学习率
  7. lvm-snapshot:基于LVM快照的备份
  8. 点分治经典_动态点分治
  9. 在asp.net中备份还原SQL Server数据库
  10. 腾讯视频下载下来的视频在哪里
  11. c++语言代码游戏,c++小游戏(贪吃蛇)源程序
  12. snmpset对象不可写_别再问了,好吗?Java字符串一定是不可变的
  13. 常见摄像机外部接口类型
  14. 天霆:桌面虚拟化正处于导入期
  15. Centos7修改系统默认启动项
  16. 移动金融客户端应用软件备案、中国支付清算协会“聚合支付”业务备案、工业和信息化部网站备案系统(ICP备案)
  17. 管理员必须知道的RADIUS认证服务器的部署成本
  18. 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
  19. 谈谈对Python爬虫的理解
  20. ecshop系统下载

热门文章

  1. java高级能力_java高级技术工程师该具备哪些能力?
  2. java前后端开发文档汇总
  3. NOIP2013普及组初赛
  4. 网络安全--文件分离工具 foremost
  5. 【脑洞探究】等公交该站在哪儿比较合适?——关于减少吸入空气污染物(pm2.5 or 雾霾等)而选择合适等候公交车位置的探究
  6. Android seekbar进度正负值
  7. 旭荣管理软件怎么修改小票内容_美萍超市管理软件——让管理回归轻松
  8. python制作的炫酷动画_【实战】这个炫酷的播放粒子效果,你也可以学会!使用Web动画API制作...
  9. 打印流(处理流)——PrintStream,PrintWriter
  10. mysql 分割后循环,mysql实现字符串分割SPLIT函数的四种方法