数据详解:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh

<1> UTC 时间,hhmmss(时分秒)格式

<2> 定位状态,A=有效定位,V=无效定位

<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<4> 纬度半球N(北半球)或S(南半球)

<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<6> 经度半球E(东经)或W(西经)

<7> 地面速率(000.0~999.9节,前面的0也将被传输)

<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)

<9> UTC 日期,ddmmyy(日月年)格式

<10> 磁偏角(000.0~180.0度,前面的0也将被传输)

<11> 磁偏角方向,E(东)或W(西)

<12> 模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

"$GPRMC," + "060949.000" +",A,3150.7815,N,11711.9239,E,2.87,314.13," + "050314" + ",,,D*69"

"""

$GNRMC,092846.400,A,3029.7317,N,10404.1784,E,000.0,183.8,070417,,,A*73

$GNRMC,

092846.400, // UTC时间,hhmmss.sss(时分秒.毫秒)格式

A, // 定位状态,A=有效定位,V=无效定位

3029.7317,N, // 纬度

10404.1784,E, // 经度

000.0, // 地面速率

183.8, // 地面航向

070417, // UTC日期

, // 磁俯角

, // 磁方向角

A*73 // 模式指示

"""

#coding:utf-8

#!/usr/bin/python3

import sys,os

import re

import logging

import datetime

#add path for import module

filePath = os.getcwd()

sys.path.append(filePath)

from Com_Utilities.FlexConfig import ResourcesConfig as flexConfig

from Com_Utilities.Uart import CSerial as Uart

from Com_Utilities.ResourceHandler import resourceHandler as Resource

__all__ = ["GPS_Fake"]

"""

GPS data packet format:

数据详解:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh

<1> UTC 时间,hhmmss(时分秒)格式

<2> 定位状态,A=有效定位,V=无效定位

<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<4> 纬度半球N(北半球)或S(南半球)

<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<6> 经度半球E(东经)或W(西经)

<7> 地面速率(000.0~999.9节,前面的0也将被传输)

<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)

<9> UTC 日期,ddmmyy(日月年)格式

<10> 磁偏角(000.0~180.0度,前面的0也将被传输)

<11> 磁偏角方向,E(东)或W(西)

<12> 模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

"$GPRMC," + "060949.000" +",A,3150.7815,N,11711.9239,E,2.87,314.13," + "050314" + ",,,D*69"

time format: 080650.000 & 08:06:50.000

date format: 311219 & 2019/12/31

"""

"""

$GNRMC,092846.400,A,3029.7317,N,10404.1784,E,000.0,183.8,070417,,,A*73

$GNRMC,

092846.400, // UTC时间,hhmmss.sss(时分秒.毫秒)格式

A, // 定位状态,A=有效定位,V=无效定位

3029.7317,N, // 纬度

10404.1784,E, // 经度

000.0, // 地面速率

183.8, // 地面航向

070417, // UTC日期

, // 磁俯角

, // 磁方向角

A*73 // 模式指示

"""

class GPS_Fake(Uart):

def __init__(self, userName, userID):

self.resource = Resource();

# serial port message: [0]-port, [1]-baud

serialportMsg = self.resource.get_Serial_Or_IP(userName,userID)

Uart.__init__(self, serialportMsg[0], int(serialportMsg[1]), 10)

self.Serial_Create()

def __GPS_CheckSum__(self, string ):

checksum = 0

val = bytes(string)

for index in range(len(val)):

checksum ^= val[index]

return checksum

#time format: 080650.000 & 08:06:50.000

def GPS_CurrentFormatTime(self):

now_time = datetime.datetime.now()

strTime = now_time.strftime("%H%M%S.%f")

str = strTime.split(‘.‘)

micSecond = str[1][0:3]

nowTime = str[0] + "." + micSecond

return nowTime

#time format: 260419 & 2019/04/26

def GPS_CurrentFormatDate(self):

now_time = datetime.datetime.now()

covYear = now_time.year-2000

nowDate = "%02d%02d%02d" %(now_time.day,now_time.month,covYear)

return nowDate

def GPRMC_SendMessage(self, time, date):

gpsMessage = "GPRMC," + time + ",A,3150.7815,N,12123.5344,E,2.87,314.13," + date + ",,,D"

checkSum = self.__GPS_CheckSum__(gpsMessage)

Message = "$" + gpsMessage + "*" + str(checkSum, encoding = "utf8")+ "\r\n"

self.Serial_WriteString(Message)

def GPRMC_SendMessage(self, time, date, latitude, longitude):

gpsMessage = "GPRMC," + time + ",A," + latitude +",N,"+ longitude + ",E,2.87,314.13," + date + ",,,D"

checkSum = self.__GPS_CheckSum__(gpsMessage)

Message = "$" + gpsMessage + "*" + str(checkSum, encoding = "utf8")+ "\r\n"

self.Serial_WriteString(Message)

def GNRMC_SendMessage(self, time, date):

gpsMessage = "GNRMC," + time + ",A,3150.7815,N,12123.5344,E,2.87,314.13," + date + ",,,A"

checkSum = self.__GPS_CheckSum__(gpsMessage)

