Vendor Model的使用
转载于:https://www.yuque.com/u2144260/ydsnkg/vgp0r8
Vendor Model的使用
MESH_USER_DEFINE_MODE选择MESH_NORMAL_MODE时,
telink预留32个op code即0xC0-0xDF,客户使用32个即0xE0-0xFF。
注册vendor model请参考 vendor_model.c的 mesh_cmd_sig_func_t mesh_cmd_vd_func[]
#if 0 // DEBUG_VENDOR_CMD_EN // just for sample, default disable,
{VD_GROUP_G_SET, 0, VENDOR_MD_LIGHT_C, VENDOR_MD_LIGHT_S, cb_vd_group_g_set, VD_GROUP_G_STATUS},
{VD_GROUP_G_GET, 0, VENDOR_MD_LIGHT_C, VENDOR_MD_LIGHT_S, cb_vd_group_g_get, VD_GROUP_G_STATUS},
{VD_GROUP_G_SET_NOACK, 0, VENDOR_MD_LIGHT_C, VENDOR_MD_LIGHT_S, cb_vd_group_g_set, STATUS_NONE},
{VD_GROUP_G_STATUS, 1, VENDOR_MD_LIGHT_S, VENDOR_MD_LIGHT_C, cb_vd_group_g_status, STATUS_NONE},
#endif
typedef struct{
u16 op;
u16 status_cmd; // receive status message even though there is not server model // u16 for align
u32 model_id_tx;
u32 model_id_rx;
cb_cmd_sig2_t cb;
u32 op_rsp; // -1 for no rsp and ensure 4BYTE align
}mesh_cmd_sig_func_t;
op:新增的op code
status cmd:标志位,表明该op code是某一acknowledge request command的status command
model_id_tx:发送命令时的model id
model_id_rx:接收命令时的model id,若节点的composition data没有相对应的model id,会自动忽略命令
cb:接收到命令时调用的回调函数
op_rsp:标志位,需要status回复则为对应的status command,否则为STATUS_NONE
增加acknowledge command(即request command with status response):
例子:添加VD_LIGHT_ONOFF_SET
1)在mesh_cmd_vd_func[]中添加
{VD_LIGHT_ONOFF_SET,0,VENDOR_MD_LIGHT_C,VENDOR_MD_LIGHT_S,
&cb_vd_light_onoff_set,VD_LIGHT_ONOFF_STATUS}
2)该命令需要TID,需要在is_cmd_with_tid_vendor()添加对应分支
TID主要用于避免命令的重复执行
3)编写cb_vd_light_onoff_set(),调用light_onoff_idx()执行开关灯
4)由于该命令需要ack回复,所以编写vd_light_onoff_st_rsp()并且调用在里面调用mesh_tx_cmd(VD_LIGHT_ONOFF_STATUS,。。。)
5)封装发送VD_LIGHT_ONOFF_SET的命令接口vd_cmd_onoff()
增加unacknowledge command
1)mesh_cmd_vd_func[]中添加
{VD_LIGHT_ONOFF_SET_NOACK,0,VENDOR_MD_LIGHT_C,VENDOR_MD_LIGHT_S,
&cb_vd_light_onoff_set,STATUS_NONE}
2)添加TID
3)编写cb_vd_light_onoff_set()与VD_LIGHT_ONOFF_SET共用
4)不需要ack
5)封装发送VD_LIGHT_ONOFF_SET命令的接口vd_cmd_onoff()
Vendor Model的使用相关推荐
- Sig Mesh第一课:基于Generic OnOff Model的Mesh点灯应用
前言 该文字教程主要是讲解如何通过Nordic官方的Mesh SDK包,创建一个标准的Generic OnOff模型.目前网络上对于关于SIG MESH相关的实战文字教程很少,截至目前小编写这篇文章时 ...
- Ble Mesh的Generic Model IDOpcode
MODEL ID 标准的为16为,自定义的Vendor Model ID为32位 Model Group Model Name SIG Model ID Generic Generic OnOff S ...
- l-lsblk查看设备可用块设备
lsblk命令(列出块设备)用于列出所有可用的块设备的信息,但是, 它并没有列出有关的RAM磁盘的信息.块设备的例子是硬盘,闪存驱动器,CD-ROM等等,一般可以和blkid命令搭配,blkid可以查 ...
- PHP PSR-1 基本代码规范(中文版)
基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 "必须"("MUST")."一定不可 ...
- 在LVM中恢复已删除的物理卷
本文中将详细介绍如何从已删除的物理卷或故障磁盘场景中恢复. 系统环境 Centos8 现有的文件系统 下面使用了/dev/sd[a-c]三块磁盘,将他们划入一个卷组,创建两个逻辑卷: # Create ...
- zabbix文档3.4-7配置
zabbix文档3.4-7配置 1 主机和主机组 典型的Zabbix主机是您希望监视的设备(服务器,工作站,交换机等). 创建主机是Zabbix中首个监控任务之一.例如,如果要监视服务器"x ...
- PHP 的一些开发规范
长篇慎入 分以下几点说明 一些编码的经验 PSR-1 PSR-2 PSR-3 PSR-4 一些编码的经验 变量命名 不用拼音 驼峰或下划线风格要一致 单词要有意义 不用关键字 常量全大写用下划线连接 ...
- 拿来主义——老外写的系统统计脚本
附件里下载该脚本. [root@TestSizeServer ~]# ./system_summary # Aspersa System Summary Report ################ ...
- php代码规范的书籍,php基本代码规范——PSR-1
基本代码规范 本节我们将会讨论一些基本的代码规范问题,以此作为将来讨论更高级别的代码分享和技术互用的基础. RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD),不建议 ...
- 思科UCS服务器怎么安装系统,安装Redhat/CentOS操作系统在UCS M系列服务器
简介 本文描述如何安装Redhat企业Linux (RHEL)或在思科统一计算系统(UCS)使用局部存储器, M系列服务器的CentOS Linux. Cisco 建议您了解以下主题: Cisco U ...
最新文章
- VLC SDK在VS2010中的配置及简单使用举例
- 【总结整理】数据可视化
- Filter若不写chain.doFilter(request,response)原Servlet路径代码不会被执行
- 基于Flask开发企业级REST API应用(一)
- 【script】lambda的使用
- 什么叫内部银团_MOS管和IGBT管有什么区别?
- boot jndi数据源 spring_使用Spring Boot配置JNDI数据源 -Roy教程
- 萌新的Python练习菜鸟100例(十八)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
- 今日恐慌与贪婪指数为72 贪婪程度有所缓解
- maven 项目 missing jdk.tools.jar
- GridView网格控件
- 关于python提交spark以及在spark环境中使用本地包的方法--针对于集群无法在线下包以及python版本和spark绑定的问题解决
- 【数据库】SQL建表
- android系统签名及修改
- 一阶惯性加纯滞后模型matlab代码,基于西门子工业软件的仿真系统设计-一阶惯性加纯滞后对象 - 百度(精)...
- Spring Bean生命周期
- 控制物体沿椭圆轨迹运动
- android 玩pc游戏,如何在您的Android设备上玩经典PC游戏 | MOS86
- U盘如何使用量产工具格式化
- 团队作业——团队项目Alpha版本发布
热门文章
- 要装系统就装WINDOWSXPSP3VL正式版操作系统
- C++核心编程-5 文件操作
- 最网最全python框架--scrapy(体系学习,爬取全站校花图片),学完显著提高爬虫能力(附源代码),突破各种反爬
- 网卡配置里NM_CONTROLLED的意思
- MySQL工作有多努力--了解MySQL Threads Running
- 关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作)
- 开源运维管理平台(ows) damo版本源码发布
- windows7 内部版本7601 此windows副本不是正版 ---解决方案
- torch.Longtensor是什么?和torch.Tensor有什么区别?
- 金融企业如何构建有效的数据分析体系?1000+案例经验汇总