【Python】WHEELTEC GPS G60主代码读取传感器数据代码(Windows系统)
【Python】WHEELTEC惯导IMU主代码读取传感器数据代码
Windows系统,直接输入串口号即可
读取设备的移动速度(km/h)
注:该GPS传感器需要在室外条件运行,室内可能接收不到信号。
# coding: utf-8
# last modified:20231031
import time
import serial
import reutctime = ''
lat = ''
ulat = ''
lon = ''
ulon = ''
numSv = ''
msl = ''
cogt = ''
cogm = ''
sog = ''
kph = ''
gps_t = 0#ser = serial.Serial("/dev/wheeltec_gps", 9600)
ser = serial.Serial("COM4", 9600)#Windows系统直接输入串口号即可if ser.isOpen():print("GPS Serial Opened! Baudrate=9600")
else:print("GPS Serial Open Failed!")def Convert_to_degrees(in_data1, in_data2):len_data1 = len(in_data1)str_data2 = "%05d" % int(in_data2)temp_data = int(in_data1)symbol = 1if temp_data < 0:symbol = -1degree = int(temp_data / 100.0)str_decimal = str(in_data1[len_data1-2]) + str(in_data1[len_data1-1]) + str(str_data2)f_degree = int(str_decimal)/60.0/100000.0# print("f_degree:", f_degree)if symbol > 0:result = degree + f_degreeelse:result = degree - f_degreereturn resultdef GPS_read():global utctimeglobal latglobal ulatglobal longlobal ulonglobal numSvglobal mslglobal cogtglobal cogmglobal sogglobal kphglobal gps_tif ser.inWaiting():if ser.read(1) == b'G':time.sleep(.05) if ser.inWaiting():if ser.read(1) == b'N':if ser.inWaiting():choice = ser.read(1)if choice == b'G':if ser.inWaiting():if ser.read(1) == b'G':if ser.inWaiting():if ser.read(1) == b'A':#utctime = ser.read(7)GGA = ser.read(70)GGA_g = re.findall(r"\w+(?=,)|(?<=,)\w+", str(GGA))# print(GGA_g)if len(GGA_g) < 13:print("GPS no found")gps_t = 0return 0else:utctime = GGA_g[0]# lat = GGA_g[2][0]+GGA_g[2][1]+'°'+GGA_g[2][2]+GGA_g[2][3]+'.'+GGA_g[3]+'\''lat = "%.8f" % Convert_to_degrees(str(GGA_g[2]), str(GGA_g[3]))ulat = GGA_g[4]# lon = GGA_g[5][0]+GGA_g[5][1]+GGA_g[5][2]+'°'+GGA_g[5][3]+GGA_g[5][4]+'.'+GGA_g[6]+'\''lon = "%.8f" % Convert_to_degrees(str(GGA_g[5]), str(GGA_g[6]))ulon = GGA_g[7]numSv = GGA_g[9]msl = GGA_g[12]+'.'+GGA_g[13]+GGA_g[14]#print(GGA_g)gps_t = 1return 1elif choice == b'V':if ser.inWaiting():if ser.read(1) == b'T':if ser.inWaiting():if ser.read(1) == b'G':if gps_t == 1:VTG = ser.read(40)VTG_g = re.findall(r"\w+(?=,)|(?<=,)\w+", str(VTG))cogt = VTG_g[0]+'.'+VTG_g[1]+'T'if VTG_g[3] == 'M':cogm = '0.00'sog = VTG_g[4]+'.'+VTG_g[5]kph = VTG_g[7]+'.'+VTG_g[8]elif VTG_g[3] != 'M':cogm = VTG_g[3]+'.'+VTG_g[4]sog = VTG_g[6]+'.'+VTG_g[7]kph = VTG_g[9]+'.'+VTG_g[10]#print(kph)
def GPS_test():try:while True:if GPS_read():'''print("*********************")print('UTC Time:'+utctime)print('Latitude:'+lat+ulat)print('Longitude:'+lon+ulon)print('Number of satellites:'+numSv)print('Altitude:'+msl)print('True north heading:'+cogt+'°')print('Magnetic north heading:'+cogm+'°')print('Ground speed:'+sog+'Kn')print('Ground speed:'+kph+'Km/h')print("*********************")'''return(kph)except KeyboardInterrupt:ser.close()print("GPS serial Close!")if __name__ == "__main__":t1=time.time()for i in range(0,10):kph=GPS_test()print('Ground speed:'+kph+'Km/h')t2=time.time()print((t2-t1)/10)ser.close()
相关文章:
【Python】WHEELTEC GPS G60主代码读取传感器数据代码(Windows系统)
【Python】WHEELTEC惯导IMU主代码读取传感器数据代码 Windows系统,直接输入串口号即可 读取设备的移动速度(km/h) 注:该GPS传感器需要在室外条件运行,室内可能接收不到信号。 # coding: utf-8 # last modified:202310…...
【Vue】Vue2与Vue3的区别
目录 响应式系统组合式API更小的体积编译优化新的生命周期钩子更好的性能组件结构与模板TeleportFragments 静态节点标记异步组件Slots的改进更好的TypeScript支持Composition API的引入 响应式系统 Vue2使用Object.defineProperty来实现响应式系统,这意味着只有预…...

马斯克的 xAI 帝国!60亿融资背后的超级布局?
在全球科技竞技场,每个重大融资事件都是对行业格局的一次重塑。近日,埃隆马斯克的人工智能初创企业 xAI 成功完成了一轮规模空前的融资——60亿美元,此举无疑在业界投下了一枚震撼弹,标志着 AI 领域内一场新的竞赛拉开了序幕。 …...

