首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >"AT+CGPSINFO“命令适用于Socat,但不适用于PySerial

"AT+CGPSINFO“命令适用于Socat,但不适用于PySerial
EN

Stack Overflow用户
提问于 2020-11-03 18:19:22
回答 1查看 158关注 0票数 0

以下Socat命令根据需要返回GPS数据:

代码语言:javascript
运行
AI代码解释
复制
echo 'AT+CGPSINFO' | socat - /dev/ttyUSB3,crnl

+CGPSINFO: 5100.505778,N,11404.437214,W,031120,175538.0,1076.7,0.0,348.0

OK

现在我想用PySerial在Python语言中做同样的事情,但是我得到了一个错误。

代码语言:javascript
运行
AI代码解释
复制
from serial import Serial
import time

def sleep_for_x_seconds(sleep_secs=0.25):
    print(f"Sleeping for {sleep_secs} seconds...")
    time.sleep(sleep_secs)

def write_to_modem(modem, to_write, sleep=True, sleep_secs=0.25, readlines=True):
    print(f"Writing {to_write}...")
    modem.write(to_write)
    if sleep:
        sleep_for_x_seconds(sleep_secs)
    if readlines:
        print(modem.readlines())

sleep_secs = 0.25
port = "/dev/ttyUSB3"
print(f"Initializing modem on port '{port}'...")
modem = Serial()
modem.port = port
modem.timeout = 1  # How long to wait when reading lines
modem.writeTimeout = 1
sleep_for_x_seconds(sleep_secs)

print("Opening modem and flushing input and output...")
modem.open()
modem.flushInput()
modem.flushOutput()
sleep_for_x_seconds(sleep_secs)

# This first command returns [b'\r\n', b'OK\r\n']
write_to_modem(modem, b"AT\r\n", sleep=True, sleep_secs=sleep_secs, readlines=True)

# This second command returns [b'\r\n', b'ERROR\r\n'] for some reason... why?
write_to_modem(modem, b"AT^CGPSINFO=1\r\n", sleep=True, sleep_secs=sleep_secs, readlines=True)

modem.flushInput()
modem.close()

下面是运行上述程序的完整输出日志(为了可读性,添加了换行符):

代码语言:javascript
运行
AI代码解释
复制
Initializing modem on port '/dev/ttyUSB3'...
Sleeping for 0.25 seconds...

Opening modem and flushing input and output...
Sleeping for 0.25 seconds...

Writing b'AT\r\n'...
Sleeping for 0.25 seconds...
[b'\r\n', b'OK\r\n']

Writing b'AT^CGPSINFO=1\r\n'...
Sleeping for 0.25 seconds...
[b'\r\n', b'ERROR\r\n']

为什么在Socat中正常运行以下命令时,在运行PySerial时会出现错误"b'\r\n',b' error \r\n'“?

代码语言:javascript
运行
AI代码解释
复制
echo 'AT+CGPSINFO' | socat - /dev/ttyUSB3,crnl

+CGPSINFO: 5100.505778,N,11404.437214,W,031120,175538.0,1076.7,0.0,348.0

OK
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-03 23:14:29

正如@meuh在评论中显示的那样,我使用的是^而不是+,所以将其改为b"AT+CGPSINFO=1\r\n"就解决了这个问题……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64668376

