oneos网络定位组件体验

oneos网络定位组件体验

总体介绍:

OneOS 位置组件是 OneOS 端云融合的一个典型应用组件,由一个平台、三大服务组成,分别是位置服务平台、Wi-Fi 定位服务、AGNSS 快速定位服务、RTK/RTD 高精度定位服务,为穿戴、工业、交通、测绘、电力等行业提供各种精度的定位能力。

本文使用正点原子战舰V3开发板对 OneOS 位置服务组件的体验

AGNSS功能需要有gnss定位模组,且功能为加快冷启动定位速度,因此本文仅测试WiFi网络定位功能;
4G模组配置功能类似,参考“OneOS 位置组件应用及实战总览”和本文配置即可

准备项:

  • 复制战舰系列文章添加串口驱动篇的 stm32f103zet6-atk-warship_v3-serial 文件夹,并重命名为 stm32f103zet6-atk-warship_v3-serial-position
  • 也可以从gitee仓库克隆:https://gitee.com/dreamfly233/OneOS/tree/projects_OneOS-v2.3.0/projects 获取stm32f103zet6-atk-warship_v3-serial 工程文件夹
  • 硬件使用esp8266模组,接在ATK MODULE上,即串口3上,若使用的串口未添加驱动,则需要添加串口驱动

如图:

在这里插入图片描述

OneOS-CMS 平台配置:

进入oneos官网 https://os.iot.10086.cn/

注册登录过程,及实名认证过程按网站提示操作

在这里插入图片描述

登录后点击右上角工作台,依次选择 产品开发/产品管理/新建产品,参考下图配置即可
在这里插入图片描述

创建后,可以在产品详情页查看产品ID和密钥
在这里插入图片描述

创建产品后,还需要配置定位服务,在工作台中点击CMS服务/定位服务,在新页面点击产品列表,找到新建的产品的服务配置选项,agnss辅助定位这里不需要就不勾选了,其他功能都可以勾选上
在这里插入图片描述

在这里插入图片描述

至此云端就配置完成了,体验上与onenet类似

网络定位功能配置

进入stm32f103zet6-atk-warship_v3-serial-position文件夹,已添加了串口3驱动,直接进入menuconfig配置即可:在文件夹中打开oneos cube,输入menuconfig

配置CMS连接部分:

在这里插入图片描述

定位到Components→ CMS→ CMS ID 使能 CMS ID 组件,并配置产品 id 和 key(即产品详情页的产品ID和产品密钥)
配置方式:使用上下方向键定位到配置框后,按回车进入编辑,编辑完成后再按一次回车保存
在这里插入图片描述

配置通信模组部分:

定位到Components→ Network→ Molink,勾选Enable IoT modules support项,然后定位到 Modules → WiFi Modules Support → ESP8266 → ESP8266 Config
串口设备和波特率按实际硬件勾选,AP SSID和AP password即WiFi的名称和密码,也需要自行配置,Enable ESP8266 Module BSD Socket Operates项也要勾选
在这里插入图片描述

配置定位组件:

定位到 Components→ Position,勾选enable position support项,以及onepos support command项
在这里插入图片描述

定位到 Components → Position → enable position support → network positon → enable network positon → wifi positon,勾选network positon using wifi positon项
在这里插入图片描述

其他配置默认即可,配置完成后esc退出menuconfig并保存
然后调用scons --ide-mdk5生成mdk工程
生成后打开工程,编译下载

定位功能体验:

下载后打开shell,查看输出:
连接成功后shell将正常运行
输入onepos start命令:
在这里插入图片描述

此时进入网页的定位服务/产品管理/设备调试页面,可以看到在线设备,点击设备详情即可看到在地图上看到设备的位置信息
在这里插入图片描述

在这里插入图片描述

小结:

oneos提供的onepos组件对于有wifi/基站定位需求的客户,接入还是很方便的,molink支持的模组方便集成,支持云端下发定位结果也便于处理定位信息

AGNSS技术常见于手机等设备,通过网络下载星历加速定位,onepos也实现了这个功能

GNSS定位功能参考官方文档:https://os.iot.10086.cn/v2/doc/detailPage/documentHtml?idss=157171737933651968&proId=156814190282285056

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: rtnl_locked是Linux内核中的一个全局变量,它用于保护路由子系统中的数据结构免受并发访问的影响。当rtnl_locked被设置为1时,表示路由子系统正在被某个进程使用,此时其他进程不能对路由子系统进行更改操作。在OneOS中,rtnl_locked 变量也会被用于保护路由子系统的数据结构。 ### 回答2: rtnl_locked是在oneos操作系统中的一个变量。rtnl是Routing Netlink Protocol的缩写,表示路由控制协议。rtnl_locked变量用于表示当前是否已经锁定了路由表,即是否有其他进程正在进行路由相关的操作。 在操作系统中,路由表是用来存储和管理网络路由信息的重要数据结构。当有多个进程同时对路由表进行读写操作时,就需要引入锁机制来避免冲突和竞争条件。rtnl_locked变量就是用来记录当前路由表是否已经被锁定的状态。 如果rtnl_locked变量的值为true,表示当前路由表已经被锁定,有其他进程正在对其进行操作,此时若有其他进程也想要对路由表进行操作,就需要等待。这样可以确保同时只有一个进程在对路由表进行操作,避免了竞争条件和数据不一致的问题。 反之,如果rtnl_locked变量的值为false,表示当前路由表没有被锁定,可以正常进行路由表的读写操作。 通过使用rtnl_locked变量和相应的锁机制,可以保证在多个进程同时对路由表进行操作时的安全性和一致性。这对于一个操作系统而言是非常重要的,特别是在网络环境中,正确的路由表操作是保证数据包准确传输和网络稳定性的基础。 ### 回答3: rtnl_locked变量是OneOS网络栈中的一个变量,用于记录网络链路状态的锁定状态。网络链路状态锁定是指在进行网络连接和数据传输时,为了保持数据的完整性和一致性,需要对网络链路进行锁定以防止其他线程对其进行修改。rtnl_locked变量的取值为true表示网络链路状态被锁定,不允许其他线程对其进行修改,取值为false表示网络链路状态未被锁定,其他线程可以对其进行修改。 rtnl_locked变量的使用主要是为了保证网络连接和数据传输的可靠性。当一个线程需要对网络链路进行操作时,它会首先检查rtnl_locked变量的值。如果rtnl_locked为true,则该线程需要等待直到锁定状态解除;如果rtnl_locked为false,则该线程可以对网络链路进行操作,并在操作完成后将rtnl_locked设置为true,以防止其他线程对其进行修改。 通过使用rtnl_locked变量,OneOS网络栈可以实现线程之间对网络资源的访问控制和互斥操作,保证了网络连接和数据传输的正确性和可靠性。 总之,rtnl_locked变量在OneOS网络栈中起到了维护网络链路状态的锁定机制的作用,确保网络连接和数据传输的可靠性。它通过记录网络链路的锁定状态,实现了对网络资源的访问控制和互斥操作,为网络通信提供了保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值