智能家居HiLinkSDK集成开发调测指导.docx
《智能家居HiLinkSDK集成开发调测指导.docx》由会员分享,可在线阅读,更多相关《智能家居HiLinkSDK集成开发调测指导.docx(24页珍藏版)》请在冰豆网上搜索。
智能家居HiLinkSDK集成开发调测指导
智能家居HiLinkSDK
API说明
文档版本
02
发布日期
2019-01-03
华为技术有限公司
版权所有©华为技术有限公司2019。
保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。
除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址:
深圳市龙岗区坂田华为总部办公楼邮编:
518129
网址:
客户服务邮箱:
support@
1概述
本文档用于说明HiLinkSDK开发包提供的所有API接口,本文中罗列的部分接口对于开发者来说不一定是必须使用的。
API接口的头文件在HiLinkSDK开发包的如下位置:
hilinksdk
|-include
hilink.h
HiLinkSDK静态库主头文件,包含HiLinkSDK入口函数和时间获取函数
hilink_device.h
产品功能适配头文件,包含:
●设备信息、设备模型定义
●待实现设备服务控制、查询响应函数声明
●供调用设备服务状态上报函数声明
hilink_ota.h
OTA功能定义头文件
hilink_osadapter.h
HiLinkSDK操作系统适配头文件,包含系统时间、Flash读写、字符串操作、内存操作等系统函数适配接口声明
hilink_log.h
HiLinkSDK系统提供的日志打印接口函数声明头文件
hilink_typedef.h
系统类型定义头文件
2HiLinkSDK主要API说明
2.1HiLinkSDK入口函数
/*****************************************************************************
功能描述:
HiLinkSDK主流程入口函数,启动HiLink配网及互联互通功能
输入参数:
void
返回参数:
0主流程启动成功,其他值主流程启动失败
*****************************************************************************/
inthilink_main(void);
2.2获取设备状态函数
/*****************************************************************************
功能描述:
获取设备在线状态
输入参数:
void
返回参数:
0offline,1online
*****************************************************************************/
inthilink_get_devstatus(void);
2.3设置恢复出厂状态
/*****************************************************************************
功能描述:
调用该接口完成设备恢复出厂设置,该接口会设置恢复出厂标志,在标志
设置成功之后会清理掉ssid账号信息,并重启模组
输入参数:
void
返回参数:
0恢复出厂成功,-1恢复出厂失败
*****************************************************************************/
inthilink_restore_factory_settings(void);
2.4获取用户配置
/*****************************************************************************
功能描述:
获取存储在Flash的用户配置信息
输入参数:
len用户需要获取的配置信息长度
输出参数:
config用户获取的配置信息缓存
返回参数:
0获取成功,-1获取失败
注意事项:
(1)config的内存分配和初始化由调用者完成;
(2)用户可获取的配置信息最大长度为32字节.
*****************************************************************************/
intHilinkGetUserConfig(unsignedshortlen,char*config);
2.5保存用户配置
/*****************************************************************************
功能描述:
保存用户配置信息到flash
输入参数:
config用户配置信息
输入参数:
len用户配置信息长度
返回参数:
0保存成功,-1保存失败
注意事项:
(1)信息写入为覆盖更新,每次写入前会清空旧的数据;
(2)用户可存储的配置信息最大长度为32字节.
*****************************************************************************/
intHilinkSetUserConfig(char*config,unsignedshortlen);
2.6获取本地时间
/*****************************************************************************
功能描述:
时间同步模块获取本地日期信息
输出参数:
p_time_info本地日期信息
返回参数:
0获取成功,-1获取失败
*****************************************************************************/
inthilink_get_local_time_info(pstHILINK_TIME_INFOp_time_info);
2.7获取UTC时间信息
/*****************************************************************************
功能描述:
时间同步模块获取当前UTC时间和时区信息
输出参数:
p_time_msutc时间,单位ms
输出参数:
time_zone时区信息字符串,posixtz格式
输入参数:
len时区信息字符串长度
返回参数:
0获取成功,-1获取失败
*****************************************************************************/
inthilink_get_utc_time_ms(unsignedlonglong*p_time_ms,char*time_zone,unsignedintlen);
2.8获取UTC日期信息
/*****************************************************************************
功能描述:
时间同步模块获取当前UTC日期信息
输出参数:
p_time_infoUTC日期信息
返回参数:
0获取成功,-1获取失败
*****************************************************************************/
inthilink_get_utc_time_info(pstHILINK_TIME_INFOp_time_info);
2.9转换毫秒时间为日期
/*****************************************************************************
功能描述:
时间同步模块转换ms为日期
输入参数:
time_msms为单位的时间
输出参数:
p_time_info转换后的日期信息
返回参数:
0转换成功,-1转换失败
*****************************************************************************/
inthilink_convert_time(unsignedlonglongtime_ms,pstHILINK_TIME_INFOp_time_info);
3日志打印API说明
3.1判断日志是否打印
/*****************************************************************************
功能描述:
判断某级别日志是否打印
输入参数:
level日志级别(参见hilink_log.h中debug_level_t定义)
返回参数:
1可以打印,0不可打印
*****************************************************************************/
boollog_is_print(debug_level_tlevel);
3.2设置某级别日志可以打印
/*****************************************************************************
功能描述:
设置某级别日志可以打印
输入参数:
level日志级别(参见hilink_log.h中debug_level_t定义)
*****************************************************************************/
voidset_log_level(debug_level_tlevel);
3.3日志打印
/*****************************************************************************
功能描述:
日志打印
输入参数:
format格式化字符
输入参数:
…可变参数
*****************************************************************************/
inthilink_printf(constchar*format,...);
4OS适配层API说明
4.1获取主机IP
/*****************************************************************************
功能描述:
获取远端主机IP
输入参数:
hostname远端主机名称/url
输出参数:
ip_list存放远端主机ip地址列表的数组
输入参数:
num存放远端主机ip地址列表的数组的大小
返回参数:
0成功,其他值失败
*****************************************************************************/
inthilink_gethostbyname(char*hostname,charip_list[][40],intnum);
4.2获取系统时间
/*****************************************************************************
功能描述:
获取系统时间
输出参数:
ms系统时间,以毫秒为单位
返回参数:
0成功,其他值失败
注意事项:
在esp8266上该时间最小单位为10ms
*****************************************************************************/
inthilink_gettime(unsignedlong*ms);
4.3计算字符串长度
/*****************************************************************************
功能描述:
计算字符串长度
输入参数:
src字符串
返回参数:
字符串长度值
注意事项:
src字符串须保证以'\0'结尾
*****************************************************************************/
unsignedinthilink_strlen(constchar*src);
4.4字符串比较
/*****************************************************************************
功能描述:
字符串内容比较
输入参数:
str1字符串1
输入参数:
str2字符串2
输入参数:
len比较长度
返回参数:
0字符串相等,>0str1>str2,<0str1*****************************************************************************/
inthilink_strncmp(constchar*str1,constchar*str2,unsignedintlen);
4.5查找字符串中的字符
/*****************************************************************************
功能描述:
在字符串str中查找字符ch
输入参数:
str字符串
输入参数:
ch待查找的字符
返回参数:
NULL未找到该字符,其他值该字符地址
*****************************************************************************/
char*hilink_strchr(char*str,intch);
4.6逆向查找字符串中的字符
/*****************************************************************************
功能描述:
在字符串str中逆向查找字符ch
输入参数:
str字符串
输入参数:
ch待查找的字符
返回参数:
NULL未找到该字符,其他值该字符地址
*****************************************************************************/
char*hilink_strrchr(constchar*str,charch);
4.7将字符串转换为整数
/*****************************************************************************
功能描述:
将字符串转换为整数
输入参数:
str字符串
返回参数:
转换后的整数
*****************************************************************************/
inthilink_atoi(constchar*str);
4.8短整形主机字节序转网络字节序
/*****************************************************************************
功能描述:
短整形主机字节序转网络字节序
输入参数:
hs主机字节序数
返回参数:
网络字节序数
*****************************************************************************/
unsignedshorthilink_htons(unsignedshorths);
4.9短整形网络字节序转主机字节序
/*****************************************************************************
功能描述:
短整形网络字节序转主机字节序
输入参数:
hs网络字节序数
返回参数:
主机字节序数
*****************************************************************************/
unsignedshorthilink_ntohs(unsignedshorths);
4.10解析JSON结构体
/*****************************************************************************
功能描述:
将字符串形式的json数据解析为json结构体类型的数据
输入参数:
value字符串形式的json数据
返回参数:
NULL解析失败,其他值指向json结构体的指针
*****************************************************************************/
void*hilink_constchar*value);
4.11JSON解析字符串值
/*****************************************************************************
功能描述:
获取json结构体中的字符串值
输入参数:
objectjson结构体指针
输入参数:
name需要获取的item的名字
输出参数:
len获取的item的value的长度
返回参数:
NULL获取失败,其他值指向该值的指针
*****************************************************************************/
char*hilink_void*object,char*name,unsignedint*len);
4.12JSON解析数据值
/*****************************************************************************
功能描述:
获取json结构体中的数据值
输入参数:
objectjson结构体指针
输入参数:
name需要获取的item的名字
输出参数:
value获取的item的value
返回参数:
0获取成功,其他值获取失败
*****************************************************************************/
inthilink_void*object,char*name,int*value);
4.13获取JSON结构体对象
/*****************************************************************************
功能描述:
获取json结构体对象
输入参数:
objectjson结构体指针
输入参数:
name需要获取的item的名字
返回参数:
NULL获取失败,其他值指向该结构体的指针
*****************************************************************************/
void*hilink_void*object,constchar*name);
4.14获取JSON数组元素
/*****************************************************************************
功能描述:
获取json数组元素
输入参数:
arrayjson数组
输入参数:
item要获取的jsonitem
返回参数:
NULL获取失败,其他值指向该结构体的指针
*****************************************************************************/
void*hilink_void*array,intitem);
4.15获取JSON数组大小
/*****************************************************************************
功能描述:
获取json数组元素
输入参数:
arrayjson数组
返回参数:
数组大小
*****************************************************************************/
inthilink_void*array);
4.16删除JSON对象
/*****************************************************************************
功能描述:
删除json对象结构体
输入参数:
object结构体对象指针
*****************************************************************************/
voidhilink_void*object);
4.17清空JSON对象的字符串数据
/*****************************************************************************
功能描述:
清零json对象结构体中的字符串数据
输入参数:
object结构体对象指针
****************************************