互联网医院开发:引领智慧医疗新时代
随着科技的迅猛发展和互联网的普及,传统医疗模式正在迎来一场深刻的变革。互联网医院的崛起,打破了时间和空间的限制,为患者和医疗机构带来了更加便捷、高效、安全的医疗服务体验。本文将从技术角度深入探讨互联网医院的开发,包括…...

民国漫画杂志《时代漫画》第18期.PDF
时代漫画18.PDF: https://url03.ctfile.com/f/1779803-1248612707-27e56b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!...

java.lang.NumberFormatException: For input string:
创建SpringBoot,Mybatis的项目时候,Service层调用Mapper层时候爆出了一个错误 发现报错是一个类型转换错误,经过排查后发现是因为mapper接收的实体类中没有写空参构造...

从零开始搭建Springboot项目脚手架4:保存操作日志
目的:通过AOP切面,统一记录接口的访问日志 1、加maven依赖 2、 增加日志类RequestLog 3、 配置AOP切面,把请求前的request、返回的response一起记录 package com.template.common.config;import cn.hutool.core.util.ArrayUtil; import cn.hu…...
持续总结中!2024年面试必问 20 道 Rocket MQ面试题(一)
一、请简述什么是RocketMQ? RocketMQ是一个开源的消息中间件,由阿里巴巴团队开发,主要设计用于分布式系统中的异步通信、应用解耦、流量削峰和消息持久化。它支持高吞吐量、高可用性、可扩展性和容错性,是构建大规模实时消息处理…...

生成式AI的GPU网络技术架构
生成式AI的GPU网络 引言:超大规模企业竞相部署拥有64K GPU的大型集群,以支撑各种生成式AI训练需求。尽管庞大Transformer模型与数据集需数千GPU,但实现GPU间任意非阻塞连接或显冗余。如何高效利用资源,成为业界关注焦点。 张量并…...
旅游卡在哪里拿货?千益畅行旅游卡源头
旅游卡是一种便捷的旅行工具,它可以提供多种优惠和特惠,让人们在旅行中更加省钱、省心。那么,在千益畅行旅游卡这里,我们该如何拿到这张神奇的旅游卡呢? 首先,千益畅行旅游卡作为一款专为旅行爱好者打造的…...
代码随想录算法训练营第四十一天| 509. 斐波那契数 、70. 爬楼梯 、746. 使用最小花费爬楼梯
509. 斐波那契数 题目链接:509. 斐波那契数 文档讲解:代码随想录/斐波那契数 视频讲解:视频讲解-斐波那契数 状态:已完成(1遍) 解题过程 看到题目的第一想法 虽然看了卡哥的动态规划五部曲,…...

Ribbon负载均衡(自己总结的)
文章目录 Ribbon负载均衡负载均衡解决的问题不要把Ribbon负载均衡和Eureka-Server服务器集群搞混了Ribbon负载均衡代码怎么写ribbon负载均衡依赖是怎么引入的? Ribbon负载均衡 负载均衡解决的问题 首先Ribbon负载均衡配合Eureka注册中心一块使用。 在SpringCloud…...

Leetcode 力扣92. 反转链表 II (抖音号:708231408)
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入:head [1,2,3,4,5], left 2, right 4 输出:[1,4,3,2…...
OSI七层模型和TCP/IP四层模型的区别
OSI七层模型 1.物理层(Physical Layer) 实现相邻节点之间比特流的透明传输,尽可能屏蔽传输介质带来的差异。典型设备:集线器(Hub)。 2.数据链路层(Data Link Layer) 将网络层传下来…...
在虚拟机上安装MySQL和Hive
在虚拟机上安装MySQL和Hive的步骤如下。这里将分别针对MySQL和Hive的安装进行说明。 MySQL安装步骤 1. 准备工作 下载MySQL安装包,选择与你虚拟机操作系统版本相匹配的MySQL版本,例如MySQL 8.0.35。 2. 卸载旧版本(如果已安装)…...
Vue 2 和 Vue 3 中同步和异步
Vue 2 和 Vue 3 中同步和异步 Vue 2 同步和异步 同步更新 (Synchronous Updates) Vue 2 在数据更新后会进行同步渲染更新,但为了性能优化,Vue 会在内部队列中异步地进行 DOM 更新。这意味着数据变化会立即被捕捉到,但实际的 DOM 更新会被推迟到下一个事件循环队列中。new V…...

ssm150旅游网站的设计与实现+jsp
旅游网站设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞…...

【加密与解密(第四版)】第十四章笔记
第十四章 漏洞分析技术 14.1 软件漏洞原理 缓冲区溢出漏洞:栈溢出 堆溢出、整型溢出(存储溢出、计算溢出、符号问题) UAF(Use-After-Free)漏洞 14.2 ShellCode 功能模块:下载执行、捆绑、反弹shell 14.3 …...

鸿蒙系统和安卓系统通过termux搭建Linux系统—Centos
目录 1. 前言 2. 效果图展示 3. 安装termux 4. 安装Centos系统 4.1 更换源 4.2 拉取镜像 4.3 启动centos 5.结尾 1. 前言 大家好,我是jiaoxingk 今天这篇文章让你能够在手机或者平板上使用Linux-Centos系统 让你随时随地都能操作命令行进行装13 2. 效果图展示…...

数据结构的希尔排序(c语言版)
一.希尔排序的概念 1.希尔排序的基本思想 希尔排序是一种基于插入排序算法的优化排序方法。它的基本思想如下: 选择一个增量序列 t1,t2,......,tk,其中 ti > tj, 当 i < j,并且 tk 1。 按增量序列个数k&#…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...