EC600U_esp32_iap_uart/HiLinkSDK/include/hilink_device.h
2024-02-05 17:39:56 +08:00

150 lines
4.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) Huawei Technologies Co., Ltd. 2019-2021. All rights reserved.
* Description: HiLink产品适配头文件
* Notes: 该文件中的接口需要对外提供给第三方厂商使用,为了前向兼容,部分老接口暂不按最新编码规范整改.
*/
#ifndef HILINK_DEVICE_H
#define HILINK_DEVICE_H
#ifdef __cplusplus
extern "C" {
#endif
/* 设备版本信息 */
#define FIRMWARE_VER "1.0.0"
#define SOFTWARE_VER "1.0.0"
#define HARDWARE_VER "1.0.0"
/* 设备产品信息 */
#define PRODUCT_ID "1011"
#define DEVICE_TYPE "01D"
#define MANUAFACTURER "011"
#define DEVICE_MODEL "SP mini3-HL"
/* 请确保设备类型英文名和厂商英文名长度之和不超过17字节 */
#define DEVICE_TYPE_NAME "Switch"
#define MANUAFACTURER_NAME "Broadlink"
/* 通信协议类型: WiFi */
#define PROTOCOL_TYPE 1
/* HiLink SDK 通知厂商模组重启原因 */
#define HILINK_REBOOT_WATCHDOG 0
#define HILINK_REBOOT_DEVDELETE 1
/* 设备与云端连接断开(版本向前兼容) */
#define HILINK_M2M_CLOUD_OFFLINE 0
/* 设备连接云端成功,处于正常工作态(版本向前兼容) */
#define HILINK_M2M_CLOUD_ONLINE 1
/* 设备与云端连接长时间断开(版本向前兼容) */
#define HILINK_M2M_LONG_OFFLINE 2
/* 设备与云端连接长时间断开后进行重启(版本向前兼容) */
#define HILINK_M2M_LONG_OFFLINE_REBOOT 3
/* HiLink线程未启动 */
#define HILINK_UNINITIALIZED 4
/* 设备处于配网模式 */
#define HILINK_LINK_UNDER_AUTO_CONFIG 5
/* 设备处于10分钟超时状态 */
#define HILINK_LINK_CONFIG_TIMEOUT 6
/* 设备正在连接路由器 */
#define HILINK_LINK_CONNECTTING_WIFI 7
/* 设备已经连上路由器 */
#define HILINK_LINK_CONNECTED_WIFI 8
/* 设备正在连接云端 */
#define HILINK_M2M_CONNECTTING_CLOUD 9
/* 设备与路由器的连接断开 */
#define HILINK_M2M_CLOUD_DISCONNECT 10
/* 设备被注册 */
#define HILINK_DEVICE_REGISTERED 11
/* 设备被解绑 */
#define HILINK_DEVICE_UNREGISTER 12
/* 设备复位标记置位 */
#define HILINK_REVOKE_FLAG_SET 13
/* 设备协商注册信息失败 */
#define HILINK_NEGO_REG_INFO_FAIL 14
/* 设备序列号最大长度 */
#define MAX_SN_LENGTH 40
/* 获取BI 参数接口函数 */
char *hilink_get_auto_bi_rsa_cipher(void);
/* 获取AC 参数接口函数 */
unsigned char *hilink_get_auto_ac(void);
/*
* 修改服务当前字段值
* svcId为服务的IDpayload为接收到需要修改的Json格式的字段与其值len为payload的长度
* 返回0表示服务状态值修改成功不需要底层设备主动上报由HiLink SDK上报
* 返回-101表示获得报文不符合要求
* 返回-111表示服务状态值正在修改中修改成功后底层设备必须主动上报
*/
int hilink_put_char_state(const char *svcId, const char *payload, unsigned int len);
/*
* 获取服务字段值
* svcId表示服务ID。厂商实现该函数时需要对svcId进行判断
* in表示接收到的Json格式的字段与其值
* inLen表示接收到的in的长度
* out表示保存服务字段值内容的指针,内存由厂商开辟使用完成后由Hilink Device SDK释放
* outLen表示读取到的payload的长度
* 返回0表示服务状态字段值获取成功返回非0表示获取服务状态字段值不成功。
*/
int hilink_get_char_state(const char *svcId, const char *in, unsigned int inLen, char **out, unsigned int *outLen);
/*
* 获取设备sn号
* 参数len表示sn的最大长度,39字节
* 参数sn表示设备sn
* sn指向的字符串长度为0时将使用设备mac地址作为sn
*/
void HilinkGetDeviceSn(unsigned int len, char *sn);
/*
* 获取设备相关版本号
* 返回0表示版本号获取成功返回其他表示版本号获取失败
* 注意此接口为HiLink内部调用函数
*/
int getDeviceVersion(char **firmwareVer, char **softwareVer, char **hardwareVer);
/*
* 获取SoftAp配网PIN码
* 返回值为8位数字PIN码, 返回-1表示使用HiLink SDK的默认PIN码
* 该接口需设备开发者实现
*/
int HiLinkGetPinCode(void);
/*
* 查询当前设备敏感性标识
* 返回0为非敏感设备返回1为敏感设备
*/
int HILINK_IsSensitiveDevice(void);
/*
* 通知设备的状态
* status表示设备当前的状态
* 注意,此函数由设备厂商根据产品业务选择性实现
*/
void hilink_notify_devstatus(int status);
/*
* 实现模组重启前的设备操作
* flag为0表示HiLink SDK 线程看门狗触发模组重启; 为1表示APP删除设备触发模组重启
* 返回0表示处理成功, 系统可以重启,使用硬重启; 返回1表示处理成功, 系统可以重启,使用软重启;
* 返回负值表示处理失败, 系统不能重启
* 注意此函数由设备厂商实现若APP删除设备触发模组重启时设备操作完务必返回0否则会导致删除设备异常
*/
int hilink_process_before_restart(int flag);
/*
* 获取设备故障码并通知APP
* status表示是否发送故障0表示不发送1表示发送code表示故障码
* 返回0表示成功返回非0失败
*/
int get_faultDetection_state(int *status, int *code);
#ifdef __cplusplus
}
#endif
#endif