《智能家居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/hilink.h中声明的以下函数保存用户的设备状态或配置,最长32字节。intHiIinkSetUserConfig(unsignedshortlen,char*config);注意,每次保存都会覆盖之前旧的内容。使用示例:chariConfig32=/*用户配置或状态*/;intret=HiIinkSetUserConfig(32,inConfig);if(ret=0)*保存成功7else