4.3.12. HiLink
4.3.12.1. 概述
本示例实现华为HiLink协议套餐4 (harmony connect suit4) 方式接入,实例以智能灯的形态展现,支持智慧生活APP连接和控制蓝牙设备;可控制开关灯,可在APP端执行OTA升级设备功能。
支持通用芯片系列
4.3.12.2. 工程配置
代码工程: apps/spp_and_le/board/bdxx/AC63xN_spp_and_le.cbp
配置 app 选择(apps/spp_and_le/include/app_config.h), 选择对应的应用示例
*//app case 选择,只能选 1 个,要配置对应的 board_config.h* #define CONFIG_APP_HILINK 1 \ *//华为协议*
配置板级蓝牙设置(apps/spp_and_le/board/brxx/board_acxxxx_demo.cfg) ,只开 BLE 不开 EDR
//**\\**// // 蓝牙配置 // //**\\**\ \*\ **\**\**\ \*// #define TCFG_USER_TWS_ENABLE 0 //tws功能使能 #define TCFG_USER_BLE_ENABLE 1 //BLE功能使能 #define TCFG_USER_EDR_ENABLE 0 //EDR功能使能
4.3.12.3. HiLink协议开发说明
4.3.12.3.1. 产品创建
(1)登录华为DP平台https://devicepartner.huawei.com/console/,申请账号后登录进入控制台。
(2)在产品开发界面创建一个产品选择 极小硬件方案并填写产品定义信息
(3)在交互设计界面智慧生活APP部分开发H5界面
进入集成开发界面配置蓝牙名称
4.3.12.3.2. OTA文件上传
点击设备SN管理添加一个设备组并将要升级设备的SN码填写好点击确定
(2)在OTA升级页面新增一个固件版本
(3)下载固件模版包
(4)将下载目录下的db_update_data.bin使用windows自带的工具计算sha256值:打开windows的命令行,使用以下命令计算得到文件的sha256值
` certutil -hashfile 文件名 SHA256 `
(5)将模版文件夹的image2_all_ota1.bin和image2_all_ota2.bin都替换为db_update_data.bin,并且名称都改为image2_all_ota1.bin和image2_all_ota2.bin。打开模版中的filelist.json文件把刚刚计算到的sha256值填入相应位置
(6)将package文件夹压缩成zip格式。回到网页上传文件并且填写剩余信息后点下一步
完成固件部署后点击测试发布
等待版本发布成功即可进行OTA升级
4.3.12.3.3. 模块开发说明
HiLink厂商信息设置
在DP平台的产品开发界面导出设备信息
导出设备信息后填入到hilink_demo.c文件的hilink_product_info结构体中。
结构体中的prodID, model, dev_t, prot_t分别对应导出的产品信息json文件中的prodId, deviceModel, deviceTypeId,protocolType(ble即为4)
其他的参数自行定义
修改蓝牙ble名称
gap_name_unbound和gap_name_bound区别在于名字开头的Hi和HI。
修改广播内容
红框1处修改为ProdID的HEX形式,实例的ProdID为2HRS,即为0x32,0x48,0x52,0x53
红框2处修改为SN码的后两位,实例的SN码后两位为AB,即为0x41,0X42
功能开发
本实例已经完成配网鉴权流程与消息解析流程,用户需要在hilink_protocol.c文件中的int hilink_cmd_deal(uint8_t *buf)函数里根据申请的产品的具体功能,添加功能点sid的判断,并根据传递下来的值去执行相应功能,并将改变后的产品状态进行上报。
例如本实例的灯控开关功能,将下发控制命令的json数据解析出功能点sid为switch后获取控制开关的值并将灯的开关状态做相应的改动。
实际使用演示
(1)进入产品集成开发页面下载测试用app
(2)打开APP后进入设置->关于->环境设置,选择认证沙箱后重启app,进入设置->关于 ->环境设置,关闭设备升级白名单。
(3)回到主界面点击右上角‘+’号或者添加设备来搜索连接设备