百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

第十三课python来写串口助手-gps数据解析(二)

off999 2024-09-27 13:56 51 浏览 0 评论

1、上一节课已经讲完如何来验证GPS数据,不管是串口、还是usb或者别的通讯方式,数据必须要校验正确才能使用,这节课我们来解析GPS数据,依然以推荐定位信息为例。

2、数据信息如下:

$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54

我们可以看到数据都是以’,’为划分,而且GPS数据都是字符串数据,Python的字符串刚好有split函数,直接将数据划分为数组,同样GPS的数据有很多种,我们做好兼容添加,加入代码,在gps.py中加入代码:

def GetGpsDataList(self,head,buff):

data = []

if head=="$GPGSA": #当前卫星信息

pass

elif head=="$GPRMC":#推荐定位信息

data = self.getrmc(buff)

else:

pass

return data

def getrmc(self,buff):

rmc = [0 for x in range(0, 9)]

wei = ''

weibanqiu = ''

jing = ''

jingbanqiu = ''

dingwei = ''

utcriqi = ''

utctime = ''

speed=''

if not self.IsNullOrEmpty(buff[1]):

utctime = buff[1]

if not self.IsNullOrEmpty(buff[2]):

dingwei=buff[2]

if not self.IsNullOrEmpty(buff[3]):

wei = buff[3]

if not self.IsNullOrEmpty(buff[4]):

weibanqiu = buff[4]

if not self.IsNullOrEmpty(buff[5]):

jing = buff[5]

if not self.IsNullOrEmpty(buff[6]):

jingbanqiu = buff[6]

if not self.IsNullOrEmpty(buff[7]):

if len(buff[7])>0:

speed = str(float(buff[7]) * 1.15077945)

else:

speed='0'

if not self.IsNullOrEmpty(buff[9]):

utcriqi = buff[9]

if len(dingwei) > 0:

if dingwei == 'v':

self.isrmc = False

elif dingwei == 'A':

self.isrmc = True

rmc[0] = 'RMC'

rmc[1] = wei

rmc[2] = weibanqiu

rmc[3] = jing

rmc[4] = jingbanqiu

rmc[5] = utctime

rmc[6] = utcriqi

if self.isrmc:

rmc[7] = '1'

else:

rmc[7] = '0'

rmc[8] = speed

print("rmc:",rmc)

return rmc

当然数据在运行的时候,有可能出现数据无效的情况或者根本没有信息内容,所以增加一个判断数据格式的函数:

def IsNullOrEmpty(self,s):

isok=True

if s is not None and len(s)>0:

isok=False

return isok

来输入调用代码:

g=gps()

sdata="$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54\r\n".encode('utf-8')

sl=g.Get_gps_data(sdata)

for e in sl:

if g.CheckGpsBuff(e):

el=e.split(',')

g.GetGpsDataList(el[0],el)

运行一下:

我们就实现了数据的解析,判定是否定位就只需要从数组中取出第8位的数据,判断是1就是定位,如果是0就没有定位。

3、把代码加入到uartform.py中:

文件头引入:from gps import gps

在initdata增加:self.g=gps()

将callbacklog改为如下代码:

运行一下:

在写串口内粘贴数据:

$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54$

如下所示,点击发送:

GPS数据就解析完毕,并在串口数据打印窗中显示,下一节课,打包python代码为EXE文件,完结串口篇。

相关推荐

桌面语言栏不见了怎么办(桌面语言栏不见了怎么办呢)

如果您的语言栏在某个应用程序或操作系统中消失了,您可以尝试以下方法来恢复它。首先,您可以检查操作系统的设置,查看语言和区域选项是否正确设置。如果设置正确,但语言栏仍然不可见,您可以尝试重新启动计算机,...

怎么装win98(怎么装win7系统教程)

如何安装windows98  一、具体安装步骤  备份好重要文件之后,就可以安装windows98了。  第一步:启动安装程序。  用户如果原来已安装了windows95/97/98,现在拟对其进行升...

u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
app下载官网(欧歌影视app下载官网)

需要先进入佳能官网的下载页面,选择手机APP下载选项,根据手机操作系统的不同选择相应的下载链接即可成功下载佳能手机APP。下载链接通常会在网站的首页或者是产品页面上提供。总的来说,下载佳能手机APP非...

qq空间相册密码怎么破
  • qq空间相册密码怎么破
  • qq空间相册密码怎么破
  • qq空间相册密码怎么破
  • qq空间相册密码怎么破
互盾手机数据恢复软件下载(互盾数据恢复软件可以免费使用一次吗)

要的。手机如果可以连电脑当做u盘识别就可以用恢复软件。比如用安易。至于能不能出现盘符,可以网上查一下你这个手机型号可不可以,或者问问手机售后。1、安装互盾安卓恢复大师,运行软件后,将手机连接到电脑上...

电脑wifi突然变成红叉搜不到

1、WiFi功能未开启:很多时候出现WiFi红色叉叉图标,可能就是无线WiFi的开关或者按键没有开启导致的。一般的笔记本键盘上面都有一个F5开启WiFi的功能,有的需要结合Fn功能键一起按。每个品牌的...

正版win10系统一键重装官网(一键装机win10正版系统)

1、下载小白一键重装软件,打开软件后选择我们要安装的系统。?2、接着小白给出我们一些常用的电脑软件,大家可根据自己需要进行下载。?3、然后就是我们就耐心的等待系统镜像的下载吧。?4、部署环境完成后我们...

windows8系统自己怎么装(如何安装windows 8)

要在线安装Windows8系统,您可以按照以下步骤操作:1.准备安装媒体:在您的计算机上打开一个现代的网络浏览器(如Chrome、Firefox或Edge),然后前往Microsoft...

win10登录选项没有密码设置(win10没有登陆密码框)

是该电脑没设置密码,所以登录时看不到密码选项。电脑开机后,要设置密码,设置完成后,重新启动电脑,就会出现密码登录框,输入密码并正确后,电脑才能正常进入系统。1、首先进入安全模式;进入安全模式教程:2、...

小白刷机官网(小白刷机助手)

平板的话,和处理器有关,如果处理器只支持win8是不能刷win10的。

windows关闭端口命令(windows 关端口)

1、点击控制面板。2、进入控制面板,然后点击系统和安全。3、进入系统和安全,点击Windows防火墙。4、进入Windows防火墙,点击左侧的高级设置。5、进入防火墙高级设置,点击入站规则。6、点击入...

360免费wifi老版本(360免费wifi2019下载安装)
  • 360免费wifi老版本(360免费wifi2019下载安装)
  • 360免费wifi老版本(360免费wifi2019下载安装)
  • 360免费wifi老版本(360免费wifi2019下载安装)
  • 360免费wifi老版本(360免费wifi2019下载安装)
无线wifi路由器怎么安装(请问无线路由器怎么安装)

安装的方法/步骤:1、怎么安装无线路由器呢?首先把网线的其中一头插入进光猫里面。2、接着用网线的另一头插入进无线路由器的蓝色接口处,这样就安装好无线路由器啦。3、点击打开电脑浏览器,输入路由器设置地址...

fat32格式化精灵(格式化fat32格式工具)

内存卡格式化一般有两种方式:第一种是直接将内存卡插入手机的卡托,然后进入设置——运行及内存管理,点击格式化SD卡即可完成。当然有一些手机是不支持外置的内存卡插入,这就需要用OTG线插入手机,点击手机的...

取消回复欢迎 发表评论: