大黄蜂—ble-mcu通信协议 - 机智云.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大黄蜂—ble-mcu通信协议 - 机智云

中控之设备管理API接口分析 机智云 编制人 崔栗峰 审核人 批准人 产品名称 产品型号 文档编号 会签日期 版本 GizWits 修改记录 修改时间人.0.1 目 录 目录 3 一、结构体 4 1、子设备属性结构体 4 2、 设备类型列表 4 3、 设备信息列表 定义结构体的全局变量 4 二、设备管理函数 5 1、 DMSetMode() 进入配置模式 5 2、 DMAddDevice(uint8_t *data,uint8_t len,devAttr_t *devAttr) 设备添加 5 3、 DMDelDevice(devAttr_t *devAttr) 设备删除 5 4、 DMReportDeviceList() 设备列表变更 6 5、 DMRequestDeviceList() 设备列表查询 6 6、 DMDeviceIsOnline(uint8_t *data,uint8_t len) 上下线通知 7 一、结构体 1、子设备属性结构体 devAttr_t { Uint8_t isUsed :1; //是否有效 Uint8_t isOnLine :1; //是否在线 Uint8_t wirelessType:4; //通信类型 Uint8_t Reserve :2; Uint8_t devType[32]; //就是PK Uint8_t mac[6]; //mac地址 Uint32_t devNum; //subID Uint32_t group; //所在组别 Uint32_t lastReportTime; //上次上报时间 } 设备类型列表 devTypeList { Uint8_t productKey[devType][32]; } 设备信息列表 定义结构体的全局变量 devInfoList { devAttr_t devInfo[32]; } 为每一个子设备都创建一个属性实例devInfo[ ] 。 中控和子设备之间采用UDP模拟zigbee通讯 二、设备管理函数 DMSetMode() 进入配置模式 设备列表初始化等。 无参数。 DMAddDevice(uint8_t *data,uint8_t len,devAttr_t *devAttr) 设备添加 输出参数:devAttr_t *devAttr 将添加进来的子设备初始化,主要是PK、SDID 输入参数:子设备向中控发出的协议数据 uint8_t *data 和数据长度len。 流程: app向中控发添加子设备命令(0x0B),中控处于接收状态(设定一定时间,超过时间没接收,则向app发连接超时), 中控向子设备发一个东西? 子设备向中控发AA+PK;中控收到 AA+PK后,将PK保存在结构体中,并给sid赋值; 中控向GAgent发P0命令0x0F,告诉app子设备列表发生变化: Gagent收到子设备列表发生变化的信号后,返回ack。 备注: ①子设备发给中控的数据只是PK,中控根据收到的PK,将属性结构体初始化。Mac地址怎么初始化呢? ②属性结构体在系统初始化时,32个数组都需要初始化为0. ③可以将子设备SDID变量devNum,作为子设备列表中的数组参数。即devInfoList.devInfo[devNum] ④命令为P0命令,0x0B。 ⑤ 子设备层目前先不考虑。 ⑥命令是app传给中控的,中控根据不同的命令来做不同的操作。添加子设备是让中控来做。 ⑦中控向GAgent发0xf,告诉app,子设备列表发生变化。需要定一个结构体,来存放向中控发的信息。 结构体包含(协议头,action命令,设备种类数(2B),PK(第一种设备),第一种设备个数(2B),第一个设备SDID(4B),设备是否在线(1B),校验sum(1B))。 如果设备种类不唯一: ⑧ 在添加子设备后,还需要将相同PK的子设备个数统计出来,赋值给结构体 ?。 DMDelDevice(devAttr_t *devAttr) 设备删除 输入参数:devAttr_t *devAttr 。 备注: 将是否有效位直接置0,在对子设备操作前,先判断该位是否为1。然后再删除其他属性信息。 ①如果仅有一个子设备,那么删除SDID、PK。 ②如果有不止一个子设备,相同PK的子设备多于1个,

文档评论(0)

wujianz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档