智能家居HiLinkSDK集成开发调测指导.docx
《智能家居HiLinkSDK集成开发调测指导.docx》由会员分享,可在线阅读,更多相关《智能家居HiLinkSDK集成开发调测指导.docx(32页珍藏版)》请在三一办公上搜索。
1、智能家居HiLinkSDK集成开发调测指导文档版本02发布日期2019-0118华为技术有限公司HUAWEI版权所有华为技术有限公司2019。保留一切权利。非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。商标声明号和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。由于产品版本升级或其他原因,本文档内
2、容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。华为技术有限公司地址:深圳市龙岗区坂田华为总部办公楼邮编:518129网址:客户服务邮箱:support目录1概述52开发包结构63HiLinkSDK集成详细步骤73.1 添加HiLinkSDK开发包到主程序工程中73.2 联网功能集成73.3 互联互通功能集成73.3.1 修改设备信息73.3.2 获取设备在线状态(可选)83.3.3 实现恢复出厂设置(可选)83.3.4 存取设备状态或配置(可选)93.3.5 实现设备服务状态控制功能103.3.6 实现设备服务状态查询功能10
3、3.3.7 实现设备服务状态上报功能113.3.8 实现设备重启预处理功能1133.9 实现HiLink网关模式下连云模式功能(可选)1133.10 HOTA功能集成(可选)(乐鑫ESP8266模组和汉枫LPB130模组支持)1133.10.1 升级接口函数1233.11 OTA功能集成(可选)(除乐鑫ESP8266和汉枫LPBI30模组外其他模组都支持)1333.11.1 升级配置1433.11.2 升级业务函数1533.12 DHCPOption60功能实现164功能验证164.1 概述164.2 APP调试环境设置174.3 搜索添加待测设备194.4 验证设备控制功能275附录一:适配
4、模组HiLilIkSDKFlaSh使用情况305.1 乐鑫esp8266模组305.2 庆科emw3090模组305.3 博联bl3303模组315.4 汉枫lpbl20模组315.5 汉枫lpbl30模组315.6 瑞昱rtl8710模组321概述本文档用于指导智能家居厂家在智能设备中集成和调测HiLinkSDK,实现和验证HiLink设备的远程控制、设备状态上报和OTA升级等功能。HiLinkSDK的开发集成整体流程如下:2开发包结构HiLink根据开发者提供的设备模型定义和模组型号生成设备的HiLinkSDK开发包,其结构及文件说明如下表:目录文件名说明doc智能家居HiLinkSDK集
5、成开发调测指导智能家居设备集成HiLinkSDK开发和调测指导书HiLink智能家居解决方案SDK基本功能测试用例HiLink智能家居设备自验用例集智能家居HiLinkSDK集成FAQHiLinkSDK集成中常见问题FAQhilinksdkI-Iiblibhilinkdevicesdk_debug.aHiLinkSDK静态库文件Debug版本,用于设备调测时集成libhilinkdevicesdk_release.aHiLinkSDK静态库文件Release版本,用于商用设备发布时集成libhilinkota_debug.aHOTA升级特性静态库文件Debug版本,用于设备调测时集成(目前仅支
6、持乐鑫ESP8266和汉枫LPB130模组)libhilinkota_release.aHOTA升级特性静态库文件Release版本,用于商用设备发布时集成(目前仅支持乐鑫ESP8266和汉枫1.PB130模组)hilinksdk!-includehilink.hHiLinkSDK静态库主头文件,包含HiLinkSDK入口函数和时间获取函数hilink_device.h产品功能适配头文件,包含: 设备信息、设备模型定义 待实现设备服务控制、查询响应函数声明 供调用设备服务状态上报函数声明hilink_ota.hOTA功能定义头文件hilink_osadapter.hHiLinkSDK操作系统适
7、配头文件,包含系统时间、FIaSh读写、字符串操作、内存操作等系统函数适配接口声明hilink_log.hHiLinkSDK系统提供的日志打印接口函数声明头文件hilink_typedef.h系统类型定义头文件hilinksdkhilink_device.c产品功能适配源文件,包含设备模型相关待实现函数hilink_ota.cHiLink设备OTA升级功能待实现函数hilink_device_sdk.c根据设备模型生成的内部处理源代码,请勿修改MakefileMakefiIe样例文件,供开发时参考3HiLinkSDK集成详细步骤3.1 添加HiLinkSDK开发包到主程序工程中解压HiLink
8、SDK开发包到本地智能设备主程序源代码工程目录。通过修改Makefile文件,将HiLinkSDK开发包中的源代码文件(*.c)头文件(*.h)和静态库文件(*.a)添加到智能设备程序编译中。在设备开发调测过程中,引用IibhiIinkdeViCesdk_debug.a,可通过串口查看设备运行调试日志。在设备商用发布时,引用IibhiIinkdeViCeSdk_release.a,屏蔽开发调试日志。3.2 联网功能集成联网功能指HiLink智能家居APP扫描添加设备、绑定设备到用户帐号的功能。功能实现已封装到HiLinkSDK静态库内部。集成联网功能,开发者只需在设备程序中调用hilink_m
9、ain()函数即可,示例代码如下:includehilink.hvoidmain(void)(hilink_main();)3.3 互联互通功能集成互联互通功能包括:智能设备响应华为智能家居APP的服务状态控制命令;智能设备上报服务状态给华为智能家居APP;智能设备处理华为智能家居APP的服务状态查询命令。集成互联互通功能,请参考如下步骤:3.3.1 修改设备信息1 .版本信息打开hilinksdkincludehilink-device.h文件,根据实际情况修改设备的固件版本、软件版本、硬件版本,系统默认均设置为“1.0.0版本。#defineFIRMWARE_VER1.0.0#define
10、SOFTWARE_VER1.0.0#defineHARDWARE_VER1.0.02 .设备SN录入设备默认使用MAC地址作为SN号,如果开发者需要根据实际情况录入SN,可以实现hilinksdk/hilink_device.c中的如下接口,将SN数据传递给HiLinkSDKovoidHilinkGetDeviceSn(unsignedintIenzchar*sn);参数说明:(1) unsignedintlen:SN限制的最大长度,39字节;(2) char*sn:录入的SN信息。3.3.2获取设备在线状态(可选)开发者可以通过接口获取设备当前状态,当前支持状态列表如下:/*设备与云端连接断
11、开(版本向前兼葡/HdefineHILINK_M2M_CL0UD_0FFLINEO/*设备连接云端成功,处于正常工作态(版本向前兼容)*/UdefineHILINK_M2M_CL0UD_0NLINE1/*设备与云端连接长时间断开(版本向前兼容)*/HdefineHILINK_M2M_L0NG_0FFLINE2/*设备与云端连接长时间断开后进行重启(版本向前兼容)VHdefineHILINK_M2M_L0NG_0FFLINE_REB00T3*HiLink线程未启动*/UdefineHILINK_UNINITIALIZED4/*设备处于配网模式*/defineHILINK_LINK_UNDER_A
12、UTO_CONFIG5/*设备处于10分钟超时状态*/UdefineHILINK_LINK_CONFIG_TIMEOUT6/*设备正在连接路由器7UdefineHILINK_LINK_CONNECTTING_WIFI7/*设备已经连上路由器7UdefineHILINK_LINK_CONNECTED_WIFI8/*设备正在连接云端7ttdefineHILINK_M2M_C0NNECTTING_CL0UD9/*设备与路由器的连接断开7UdefineHILINK_M2M_CL0UD_DISC0NNECT101 .查询接口调用hilinksdk/include/hilink.h中声明的inthilin
13、k_get_devstatus(VOid)函数,返回值对应上面不同的状态。2 .状态变化回调函数实现hilinksdk/hilink_device.c中的虚函数hilink_notify_devstatus(intstatus),添加设备在线状态变化时的响应处理:voidhilink_notify_devstatus(intstatus)(Switch(Status)caseHILINK_M2M_CL0UD_0FFLINE:设备与云赢接断并,请在此处添加实现break;caseHlIJNK_M2M_CL0UD_。NLlNE:设A连接云端成正,请在此处添加实现break;default:brea
14、k;)3.3.3 实现恢复出厂设置(可选)恢复出厂设置,设备会清除Flash和华为智能家居云记录的设备绑定信息,并重新进入配网状态。如果智能设备有恢复出厂设置按钮或接口,可在按钮/接口触发时调用hilinksdk/include/hilink.h下的hilink_restore_factory_settings()o3.3.4 存取设备状态或配置(可选)HiLinkSDK提供了接口供开发者将一些简单的状态信息保存到FIaSh,FIaSh空间大小32字节。对没有电控板MCU的设备,可调用下面的接口将状态保存到模组FIaSh中。1 .保存用户设备状态调用hilinksdk/include/hili
15、nk.h中声明的以下函数保存用户的设备状态或配置,最长32字节。intHiIinkSetUserConfig(unsignedshortlen,char*config);注意,每次保存都会覆盖之前旧的内容。使用示例:chariConfig32=/*用户配置或状态*/;intret=HiIinkSetUserConfig(32,inConfig);if(ret=0)*保存成功7else/*保存失败*/2 .获取用户设备状态调用hilinksdk/include/hilink.h中声明的以下函数获取之前保存的设备状态或配置,最长32字节。intHiIinkGetUserConfig(char*co
16、nfig,unsignedshortlen);注意,参数Config是出参,调用者需要需要预先分配好内存。获取的设备状态或配置会被保存到config分配的内存中。使用示例:charoutConfg32=0;intret=HiIinkGetUserConfig(outConfig,32);if(ret=-0)*获取成功,信息被获取到OUtCOnfig中*/Jelse/*获取失败*/)3.3.5 实现设备服务状态控制功能华为根据产品功能定义,在hilinksdk/hilink_device.c中自动生成各个服务状态控制功能函数的代码框架。开发者需根据自身业务实现hilink_device.c文件中
17、的各个handle.服务IDmd()函数。例1,实现空调开关功能的函数:inthandle_switch_cmd(bool*on)/实现对on属性的修改if(on!=NULL)/请在此处实现设备状态改变的操作)/若同步操作改变设备状态,状态改变后,返回HILINK_OK/若异步操作改变设备状态,此处返回HluNK_PROCESSING,待状态改变后主动上报新状态returnHILINK_OK;)例2,实现空调风力调节功能的函数inthandle_wind_cmd(int*WindDireCtiOn/*风向*/,int*WindSPeed/*风速*/)(开发者实现,根据属性WindDireCti
18、On、WindSPeed的取值设置设备状态if(WindDirection=NULL)请在此处实现设备状态改变的操作)if(windSpeed!=NULL)/请在此处实现设备状态改变的操作)/若同步操作改变设备状态,状态改变后,返回HILINK,OK/若异步操作改变设备状态,此处返回HIUNKPROCESSING,待状态改变后主动上报新状态returnHILINK_OK;)3.3.6 实现设备服务状态查询功能华为根据产品功能定义,在hilinksdk/hilink_device.c中自动生成各个服务状态查询功能函数的代码框架。开发者需要根据自身业务逻辑实现hilink-device.c文件中g
19、et_服务ID_state()函数。例1,空调温度状态查询函数:intget_temperature_state(int*CurrentTemperature,int*targetTemperature)开发者实现,为入参CurrentTemperature,targetTemperature赋值returnHILINK_RET_SUCCESS;3.3.7 实现设备服务状态上报功能华为根据产品功能定义,在hilinksdk/include/hilink_device.h中自动生成服务状态上报功能的函数定义report_服务ID_state()o开发者需要在业务需要时(例如状态变化、周期性上报等
20、),调用report.服务ID_state()上报服务的当前状态。例1,如下为空调开关状态的上报函数:intreport_switch_state(boolon);3.3.8 实现设备重启预处理功能在hilinksdk/hilink_device.c中自动生成了模组重启之前供开发者实现的接口inthilink_process_before_restart(intflag),在异常情况下,HiLinkSDK会请求重启模组,调用该接口通知开发者进行数据备份等必要操作,以保证模组重启后的运行状态与重启前一致。若该接口的返回O,HiLinkSDK将重启模组,否则继续等待。这里的flag表示了不同的重启
21、类型,当flag为0时,表示HiLinkSDK线程看门狗触发即将重启,此时函数返回值既可以为。(允许重启),也可以为非0(不允许重启),需要开发者根据具体业务状态决定;当flag为1时,表示APP侧删除设备即将重启,此时函数返同值必须为。(允许重启),否则将导致删除设备功能异常。注意:请将该接口实现为非阻塞函数。3.3.9 实现HiLink网关模式下连云模式功能(可选)设备在HiLink网关模式下(绑定华为帐号)进行配网成功后,默认会由网关代理设备注册到云端,之后设备与云端的通信都会由网关进行代理转发。如果开发者需要设置在HiLink网关模式下连接华为智能家居云模式,可以调用在hilink.h
22、中的HiLinkSetGatewayMode(intflag)函数实现设备与云端的连接模式。当flag为。时,表示打开网关注册但关闭网关代理转发功能,1表示打开网关注册和代理转发功能,2表示关闭网关的注册和代理转发功能。3.4HOTA功能集成(可选)(乐鑫ESP8266模组和汉枫LPB130模组支持)HiLink设备的升级通过华为智能家居APP触发或者用户打开自动升级功能自动触发,由HiLinkSDK实现模组和MCU升级业务,开发者只需要实现几个接口,整体流程如下图所示:手机APPHILink SDK开发者检测新版本上报新版本信息i5HilinkGetMc UVersion触发新版本检测系统周
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能家居 HiLinkSDK 集成 开发 指导
链接地址:https://www.31ppt.com/p-6834943.html