quecgnss - 内置GNSS
此模块提供内置GNSS的使用接口
QuecPython模组当前内置GNSS支持列表:
ECX00U AA/LA系列
EG91XU AA系列
EC800M GA/GB/GC/GD系列
EG810M GA系列
EC800G GA系列
BG95M1/M3型号
使用示例
import quecgnss
def main():
quecgnss.configSet(0,1)#设置定位星系为GPS+Beidou
quecgnss.configSet(2,1)#打开AGPS
quecgnss.configSet(4,1)#打开备电
ret = quecgnss.init()
if ret == 0:
print('GNSS init ok.')
else:
print('GNSS init failed.')
return -1
data = quecgnss.read(4096)
print(data[1].decode())
quecgnss.gnssEnable(0)
if __name__ == '__main__':
main()
#===================================================================================================
#运行结果
167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,28,22,74,98,26,25,16,43,25*77
$GPGSV,2,2,8,26,70,236,28,31,59,12,38,32,55,127,34,4,5,,21*49
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022326.000,A,3149.324624,N,11706.921702,E,0.000,261.541,180222,,E,A*38
$GNGGA,022326.000,3149.324624,N,11706.921702,E,1,12,1.013,-8.580,M,0,M,,*47
$GNGLL,3149.324624,N,11706.921702,E,022326.000,A,A*44
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.773,1.013,1.455*1C
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,27,22,74,98,26,25,16,43,25*78
$GPGSV,2,2,8,26,70,236,28,31,59,12,37,32,55,127,34,4,5,,20*47
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022327.000,A,3149.324611,N,11706.921713,E,0.000,261.541,180222,,E,A*3F
$GNGGA,022327.000,3149.324611,N,11706.921713,E,1,12,1.013,-8.577,M,0,M,,*48
$GNGLL,3149.324611,N,11706.921713,E,022327.000,A,A*43
...... # 数据较多,省略
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.456*11
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.456*18
$GPGSV,2,1,8,3,23,302,27,16,32,220,26,22,73,101,27,25,16,43,27*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,33,32,54,128,28,4,5,,24*44
$BDGSV,2,1,8,163,51,192,33,166,71,11,35,167,52,198,33,169,59,334,34*6E
$BDGSV,2,2,8,170,40,205,32,161,5,,33,164,5,,28,165,5,,30*5F
$GNRMC,022507.000,A,3149.324768,N,11706.922344,E,0.000,261.541,180222,,E,A*31
$GNGGA,022507.000,3149.324768,N,11706.922344,E,1,12,1.120,-8.794,M,0,M,,*48
$GNGLL,3149.324768,N,11706.922344,E,022507.000,A,A*4D
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.455*12
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.455*1B
$GPGSV,2,1,8,3,23,302,26,16,32,220,26,22,73,101,27,25,16,43,26*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,32,32,54,128,28,4,5,,24*45
$BDGSV,2,1,8,163,51,192,24,166,71,11,35,167,52,198,33,169,59,334,34*68
$BDGSV,2,2,8,170,40,205,31,161,5,,33,164,5,,28,165,5,,30*5C
$GNRMC,022508.000,A,3149.324754,N,11706.922338,E,0.002,261.541,180222,,E,A*38
$GNGGA,022508.000,3149.324754,N,11706.922338,E,1,12,1.120,-8.750,M,0,M,,*4B
$GNGLL,3149.324754,N,11706.922338,E,022508.000,A,A*46
$GNGSA,A,3,31,3
GNSS 功能初始化
quecgnss.init
quecgnss.init()
模组内置GNSS模块功能的初始化。
返回值描述
成功返回整型 0
,失败返回整型 -1
。
GNSS 工作状态获取
quecgnss.get_state
quecgnss.get_state()
获取GNSS模块当前工作状态
返回值描述
返回值 | 类型 | 说明 |
---|---|---|
0 | int | GNSS模块处于关闭状态 |
1 | int | GNSS模块固件升级中 |
2 | int | GNSS模块定位中,这种模式下即可开始读取GNSS定位数据,定位数据是否有效需要用户获取到定位数据后,解析对应语句来判断,比如判断GNRMC语句的status是 A 还是 V,A 表示定位有效,V 表示定位无效。 |
GNSS开关
quecgnss.gnssEnable
quecgnss.gnssEnable(opt)
开启或者关闭GNSS模块。如果是上电后第一次使用内置GNSS功能,一般不需要调用该接口来开启GNSS功能,直接调用init()接口即可,init() 接口在初始化时会自动开启GNSS功能。
参数描述
opt
,int类型
0
- 关闭GNSS功能
1
- 开启GNSS功能
返回值描述
成功返回整型 0
,失败返回整型 -1
。
GNSS定位数据获取
quecgnss.read
quecgnss.read(size)
读取GNSS定位数据。
参数描述
size
,int类型,指定读取数据的大小,单位字节。
返回值描述
成功返回一个元组,失败返回整型-1。元组形式如下:
(size, data)
size
- 实际读取数据的大小
data
- GNSS定位数据
GNSS/LTE优先级设置
当前仅BG95M1/M3型号支持该功能。
quecgnss.setPriority
quecgnss.setPriority(Priority)
在部分模组上,GNSS和LTE会复用射频资源,该接口用来控制GNSS和LTE之间使用射频资源的优先级
参数描述
Priority
,int类型,设定GNSS/LTE优先级的值。
不同平台GNSS/LTE优先级的对应关系:
优先级 | BG95M1/M3 |
---|---|
0 | GNSS>LTE |
1 | LTE>GNSS |
返回值描述
成功返回整型 0
,失败返回整型 -1
。
GNSS/LTE优先级获取
当前仅BG95M1/M3型号支持该功能。
quecgnss.getPriority
quecgnss.getPriority()
在部分模组上,GNSS和LTE会复用射频资源,该接口用来读取GNSS和LTE之间使用射频资源的优先级
返回值描述
返回一个整型,代表GNSS/LTE优先级。
不同平台GNSS/LTE优先级的对应关系:
优先级 | BG95M1/M3 |
---|---|
0 | GNSS>LTE |
1 | LTE>GNSS |
内置GNSS配置参数设置
当前仅EC800M GA/GB/GC/GD系列、EG810M GA系列支持该功能
quecgnss.configSet
quecgnss.configSet(config_type, config_value)
设置GNSS参数,包括卫星系统、NMEA语句类型、是否使用AGNSS和APFLASH等
参数描述
config_type
,int,要设置的GNSS配置选项类型,含义如下:
参数 | 类型 |
---|---|
0 | 配置使用的卫星系统 |
1 | 配置输出的NMEA语句类型 |
2 | 配置是否使能AGPS |
3 | 配置是否使能APFLASH |
4 | 配置是否使能GNSS备电 |
config_value
,int,GNSS配置选项的值,含义如下:
卫星系统(config_type = 0):
参数 | 含义 |
---|---|
0 | GPS |
1 | GPS + BeiDou |
3 | GPS + GLONASS + Galileo |
4 | GPS + GLONASS |
5 | GPS + BeiDou + Galileo |
6 | GPS + Galileo |
7 | BeiDou |
NMEA语句类型(config_type = 1):该项以bitmap表示,需要打开的选项置为1
如需要输出GGA+RMC+GSV+GSA+VTG时,应使用bitmap(011111),换算为十进制为31
参数 | 含义 |
---|---|
0 | 禁止输出NMEA语句(000000) |
1 | GGA(000001) |
2 | RMC(000010) |
4 | GSV(000100) |
8 | GSA(001000) |
16 | VTG(010000) |
32 | GLL(100000) |
63 | 全部输出(111111) |
是否使能AGPS(config_type = 2):打开该项时,GNSS会从网络下载星历,并在启动时尝试使用星历加速
参数 | 含义 |
---|---|
0 | 关闭AGPS |
1 | 打开AGPS |
是否使能APFLASH(config_type = 3):打开该项时,GNSS会在Quecpython模组保存星历,并在启动时尝试使用星历加速
参数 | 含义 |
---|---|
0 | 关闭APFLASH |
1 | 打开APFLASH |
是否使能备电 (config_type = 4):打开该项并正确连接备电时,GNSS芯片可自行保存星历信息
EC800M GB/GD系列支持备电
参数 | 含义 |
---|---|
0 | 关闭备电 |
1 | 打开备电 |
返回值描述
int,0为成功,否则为失败
内置GNSS配置参数读取
当前仅EC800M GA/GB/GC/GD系列、EG810M GA系列支持该功能
quecgnss.configGet
quecgnss.configGet(config_type)
读取GNSS参数,包括卫星系统、NMEA语句类型、是否使用AGNSS和APFLASH等
参数描述
config_type
,int,要读取的GNSS配置选项类型,含义如下:
参数 | 类型 |
---|---|
0 | 配置使用的卫星系统 |
1 | 配置输出的NMEA语句类型 |
2 | 配置是否使能AGPS |
3 | 配置是否使能APFLASH |
4 | 配置是否使能GNSS备电 |
返回值描述
int,含义如下(-1为失败)
卫星系统(config_type = 0):
参数 | 含义 |
---|---|
0 | GPS |
1 | GPS + BeiDou |
3 | GPS + GLONASS + Galileo |
4 | GPS + GLONASS |
5 | GPS + BeiDou + Galileo |
6 | GPS + Galileo |
7 | BeiDou |
NMEA语句类型(config_type = 1):该项以bitmap表示,被打开的选项置为1
如输出GGA+RMC+GSV+GSA+VTG时,返回的值为31,换算为二进制即为bitmap(011111)
参数 | 含义 |
---|---|
0 | 禁止输出NMEA语句(000000) |
1 | GGA(000001) |
2 | RMC(000010) |
4 | GSV(000100) |
8 | GSA(001000) |
16 | VTG(010000) |
32 | GLL(100000) |
63 | 全部输出(111111) |
是否使能AGPS(config_type = 2):打开该项时,GNSS会从网络下载星历,并在启动时尝试使用星历加速
参数 | 含义 |
---|---|
0 | 关闭AGPS |
1 | 打开AGPS |
是否使能APFLASH(config_type = 3):打开该项时,GNSS会在Quecpython模组保存星历,并在启动时尝试使用星历加速
参数 | 含义 |
---|---|
0 | 关闭APFLASH |
1 | 打开APFLASH |
是否使能备电 (config_type = 4):打开该项并正确连接备电时,GNSS芯片可自行保存星历信息
EC800M GB/GD系列支持备电
参数 | 含义 |
---|---|
0 | 关闭备电 |
1 | 打开备电 |