目录

CH582的官方EVT在22年7月更新后,修改了手机配网代码以支持wch mesh手机app。使用该app可以保存手动配网信息,设置订阅地址分组,OTA升级,极大方便了用户管理节点。

老版本的EVT中也有对手机配网的支持,但是只有一条指令,即向节点配置net key、节点主元素地址,并没有涉及IV值。新版本的例程,使用wch meh手机app配网,有两条指令,在配置net key、节点主元素地址前加了一条配置IV值相关的指令,能够给新添加节点配置网络中现在使用的IV值,前提是手机需要先连接到mesh网络中自动获取一下最新IV值。两条指令的操作码在app.c中都可以找到,也可以参考《沁恒MESH APP管理配网应用手册》PDF文件。如果一个网络已经正常跑了一年,再向其中添加一个节点,由于老版本的代码IV值默认设置为0,新添加的节点是无法与网络中现有节点通信的;新版本的代码配合wch mesh能够配置最新IV值,以解决这个问题。

整个网络中的IV_index是需要同步的,否则无法通信。IV值不同步的节点,本该被踢出网络,但是底层中没有做这样的操作,结果只是无法与正常节点通信。网络中每个节点都有一个序列号SEQ,节点每发一则消息,会将SEQ自加1。如果某个节点的SEQ超过一定数值,会触发IV更新机制,这个节点会发出一条IV即将更新的广播,其他节点收到后会记录IV即将更新的状态,在IV更新时将自己的SEQ清零。IV值短则1h长则96h后更新一次,具体看发包频率高的节点到底发了多少包。

手机配网的例程adv_vendor_self_provision_with_peripheral由于增加了OTA功能,编译获得hex文件后,需要与其他三个hex文件合成,否则无法使用。其他三个文件不常改动,可以都放在一个文件夹内,用合并工具合成bin文件的时候方便找文件。

在沁恒官网搜索关键字“mesh”,可以找到合并工具WCH_AssembingFileTool和wch mesh手机app↓

搜索 mesh - 南京沁恒微电子股份有限公司 (wch.cn)

合并工具的使用很简单,勾上框选,选择文件,点击合并文件即可。4个hex的文件顺序任意。合成后的bin文件用ISP工具烧录,烧录不报错即可。

注:最新版的ISP工具整合了合并的功能,可以跳过使用AssemblingFileTool这个工具合并的步骤,直接用ISP工具下载4个hex文件。

最新ISP工具中,下面选4个hex同时下载就行。

接下来看看如何在wch mesh手机app中新增节点

①Network页中点击增加节点

②点击周围等待配网的设备。已配网设备这里搜索不到。

③输入16个字节的网络密钥、地址、节点名称。节点名称不会被配置到芯片程序中,网络密钥和节点地址会。

④点击“配置节点”,配置无误的话会自动返回主页,显示新增节点。

新增后的默认状态是离线。查询节点的在线状态,需要连接到网络中,然后点击刷新状态。查询在线状态只需要手机通过BLE连接随机一个网络中的节点,app会借由这个节点发送mesh消息轮询节点是否在线(同理节点配置、OTA等功能,会经由网络转发,不需要直连待管理节点)。轮询过程中,超时未收到回包,则判断这个节点离线。低功耗节点在轮询发包时不一定能够刚好向朋友节点POLL到查询包,且该app是单线程的,没有后台实时查询回包,低功耗节点回包时可能已经轮询结束,故可能会显示低功耗节点离线,但不一定表示低功耗节点已经脱离网络。app的demo在官网资料压缩包中有,有开发能力的用户可以改进一下。

wch mesh还支持订阅与发布功能的管理

①点击下面的“Group”按钮,切换到分组管理页面。

②点击“增加Group”。新增分组无需连接到网络中。

③在弹出的页面中设置新建的分组。注意分组地址为0xC000~0xFEFF。组名不会被配置到节点芯片中,组地址会。

④点击“确定”后会出现新增的分组。显示目前分组下没有节点设备。

⑤将节点配置到分组中,需要回到Network页面,点击列表中的节点。

⑥点击右上角三个点,点击“添加Group”。

⑦点击“确定”添加到指定分组后,提示“订阅成功”后,可以在Group页面看到分组下多了一个设备。

至此就完成了节点的“订阅”工作。若要发布消息到相应地址,可在Group页面点击分组,在接下来的页面中发布消息。需要删除Group可以点击右上角的三个点。

最新文章

  1. 个人作业-Week2
  2. EBS learning history (to know about the environment)
  3. PriorityQueue优先队列用法入门
  4. matlab注释
  5. JS的splice()方法和slice()方法
  6. How to keep Environment Variables when Using SUDO
  7. iOS 日常工作之常用宏定义大全
  8. Android 弹出框
  9. 深度神经网络如何看待你,论自拍What a Deep Neural Network thinks about your #selfie
  10. php中include文件夹分析
  11. Linux系统管理技术手册——第6章 添加新用户
  12. .NET基础拾遗(3)字符串、集合和流1
  13. php 即时输出
  14. 一道编程题: 在1~n之间选择若干个数,使其和为m
  15. python和Java的几种容器比较
  16. 可视化svg深入理解viewport、viewbox、preserveaspectradio
  17. java 工厂模式 转载
  18. script weixin app / weixin xiao chen xu
  19. HTTP的缓存策略
  20. STL容器基本功能与分类

热门文章

  1. Map集合概述-Map常用子类
  2. TamperMonkey油猴脚本获取
  3. Appium资源汇总
  4. W04 散文周刊 : 重回Emacs
  5. 视觉十四讲:第七讲_2D-2D:对极几何估计姿态
  6. Vue搭建项目的完整流程 如何搭建一个完整的vue项目 vue项目架构
  7. css 显示n行文字的方法 超出的部分用省略号代替
  8. Cesium用wsad进行场景漫游(九)
  9. CF1358D The Best Vacation
  10. 2020-6-2 map?