exgnss库三大应用模式:核心优势与实现要点!

exgnss库的三大应用模式各具特色:基础模式兼顾普适性与效率,高精度模式突破精度瓶颈,多源融合模式提升稳定性,三者通过关键技术协同满足复杂应用需求。

一、exgnss库的三种应用模式

exgnss库提供三种比较经典的应用模式,可根据实际项目需求灵活运用。

应用模式1:exgnss.DEFAULT

打开gnss后,gnss定位成功时,如果有回调函数,会调用回调函数;

使用此应用模式调用exgnss.open打开的“gnss应用”,必须主动调用exgnss.close;

或者exgnss.close_all才能关闭此“gnss应用”,主动关闭时,即使有回调函数,也不会调用回调函数。

通俗点说就是一直打开,除非自己手动关闭掉。

应用模式2:exgnss.TIMERORSUC

打开gnss后,如果在gnss开启最大时长到达时,没有定位成功,如果有回调函数,会调用回调函数,然后自动关闭此“gnss应用”;

打开gnss后,如果在gnss开启最大时长内,定位成功,如果有回调函数,会调用回调函数,然后自动关闭此“gnss应用”;

打开gnss后,在自动关闭此“gnss应用”前,可以调用exgnss.close或者exgnss.close_all主动关闭此“gnss应用”。主动关闭时,即使有回调函数,也不会调用回调函数。

通俗点说就是设置规定时间打开,如果规定时间内定位成功就会自动关闭此应用;如果没有定位成功,时间到了也会自动关闭此应用。

应用模式3:exgnss.TIMER

打开gnss后,在gnss开启最大时长时间到达时,无论是否定位成功,如果有回调函数,会调用回调函数,然后自动关闭此“gnss应用”;

打开gnss后,在自动关闭此“gnss应用”前,可以调用exgnss.close或者exgnss.close_all主动关闭此“gnss应用”。主动关闭时,即使有回调函数,也不会调用回调函数;

通俗点说就是设置规定时间打开,无论是否定位成功,到了时间都会自动关闭此应用;

和模式2的区别在于定位成功之后不会自动关闭,到时间之后才会自动关闭。


二、exgnss库应用示例

本文以Air8000整机开发板为例,分享exgnss库的三种应用模式应用要点。

最新源码下载及实操教程详见:https://docs.openluat.com/air8000/luatos/app/gnss/exgnss/ 

1. main.lua

主要用于加载exgnss扩展库,加载gnss代码。


2. gnss.lua

主要操作如下:

开启协程,运行gnss_fnc函数,通过exgnss.setup(gnssotps)配置gnss的参数,通过exgnss.open开启三种不同的应用。

等待40秒使用exgnss.close关闭TIMER模式,使用exgnss.close需要两个参数,第一个是exgnss应用模式,第二个是tag标签。

然后利用exgnss.is_active查询三种应用模式是否处于激活模式,查询应用是否处于激活状态同样需要两个参数,第一个是exgnss 应用模式,第二个是tag标签。

等待10秒使用exgnss.close_all关闭全部应用模式,再次查询三种模式是否处于激活模式。

然后使用xgnss.last_loc,获取最后一次的定位经纬度数据打印。

定位成功之后:

使用subscribe订阅"GNSS_STATE"消息,根据获取到的值判断是否定位成功,定位成功用exgnss.rmc获取rmc数据。


3. 示例效果展示

Air8000开发板通过LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行,查看示例运行结果。

4. 使用纠偏网站进行定位纠偏

所有的GNSS功能的坐标系均使用国际标准WGS-84坐标系,所以开发者在国内常见地图定位时,会发现与实际情况有几十米的误差。

这并非模组问题,而是国内地图采用了非标坐标系所致。

国内常见地图如高德地图使用GCJ-02坐标系,百度地图使用BD-09坐标系,故此开发者需要对模组输出的经纬度进行加偏处理,才能在国内的地图上实现精确定位。

定位纠偏网站:

http://old.openluat.com/GPS-Offset.html

今天的内容就分享到这里了!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值