Message = "$" + gpsMessage + "*" + str(checkSum, encoding = "utf8")+ "\r\n"

self.Serial_WriteString(Message)

def GNRMC_SendMessage(self, time, date, latitude, longitude):

gpsMessage = "GNRMC," + time + ",A," + latitude +",N,"+ longitude + ",E,2.87,314.13," + date + ",,,A"

checkSum = self.__GPS_CheckSum__(gpsMessage)

Message = "$" + gpsMessage + "*" + str(checkSum, encoding = "utf8")+ "\r\n"

self.Serial_WriteString(Message)

def GPS_Stop(self):

self.Serial_Close()

#test example

if __name__ == ‘__main__‘:

gps_test = GPS_Fake()

gps_test.Serial_Create()

原文:https://www.cnblogs.com/mftang2018/p/10885239.html

python模拟gps定位_python 模拟 GPS, $GPRMC $GPRMC相关推荐

  1. python模拟gps定位_python解析nmea0183协议获取GPS定位信息

    python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...

  2. python比较数据工具_Python模拟数据工具哪些比较好用

    今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch. 为什么要模拟数据? 我们的应用中有一些部分需要依赖外部的库或对象.为了隔离开这部分,我们需要代替这些 ...

  3. python生成字母图片_Python 模拟动态产生字母验证码图片功能

    模拟动态产生字母验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image ...

  4. python 登录知乎_python模拟登陆知乎(最新版)

    原因 为啥要写这一篇文章呢? (主要是qq群内有人在模拟登陆知乎,一直不成功)然后我抓包看了下,发现知乎登陆页已经改版了,而且难度大大提高了. 开始抓包 首先内,还是打开知乎首页,然后输入账号密码,登 ...

  5. python模拟全部代码_Python模拟登陆实现代码

    下面分享一个使用Python进行网站模拟登陆的小例子. 原理 使用Cookie技术,绕开网站登录验证.要使用到cookielib库.流程: 创建一个保存Cookie的容器,可选的有CookieJar, ...

  6. python 安卓模拟点击_python模拟点击在ios中实现的实例讲解

    我们都知道因为操作系统的不同,很多游戏区分为安卓和苹果两个版本.那么之前学会python模拟点击的小伙伴开始担心,如果手机是ios版本那还能使用吗?这个问题小编进行了测试,小伙伴们完全不用忧虑ios版 ...

  7. python支持什么操作方式_python模拟点击常用的操作方法有哪些?

    我们在模拟点击上已经准备好的使用的工具库,以及学了一些简单的代码操作体验了重复的循环语句.有些小伙伴已经迫不及待想要用python模拟点击进行一些实用的操作,类似鼠标的自动点击上.这里小编想说先不着急 ...

  8. python如何模拟键盘输入_python 模拟键盘输入

    python 模拟键盘输入 一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUs ...

  9. python登录验证程序_Python模拟用户登录验证

    本文实例为大家分享了Python模拟用户登录验证的具体代码,供大家参考,具体内容如下 1.功能简介 此程序模拟用户登录验证的过程,实现用户名输入.黑名单检测.用户有效性判别.密码输入及验证等.用户在3 ...

  10. python编程手机模拟点击_python模拟点击玩游戏的实例讲解

    小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...

最新文章

  1. Spring Boot加载配置文件
  2. xmake新增对WDK驱动编译环境支持
  3. Linux下undefined reference to ‘pthread_create’问题解决
  4. TCP/IP详解--TCP/IP中三次握手 四次握手状态分析
  5. 有向图的拓扑排序的理解和简单实现(Java)
  6. Typescript 精彩履历
  7. ABAP 如何实现屏幕字段不可输入
  8. 统计学习方法 pdf_机器学习的入门宝典!《统计学习方法》的代码实现
  9. Spring Data JPA教程:简介
  10. 中小企业ERP实施的项目管理
  11. Pytorch使用Tensorboard记录loss曲线 (Tensorboard学习二)
  12. 未给员工足额缴纳公积金!董明珠曾豪言:每人一套房不需要公积金
  13. 特斯拉被曝储存大量未加密个人数据,你的隐私正在“裸奔”!
  14. 小规模纳税人季度申报流程指导
  15. docker安装prestodb大数据查询引擎
  16. App提交审核被拒的原因汇总
  17. Excel如何实现间隔插入空白行
  18. go语言求时间的差值(按天数算)
  19. linux服务器端 postfix+php邮件发送+发件人代发修改配置
  20. 使用Labelimg打标签

热门文章

  1. cisco将计算机配置为vlan2,Cisco交换机 VLAN 的建立与端口分配
  2. 电工杯B题小代码分享
  3. 安徽大学江淮学院计算机作业,安徽大学江淮学院
  4. Qt抽奖圆盘(减速效果)
  5. 数据库 SQL Server2012安装步骤详解
  6. HTML代码页面无法跳转为什么,html跳转新页面代码_html页面跳转代码
  7. Win10安装CUDA
  8. 数据库之DB2数据库备份
  9. java往json里添加对象_将新数组元素添加到JSON对象
  10. Nfine框架基本使用--初学者的总结