复制
相关文章
安装适用于 Java 的 TensorFlow安装适用于 Java 的 TensorFlow
TensorFlow 可提供在 Java 程序中使用的 API。这些 API 特别适合用于加载以 Python 语言创建的模型并在 Java 应用中运行这些模型。本指南将介绍如何安装适用于 Java 的 TensorFlow 并在 Java 应用中使用 TensorFlow。
一个会写诗的程序员
2018/08/17
1.2K0
Nginx适用于哪些场景?
首先,我们一般会将请求打到Nginx, 再把请求转发到我们的应用服务。比如我们常用的php-fpm/golang程序或者tomcat,再由应用服务访问缓存,数据库等存储以提供基本的数据服务能力。
用户1072003
2022/12/02
6150
Nginx适用于哪些场景?
适用于linux的5个最佳命令行归档工具
存档是一个通常要压缩的文件,它包含了一组文件。tar应用程序是打包盒解包存档文件的。文件扩展名tar.bz2、tar.gz和.tgz可以确定文件是压缩的tar存档文件,它们往往是互联网上提供的软件包。 1.tar 命令 tar是标准的UNIX/Linux归档应用工具。早期它曾经是一个磁带归档程序,后来逐渐发展成为能够处理各种归档文件的通用归档包。tar接受很多带有选项的归档过滤器。 tar选项 -A:将tar文件附加到现有档案中。 -c:创建一个新的存档文件。 -d:将存档与指定的文件系统进行比较。 -j:
入门笔记
2022/06/02
8450
适用于个人博客的WordPress插件
借助于WordPress强大的社区生态,有各式各样的插件可供选择。 这里主要基于优化、功能拓展这两大方面展开,可以一定程度上提高博客访问速度以及优化使用体验,SEO类插件本文暂不涉及 大部分插件可以直接在WordPress官方应用市场内搜到,少数下架插件会单独说明
LonelyEnderman
2023/01/30
8440
WebDeploy 安装(适用于一键发布)
1、在windows server上确保IIS安装了【管理服务】这个功能。方法是在【服务器管理器】=>【管理】=>【添加角色和功能】=>【下一步】=>【基于角色或基于功能的安装】=>【下一步】=>【从服务器池中选择服务器】=>【下一步】=>【Web服务器(IIS)】下面。如果没有安装就安装下。
happlyfox
2019/10/16
2.2K0
WebDeploy  安装(适用于一键发布)
适用于小团队的前端规范示例
适用于前端开发团队规范为参考规范,不全是硬性要求,统一团队编码规范和风格。让所有代码都是有规可循的,并且能够获得沉淀,减少重复劳动。
用户5997198
2019/10/31
8240
适用于 Go 项目的 Makefile 指南
编写项目的过程中,经常需要对文件进行编译和执行,查看功能开发或者修复的 Bug 是否正确。你当然可以直接执行 go build 命令用来编译,执行 go run
谢伟
2019/04/09
2K0
RPA是适用于什么地方?
例如容智RPA 技术适用于什么地方? 重复、复杂度低、规则 需要大量人力去重复做的事情 不需要人为思考的简单动作 有规律,能被编码 一些人工实现没有优势的操作(机会) OCR,音频视频识别, 过多的分支流程。不好培训,也不好执行,容易出错,但是对于计算机却很简单 网络数据抓取 数据处理、报表汇总、可视化报表展示 企业管理系统的整合 避免 人为系统打工 的情况 不改变原有系统的基础上快速搭建新功能
爱博特iBotRPA
2019/06/12
8160
适用于CI容器漏洞扫描神器
Trivy 是一个用于容器简单而全面的漏洞扫描程序。软件漏洞是软件或操作系统中存在的故障,缺陷或弱点。 Trivy 检测OS软件包(Alpine,RHEL,CentOS等)的漏洞和应用程序依赖项(捆绑程序,Composer,npm,yarn等)。Trivy易于使用。只需安装二进制文件即可开始扫描。扫描所需要做的就是指定容器 Image 名称。
YP小站
2020/06/04
1.8K1
适用于CI容器漏洞扫描神器
Ubuntu 13.10下使用QQ,适用于14.10
最近发现Ubuntu提示wineqq2013版本过旧无法使用,同时wineQQ又没有更新,只好寻找新的解决方案,于是有了如下几个选择,现奉献给大家。
WindCoder
2018/09/19
1.1K0
Ubuntu 13.10下使用QQ,适用于14.10
kubeedge 安装部署(适用于Ubuntu)「建议收藏」
node.json内容(注意 metadata.name 需要和 edge.yaml 中一致)
全栈程序员站长
2022/09/13
2K0
容器部署ELK7.10,适用于生产
一、elk架构简介 首先 logstash 具有日志采集、过滤、筛选等功能,功能完善但同时体量也会比较大,消耗系统资源自然也多。filebeat作为一个轻量级日志采集工具,虽然没有过滤筛选功能,但是仅
YP小站
2021/01/29
1.9K0
容器部署ELK7.10,适用于生产
适用于IDA Pro的CGEN框架介绍
一切都始于我想要分析一些MeP代码的时候。我通常在IDA Pro中做逆向工作,但是有一小部分处理器IDA并不支持。幸运的是,objdump可以支持这些小众的处理器架构。经过一番摸索之后,我确定将这些反汇编代码移植到IDA中会比直接在objdump的输出中做一些标注和修改更好一些。 过程 互联网上很少有关于编写IDA处理模块的资料。SDK说明文档太简单了(只是让你去读示例代码和头文件)关联到两个文档:Online gide已经找不到了和Chris Eagle写的《IDA权威指南》。 打开这本书关于编写处理器模
FB客服
2018/02/07
1.1K0
适用于IDA Pro的CGEN框架介绍
synchronizedMap 和 concurrenthashmap 分别适用于什么场景?
如何线程安全的使用HashMap 了解了 HashMap 为什么线程不安全,那现在看看如何线程安全的使用 HashMap。这个无非就是以下三种方式:
葆宁
2019/04/18
3.5K0
synchronizedMap 和 concurrenthashmap 分别适用于什么场景?
开源OA适用于哪些用户群体?
随着企业规模的不断扩大,人员、设备、环境等条件都在不断的增长更新,面对日益壮大的规模,作为企业的领导层,对市场信息的了解、对公司内部人员的管理以及生产、销售、财务等诸多方面都表现出强烈的掌握欲望,以便能在企业的未来发展中做出正确的战略规划。而传统的管理手段与模式已经不能为企业的成长提供有力支持,这个时候就需要一种全新的辅助手段,来帮助企业的领导层解决对企业掌握不充分的问题,企业信息化已成为企业成长中的一种全新辅助手段。
指效开源OA办公系统
2018/11/30
2.4K0
开源OA适用于哪些用户群体?
适用于Power BI/Excel的符号库
Excel 插入选项卡下,有一个符号库,可以用来装饰报表。Power BI没有类似的库。以下介绍三个第三方整理的符号资源,可以在Power BI或Excel使用。
wujunmin
2022/12/13
1.8K0
适用于Power BI/Excel的符号库
适用于Windows 10的深度学习环境设置
本文详细介绍如何开始深度学习,首先在Windows 10上配置适合它的环境。要安装的框架是Keras API,后端为TensorFlow的GPU版本。
AiTechYun
2018/09/26
4.4K0
适用于Windows 10的深度学习环境设置
Zabbix在线迁移方案(适用于MySQL5.7)
xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。xtrabackup有两个主要的工具:xtrabackup、innobackupex,xtrabackup只能备份InnoDB和XtraDB两种数据表,且只备份数据文件(.ibd),并不备份数据表结构文件(.frm),同时不能备份MyISAM数据表,所以使用xtrabackup恢复的时候,你必须有对应表结构文件(.frm);innobackupex-1.3.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理InnoDB和MyISAM,但在处理MyISAM时需要加一个读锁。
Zabbix
2021/11/12
8990
适用于protel99SE初学者
本文适合零基础者学习 protel99SE 很多网友渴望自己设计电路原理图(SCH)、电路板(PCB),同时希望从原始 SCH 到 PCB 自动布线、再到成品 PCB 电路板的设计周期可以缩短到 1 天以内!是不是不可能呢?当然不是,因为现在的 EDA 软件已经达到了几乎无所不能的地步!由于电子很重实践,可以说,不曾亲自设计过 PCB 电路板的电子工程师,几乎是不可想象的。
全栈程序员站长
2022/08/23
1.2K0
适用于protel99SE初学者
点击加载更多

相似问题

Arduino的Pyserial问题-适用于Python shell,但不适用于程序

40

不适用于PySerial的字节命令函数

37

DefineConstants适用于运行命令,但不适用于构建命令

10

wget适用于命令行,但不适用于PHP。

15

java cmd命令适用于Windows,但不适用于centOS

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文