简化定位,从exgnss扩展库开始:GNSS开发从此“轻装上阵”

电子说

1.4w人已加入

描述

面对GNSS定位开发的重重挑战,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

回调函数


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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分