python - 使用 SIM800c GSM 模块进行网络定位的 Python 代码
问题描述
我正在尝试使用 SIM800c GSM 模块获取网络位置。
我需要 python 代码来获取网络位置的纬度和经度。
有现有的 AT 命令可以获取 lat long。
AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","AIRTELGPRS.COM"
OK
AT+SAPBR =1,1
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"100.89.157.83"
OK
AT+CIPGSMLOC=1,1
+CIPGSMLOC: 0,73.856689,18.490337,2019/02/14,12:49:57
我只想从 python 代码中的所有输出中获取纬度和经度。
解决方案
您可以使用正则表达式提取值:
import re
loca = '+CIPGSMLOC: 0,73.856689,18.490337,2019/02/14,12:49:57'
m = re.match('\+CIPGSMLOC: [\d\.]+,([\d\.]+),([\d\.]+)',loca)
if m:
lat = float( m.group(1) )
lon = float( m.group(2) )
print("%f, %f" % (lat,lon))
推荐阅读
- oracle - 杀死 Oracle 中的所有会话会解决我的问题吗?
- xml - 用于 BizTalk 2016 的 Edifact D16 XML 架构
- bash - 通过 for 循环在 ssh 连接中转义命令
- angular - “时刻”没有导出成员“默认”
- wikidata - 有没有办法从官方网页查询 Wikidata 以获取公司详细信息?
- angular - 在角度应用程序中绑定到 kendo UI datepicker 控件时未选择日期
- docker - 轮询成功,但出现错误:操作正在进行中 (29)。当 Xdebug 尝试从 docker 容器连接到 PhpStorm
- mysql - Mysql - 如果同一表的其他行中不存在值,则更新行
- android - Android Firebase 远程配置:未设置应用程序名称。调用 Builder#setApplicationName
- sql - 如何使用正则表达式在两个特殊字符之间查找特定字符串?