LuatOS扩展库API——【airlbs 】airlbs 定位服务
LuatOS 是物联网终端开发的常用工具为轻量级嵌入式 Lua 脚本运行框架兼实时系统基于 Lua 5.3 深度优化适配 4G-Cat.1、MCU 等物联网终端硬件。其以 Lua 脚本开发采用协程多任务架构配套完善开发资源含 70 余个核心库、20 余个扩展库及 1000 余个应用 demo可覆盖物联网开发各类基础场景。一、概述airlbs 扩展库是专为高精度需求设计的收费定位服务其特点在于更高定位精度或额外功能但需申请授权。免费替代方案为 lbsloc2定位精度不高。为了更清晰地了解这两个库的特点下表对比了它们的主要特性区别项airlbs付费版lbsloc2免费版定位原理多基站/Wi-Fi混合定位上报多个基站或Wi-Fi信息通过三角定位法计算坐标单基站定位上报单一基站信息服务器根据存储的基站经纬度直接返回位置定位精度10-300米城市环境郊区/农村可能更低但显著优于单基站定位1.5公里内误差较大适用于粗略区域定位请求频率限制可选择2分钟最多1次超过频次会返回定位失败功能特性支持多基站和Wi-Fi混合定位定位精度高适用于对精度要求较高的场景仅支持单基站定位无Wi-Fi定位功能适用于对精度要求不高的场景相较于 lbsloc2airlbs 的优势在于更高的定位精度更高的请求频率。基于此在进行项目开发的时候可以根据定位精度以及项目费用预算自行选择。合宙 lbsloc、lbsloc2、airlbs 三个库介绍-- lbsloc 是异步回调接口-- lbsloc2 是是同步接口。-- lbsloc比lbsloc2多了一个请求地址文本的功能。-- lbsloc 和 lbsloc2 都是免费LBS定位的实现方式-- airlbs 扩展库是收费 LBS 的实现方式。二、核心示例1、核心示例是指使用本库文件提供的核心 API开发的基础业务逻辑的演示代码2、核心示例的作用是帮助开发者快速理解如何使用本库所以核心示例的逻辑都比较简单3、更加完整和详细的 demo请参考 LuatOS 仓库 中各个产品目录下的 demo/airlbslocalfunctionairlbs_multi_cells_task_func()whiletruedolocalresult,dataairlbs.request({project_idairlbs_project_id,--项目ID需根据实际修改project_keyairlbs_project_key,--项目密钥需根据实际修改timeout10000,--可自由设定超时时间adapternil--选填网络适配器若不填则默认是平台自带的网络协议栈})ifresultthenlog.info(airlbs多基站定位返回的经纬度数据为,json.encode(data))endelselog.warn(请检查project_id和project_key)endsys.wait(20000)-- 循环20S一次多基站定位endendsys.taskInit(airlbs_multi_cells_task_func)----日志输出内容示例--airlbs多基站定位返回的经纬度数据为 {lat:31.1354542,lng:121.5423279}三、常量详解airlbs 扩展库没有常量。四、函数详解airlbs.request(param)功能多基站 wifi 混合定位获取定位数据参数param参数含义请求airlbs定位的项目id项目秘钥超时时间以及网络适配器选择。{参数含义项目id在https://iot.openluat.com/lbs/project-list中获取数据类型string取值范围无特别限制是否必选必须传入此参数注意事项暂无参数示例lblKo3参数名称 param.project\_id参数含义项目秘钥。数据类型string取值范围无特别限制是否必选可选传入此参数注意事项暂无参数示例DKqM6sHJkHV23WCzgzTbk7QW7HYGCJxp参数名称 param.project\_key参数含义表示从发送请求到读取到服务器响应整个过程的超时时间数据类型number/nil取值范围无特别限制是否必选可选传入此参数注意事项暂无参数示例15000参数名称 param.timeout参数含义上网使用的网卡ID数据类型number或者nil取值范围number类型时取值范围参考socket api中的常量详解是否必选可选传入此参数注意事项如果没有传入此参数内核固件会自动选择当前时间点其他功能模块设置的默认网卡除非你airlbs请求时一定要使用某一种网卡才设置此参数如果没什么特别要求不要设置此参数使用系统中设置的默认网卡即可 一般来说LuatOS的网络应用demo中都会有netdrv\_device功能模块设置默认网卡所以建议不要设置此参数直接使用netdrv\_device设置的默认网卡就行参数示例socket.LWIP\_GP表示使用4G网卡参数名称 param.adapter参数含义WiFi网络信息列表用于WiFi定位数据类型table或者nil取值范围无特别限制是否必选可选传入此参数注意事项暂无参数示例\[24:32:AE:04:E1:67,-86\]参数名称 param.wifi\_info}数据类型table取值范围无特别限制是否必选暂无注意事项暂无参数示例{project\_idlblKo3,project\_keyDKqM6sHJkHV23WCzgzTbk7QW7HYGCJxptimeout15000,adapternilwifi\_info{{bssid24:32:AE:04:E1:67,rssi-86},{bssidAA:BB:CC:DD:EE:FF,rssi-65},{bssid11:22:33:44:55:66,rssi-70}}}返回值local result,data airlbs.request(param)有两个返回值 result,dataresult含义说明成功返回true,失败会返回false 数据类型boolean 取值范围true或者false 注意事项暂无 返回示例truedata含义说明表示返回的经纬度数据 数据类型table或者nil 取值范围如果result为true返回的是table类型如果result为false返回的是nil类型 注意事项暂无 返回示例airlbs多基站定位返回的经纬度数据为{lat:31.1354542,lng:121.5423279}示例localresult,dataairlbs.request({project_idairlbs_project_id,project_keyairlbs_project_key,timeout10000,adapternil,wifi_info{{bssid24:32:AE:04:E1:67,rssi-86},{bssidAA:BB:CC:DD:EE:FF,rssi-65},{bssid11:22:33:44:55:66,rssi-70}}})ifresultthenlog.info(airlbs多基站定位返回的经纬度数据为,json.encode(data))end----日志输出内容示例--airlbs多基站定位返回的经纬度数据为 {lat:31.1354542,lng:121.5423279}五、模组支持说明目前除 8101 系列外其他支持 LuatOS 开发的模组均支持 airlbs 扩展库今天就分享到这里啦~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2450863.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!