更新时间:2024-11-20 08:51:28下载pdf
涂鸦网关联网 SDK,借助网关设备的联网能力,直接与涂鸦开发者平台、涂鸦 App 建立通信链路并进行涂鸦标准数据交互的一个软件中间件。您用此 SDK 开发接入涂鸦云的网关产品。
网关类产品
利用网关联网 SDK 以及不同的协议控制器将产品做成实体网关产品,网关向下接入各类不同通信协议的产品,例如 Zigbee、BLE、ZWAVE 等。例如智能家居中常见的控制中心、智慧主机等。网关提供网关固件、网关控制器、子终端设备的固件升级能力。
网关配备子设备类产品
具备网关类产品对子设备的控制外,同时本身也作为设备产品,定义设备的功能点,实现对网关设备的控制。
在开发之前,您需要首先注册涂鸦开发者平台账号,获取设备开发阶段的必要信息,包含产品 ID、授权码等。具体操作指导,请参考 五分钟快速入门。
涂鸦网关联网 SDK 是以 C 语言动态链接库(.so)或者静态库(.a)的形式提供给您,因此,需要您提供其系统的交叉编译工具链来打包 SDK。
同时,涂鸦网关联网 SDK 也会定时上传到 [GitHub],如果编译的产物已包含您的交叉编译工具链,可以直接下载使用。
.
├── build_app.sh
├── CHANGELOG.md
├── demos
├── platforms
└── sdk
├── include
└── lib
├── libtuya_iot.a
目录结构以及使用请参见产物包的 README.md
文件。
设备的身份认证采用一机一密的方式,在设备上烧写设备的唯一的 UUID & authkey,这种方式要求对设备的产线工具进行一定的修改,需要对每个设备烧写不同的 UUID & authkey。
UUID & authkey 成对出现,每一台设备都必须有自己 UUID & authkey,且唯一,请向涂鸦项目经理申请几组用于调试。
设备认证消息通过接口 tuya_iot_set_gw_prod_info 设置。
注意:在 demo 中 PID,UUID & authkey 仅用作测试使用,不能用于实际产品,否则会导致后续产品不可用。PID 需要您自行从涂鸦开发者平台申请。每一台设备都必须有自己 UUID & authkey,且唯一。
OPERATE_RET tuya_iot_init(IN CONST CHAR_T *fs_storge_path)
功能说明
用于初始化网关联网 SDK,必须最先调用。
参数说明
参数名称 | 说明 |
---|---|
fs_storge_path | 为 SDK 分配可读写的路径。 路径长度不能大于 110 个字节。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
CHAR_T *tuya_iot_get_sdk_info(VOID);
功能说明
获取涂鸦联网 SDK 版本信息。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
SDK 信息字符串 | 包含 SDK 的编译时间,平台,以及版本号,使能的功能等。 |
typedef struct {
GW_STATUS_CHANGED_CB gw_status_cb;
GW_UG_INFORM_CB gw_ug_cb;
GW_RESET_IFM_CB gw_reset_cb;
DEV_OBJ_DP_CMD_CB dev_obj_dp_cb;
DEV_RAW_DP_CMD_CB dev_raw_dp_cb;
DEV_DP_QUERY_CB dev_dp_query_cb;
DEV_UG_INFORM_CB dev_ug_cb;
DEV_RESET_IFM_CB dev_reset_cb;
#if defined(TUYA_GW_OPERATOR) && (TUYA_GW_OPERATOR==1)
OPE_HTTPC_GET_CHCODE_CB ope_get_chcode_cb;
#endif
#if defined(ENABLE_ALARM) && (ENABLE_ALARM==1)
GW_OFFLINE_DP_SAVE gw_offline_dp_save_cb;
#endif
} TY_IOT_CBS_S;
功能说明(Summary)
SDK 用户回调接口
成员说明
成员名称 | 说明 |
---|---|
gw_status_cb | 网关状态回调。 |
gw_ug_cb | 详见 gw_ug_cb |
gw_reset_cb | 详见 gw_reset_cb |
dev_obj_dp_cb | 详见 dev_obj_dp_cb |
dev_raw_dp_cb | 详见 dev_raw_dp_cb |
dev_dp_query_cb | DP查询回调 |
dev_ug_cb | 详见 dev_ug_cb |
dev_reset_cb | 详见 dev_reset_cb |
ope_get_chcode_cb | 设置为 NULL。暂不支持。 |
gw_offline_dp_save_cb | 详见 gw_offline_dp_save_cb |
VOID tuya_iot_app_cbs_init(IN CONST TY_IOT_APP_CBS_S *app_cbs);
功能说明
tuya_iot_app_cbs_init
被用来注册成为应用层的回调处理函数。
参数说明
参数名称 | 说明 |
---|---|
app_cbs | 应用回调数组。详见 TY_IOT_APP_CBS_S |
返回值
Void
typedef struct {
GW_APP_LOG_PATH_CB gw_app_log_path_cb;
#if defined(ENABLE_ALARM) && (ENABLE_ALARM==1)
GW_HOME_SECURITY_IF_CB gw_home_security_if_cb;
GW_HOME_SECURITY_ALARM_DEV_CB gw_home_security_alarm_dev_cb;
GW_HOME_SECURITY_ALARM_DEV_CB gw_home_security_alarm_env_dev_cb;
GW_HOME_SECURITY_ALARM_DELAY_STATUS_CB gw_home_security_alarm_delay_status_cb;
GW_HOME_SECURITY_EVENT_CB gw_home_security_event_cb;
GW_HOME_SECURITY_CANCEL_ALARM_CB gw_home_security_cancel_alarm;
#endif
}TY_IOT_APP_CBS_S;
功能说明(Summary)
应用回调接口,包括日志上传回调,以及家庭安防相关回调。
成员说明
成员名称 | 说明 |
---|---|
gw_app_log_path_cb | 详见 gw_app_log_path_cb |
gw_home_security_if_cb | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_if_cb |
gw_home_security_alarm_dev_cb | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_alarm_dev_cb |
gw_home_security_if_cb | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_if_cb |
gw_home_security_alarm_delay_status_cb | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_alarm_delay_status_cb |
gw_home_security_event_cb | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_event_cb |
gw_home_security_cancel_alarm | 家庭安防产品调用。非家庭安防产品设置为 NULL。详见 gw_home_security_cancel_alarm |
typedef struct {
CHAR_T *uuid;
CHAR_T *auth_key;
CHAR_T *ap_ssid;
CHAR_T *ap_passwd;
} WF_GW_PROD_INFO_S;
功能说明
Wi-Fi 产品信息。
成员说明
成员名称 | 说明 |
---|---|
uuid | UUID 字符串。一定不能为 NULL。长度小于或等于 16 字节。 |
auth_key | auth_key 字符串。一定不能为 NULL。长度小于或等于 32 字节。 |
ap_ssid | SSID 前缀。长度小于或等于 16 字节。如果设置为 NULL 时,则 ssid 前缀默认是 “Smartlife-”。 |
ap_passwd | 长度小于或等于 16 字节。默认为 NULL。 |
OPERATE_RET tuya_iot_set_wf_gw_prod_info(IN CONST WF_GW_PROD_INFO_S *wf_prod_info);
功能说明
设置配置类 Wi-Fi 设备的授权信息,授权信息需通过涂鸦获取,否则设备无法正常使用。
参数说明
参数名称 | 说明 |
---|---|
wf_prod_info | 网关产品信息。见 WF_GW_PROD_INFO_S 说明。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wf_gw_init(IN CONST GW_WF_CFG_MTHD_SEL cfg,
IN CONST GW_WF_START_MODE start_mode,
IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *wf_sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
Wi-Fi 网关初始化接口。
参数说明
参数名称 | 说明 |
---|---|
cfg | Wi-Fi 配置方法 |
start_mode | Wi-Fi 配网模式 |
cbs | 用户注册的回调。详见 TY_IOT_CBS_S |
gw_cbs | 用户注册的网关回调。详见 TY_IOT_GW_CBS_S |
product_key | 平台创建产品时获取 |
wf_sw_ver | 固件版本号 |
attr | 网关适配器配置列表 |
attr_num | 网关适配器配置列表个数 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wf_gw_dev_init(IN CONST GW_WF_CFG_MTHD_SEL cfg,
IN CONST GW_WF_START_MODE start_mode,
IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *wf_sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
Wi-Fi 网关和设备初始化接口,相比与 tuya_iot_wf_gw_init,该函数使得网关具有设备的属性,可设置功能点等。
参数说明
参考 tuya_iot_wf_gw_init 接口说明
返回值
参考 tuya_iot_wf_gw_init 接口说明
OPERATE_RET tuya_iot_reg_get_wf_nw_stat_cb(IN CONST GET_WF_NW_STAT_CB nw_stat_cb);
功能说明
获取 Wi-Fi 状态接口。
参数说明
参数名称 | 说明 |
---|---|
nw_stat_cb | 注册网络状态回调函数 |
回调函数 nw_stat_cb 参数为 GW_WIFI_NW_STAT_E 类型, 定义如下:
#define STAT_LOW_POWER 0 // idle status,use to external config network
#define STAT_UNPROVISION 1 // smart config status
#define STAT_AP_STA_UNCFG 2 // ap WIFI config status
#define STAT_AP_STA_DISC 3 // ap WIFI already config,station disconnect
#define STAT_AP_STA_CONN 4 // ap station mode,station connect
#define STAT_STA_DISC 5 // only station mode,disconnect
#define STAT_STA_CONN 6 // station mode connect
#define STAT_CLOUD_CONN 7 // cloud connect
#define STAT_AP_CLOUD_CONN 8 // cloud connect and ap start
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
查询 Wi-Fi 协议之外的其他网关设备的状态,请参考 tuya_iot_base_api.h
文件。
typedef struct {
CHAR_T *uuid;
CHAR_T *auth_key;
} GW_PROD_INFO_S;
功能说明
网关产品信息。
成员说明
成员名称 | 说明 |
---|---|
uuid | UUID 字符串。一定不能为 NULL。 |
auth_key | auth_key 字符串。一定不能为 NULL。 |
OPERATE_RET tuya_iot_set_gw_prod_info(IN CONST GW_PROD_INFO_S *prod_info);
功能说明
设置非 Wi-Fi 配置类联网模组的授权信息,授权信息需通过涂鸦获取,否则设备无法正常使用。
参数说明
参数名称 | 说明 |
---|---|
prod_info | 产品信息。见 GW_PROD_INFO_S |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_gw_init(IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
联网模组网关初始化接口。
参数说明
参数名称 | 说明 |
---|---|
cbs | 您需要注册的回调函数数组。详见 TY_IOT_CBS_S |
gw_cbs | 您需要注册的网关回调函数数组。详见 TY_IOT_GW_CBS_S |
product_key | 在平台创建产品时产品的产品 ID。 |
sw_ver | 固件版本号。 |
attr | 网关适配器配置列表。 |
attr_num | 网关适配器配置列表个数。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_gw_dev_init(IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
联网模组网关加设备初始化接口,相比与 tuya_iot_gw_init,该函数使得网关具有设备的属性,可以设置功能点等。
参数说明
参考 tuya_iot_gw_init 接口说明
返回值
参考 tuya_iot_gw_init 接口说明
OPERATE_RET tuya_iot_reg_get_nw_stat_cb(IN CONST GET_NW_STAT_CB nw_stat_cb);
功能说明
注册联网网络状态获取函数,在注册的回调函数中,您可以获取当前的网络状态信息。
参数说明
参数名称 | 说明 |
---|---|
nw_stat_cb | 注册网络变化回调函数 |
在注册的回调函数中,您根据回调函数参数知道当前网络状态。网络状态 GW_BASE_NW_STAT_T 定义如下:
/* offline in LAN. user wired callback <hwl_bnw_station_conn> return <false> */
#define GB_STAT_LAN_UNCONN 0
/* online in LAN, offline in WAN.
user wired callback <hwl_bnw_station_conn> return <true> but mqtt is offline
*/
#define GB_STAT_LAN_CONN 1
/* online in WAN.
user wired callback <hwl_bnw_station_conn> return <true> and mqtt is online
*/
#define GB_STAT_CLOUD_CONN 2
可参看 tuya_cloud_base_defs.h
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
tuya_iot_set_wired_wifi_gw_prod_info(IN CONST WF_GW_PROD_INFO_S *wf_prod_info);
参数说明参看 tuya_iot_set_wf_gw_prod_info 函数部分。
OPERATE_RET tuya_iot_wired_wifi_gw_init(IN CONST IOT_GW_NET_TYPE_T net_mode,
IN CONST GW_WF_CFG_MTHD_SEL cfg,
IN CONST GW_WF_START_MODE start_mode,
IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *wf_sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
有线 + Wi-Fi 网关初始化接口。
参数说明
参数名称 | 说明 |
---|---|
net_mode | 网络类型 |
cfg | Wi-Fi 配置方法 |
start_mode | Wi-Fi 配网模式 |
cbs | 您需要注册的回调函数数组。见 TY_IOT_CBS_S |
gw_cbs | 您需要注册的网关回调函数数组。见 TY_IOT_GW_CBS_S |
product_key | 平台创建产时获取 |
wf_sw_ver | 固件版本号 |
attr | 网关适配器配置列表 |
attr_num | 网关适配器配置列表个数 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wired_wifi_gw_dev_init(IN CONST IOT_GW_NET_TYPE_T net_mode,
IN CONST GW_WF_CFG_MTHD_SEL cfg,
IN CONST GW_WF_START_MODE start_mode,
IN CONST TY_IOT_CBS_S *cbs,
IN CONST TY_IOT_GW_CBS_S *gw_cbs,
IN CONST CHAR_T *product_key,
IN CONST CHAR_T *wf_sw_ver,
IN CONST GW_ATTACH_ATTR_T *attr,
IN CONST UINT_T attr_num);
功能说明
有线 + Wi-Fi 网关 (网关同时作为设备)初始化接口。
参数说明
参数名称 | 说明 |
---|---|
net_mode | 网络类型 |
cfg | Wi-Fi 配置方法 |
sw_ver | 设备固件版本字符串,格式:xx.xx.xx |
cbs | 您需要注册的回调函数数组。见 TY_IOT_CBS_S |
gw_cbs | 网关回调 |
product_key | 您需要注册的网关回调函数数组。见 TY_IOT_GW_CBS_S |
wf_sw_ver | 固件版本号 |
attr | 网关适配器配置列表 |
attr_num | 网关适配器配置列表个数 |
IOT_GW_NET_TYPE_T 定义:
#define IOT_GW_NET_WIRED 0 //只支持有线, only support wired
#define IOT_GW_NET_WIFI 1 //只支持无线, only support wifi
#define IOT_GW_NET_WIRED_WIFI 2 //有线无线都支持, support wired and wifi
GW_WF_CFG_MTHD_SEL 定义:
#define GWCM_OLD 0 // do not have low power mode
#define GWCM_LOW_POWER 1 // with low power mode
#define GWCM_SPCL_MODE 2 // special low power mode
#define GWCM_OLD_PROD 3 // GWCM_OLD mode with product
在 Linux/Android 系统中,选择 GWCM_OLD_PROD。
GW_WF_START_MODE 定义:
#define WF_START_AP_ONLY 0 // only have ap-cfg mode
#define WF_START_SMART_ONLY 1 // only have smart-cfg mode
#define WF_START_AP_FIRST 2 // have both ap-cfg and smart-cfg. default is ap-cfg mode
#define WF_START_SMART_FIRST 3 // have both ap-cfg and smart-cfg. default is smart-cfg mode
#define WF_START_SMART_AP_CONCURRENT 4 // ap-cfg and smart-cfg is concurrent
参数 attr 需要您设置为支持的适配器。比如网关支持 Zigbee,则可以设置为:
GW_ATTACH_ATTR_T attr[] = {
{GP_DEV_ZB,"1.0.0"},
};
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_reg_get_wired_wifi_nw_stat_cb(nw_stat_cb, wf_nw_stat_cb);
功能说明
使用该接口来注册网络状态管理的回调函数。
参数说明
参数名称 | 说明 |
---|---|
nw_stat_cb | 注册网络状态变化回调函数 |
wf_nw_stat_cb | 注册 Wi-Fi 网络状态变化回调函数 |
参看 tuya_iot_reg_get_nw_stat_cb 以及 tuya_iot_reg_get_wf_nw_stat_cb 回调函数介绍。
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
VOID tuya_iot_gw_wired_wifi_set_net_name(IN CONST CHAR_T *wired_net_name, IN CONST CHAR_T *wifi_net_name);
功能说明
设置有线以及 Wi-Fi 网络的名称。
参数说明
参数名称 | 说明 |
---|---|
wired_net_name | 有线网络接口名称 |
wifi_net_name | Wi-Fi 接口网络名称 |
返回值
返回值 | 说明 |
---|---|
VOID |
说明:tuya_SDK 会开启多线程,进入配网模式生效必须重启整个进程。
因为涂鸦 SDK 兼顾的平台很多,无法兼顾所有的联网模组的硬件细节特性,因此对于 SDK 内部而言,抽象出了一套需要实现的联网设备相关的硬件接口,按产品形态分为两类:Wi-Fi 配置类网络接口、非 Wi-Fi 配置类网络接口,具体说明详见 demo 代码。
设备通过有线接入互联网,不用输入路由器的热点名称和密码,设备已连接外网;只需从 App 端获取激活 token,即可申请在涂鸦云激活设备。
OPERATE_RET tuya_iot_gw_unactive(VOID);
功能说明
重置网关设备,解除网关与 App 的绑定关系,使得网关处于非激活(待配网)状态。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wired_wifi_gw_unactive(VOID)
说明参看 tuya_iot_gw_unactive。
OPERATE_RET tuya_hal_wired_get_ip(OUT NW_IP_S *ip)
功能说明
获取有线网卡的 IP 地址
参数说明
参数名称 | 说明 |
---|---|
ip | IP 信息结构体。网卡的 IP 地址,子网掩码,网关。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
BOOL_T tuya_hal_wired_station_conn(VOID);
功能说明
获取网络连接外网状态。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
TRUE | 设备已经联网。 |
FALSE | 设备断开网络。 |
OPERATE_RET tuya_hal_wired_get_mac(OUT NW_MAC_S *mac)
功能说明
获取有线网络接口的 MAC 地址。可选实现。
参数说明
参数名称 | 说明 |
---|---|
mac | 获取到的网络接口的 MAC 信息。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 获取成功 |
错误码 | 获取失败 |
OPERATE_RET tuya_hal_wired_set_mac(IN CONST NW_MAC_S *mac);
功能说明
设定有线网卡的 MAC 地址。当前无需实现。
参数说明
参数名称 | 说明 |
---|---|
mac | 设置有线网卡的 MAC 地址。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wired_wifi_set_station_connect(IN CONST CHAR_T *ssid,
IN CONST CHAR_T *passwd)
功能说明
如果产品同时兼容有线和无线模式,需要您自己实现 Wi-Fi 连接的函数。
参数说明
参数名称 | 说明 |
---|---|
ssid | Wi-Fi 路由器的 ssid。 |
password | Wi-Fi 路由器的 password。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
BOOL_T tuya_hal_wired_wifi_need_cfg(VOID);
功能说明
若硬件形态为 Wi-Fi + 有线模式,您是否需要连接外部 Wi-Fi 配置。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
TRUE | 如果硬件有 Wi-Fi 接口,用户想要连接 Wi-Fi。 |
FALSE | 如果硬件没有 Wi-Fi 接口,不想连接 Wi-Fi 需返回 FALSE。 |
OPERATE_RET tuya_hal_wired_wifi_station_get_conn_ap_rssi(OUT SCHAR_T *rssi)
功能说明
如果产品同时兼容有线和无线模式,此接口用于获取 Wi-Fi 的 RSSI 值。
参数说明
参数名称 | 说明 |
---|---|
rssi | RSSI 保存获取到的 RSSI 信息。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 获取成功 |
其他 | 获取失败 |
int tuya_hal_wired_if_connect_internet(bool *status);
功能说明
获取网络状态。
参数说明
参数名称 | 说明 |
---|---|
status | 网络状态。 联网则为 TRUE,反之,为 FALSE。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 获取成功 |
其他 | 获取失败 |
OPERATE_RET tuya_iot_wf_gw_unactive(VOID);
功能说明
重置网关设备,解除网关子设备的绑定关系,使得网关处于非激活(待配网)状态。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wired_wifi_gw_unactive(VOID);
功能说明
有线 + Wi-Fi 方式重置。同 tuya_iot_wf_gw_unactive。
OPERATE_RET tuya_iot_wf_fast_get_nc_type(GW_WF_NWC_FAST_STAT_T *nc_type)
功能说明
获取当前 Wi-Fi 配置方式。
参数说明
参数名称 | 说明 |
---|---|
nc_type |
GW_WF_NWC_FAST_STAT_T 定义如下:
#define GWNS_FAST_LOWPOWER 0 // current in low power mode
#define GWNS_FAST_UNCFG_SMC 1 // current in smart-cfg mode
#define GWNS_FAST_UNCFG_AP 2 // current in ap-cfg mode
#define GWNS_FAST_UNCFG_NORMAL 3 // current in normal mode
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_wired_wifi_fast_get_nc_type(GW_WF_NWC_FAST_STAT_T *nc_type);
功能说明
有线 + Wi-Fi 方式下获取当前 Wi-Fi 配置方式。参数说明同 tuya_iot_wf_fast_get_nc_type。
OPERATE_RET tuya_iot_set_wf_cfg_err_code_cb(IN CONST WF_NW_CFG_ERR_CODE_CB wf_nw_cfg_err_code_cb);
功能说明
注册回调函数 — 用来获取 Wi-Fi 配网产生错误码。
参数说明
参数名称 | 说明 |
---|---|
wf_nw_cfg_err_code_cb | 获取 Wi-Fi 配网产生的错误码回调函数 |
回调函数的参数,即为 Wi-Fi 配网产生的错误码。定义如下:
/*初始状态*/
#define NW_CFG_INIT 0
/*激活失败*/
#define NW_CFG_ACTIVE_FAILED 1
/*ap找不到*/
#define NW_CFG_AP_NOT_FOUND 2
/*密码错误*/
#define NW_CFG_ERR_PASSWD 3
/*ap连接不上*/
#define NW_CFG_CANT_CONN_AP 4
/*dhcp错误*/
#define NW_CFG_DHCP_FAILED 5
/*路由器连接成功*/
#define NW_CFG_SUCC 100
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_set_user_def_ap_if(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
功能说明
您自定义 SSID 前缀以及密码。 不设置则 SSID 前缀默认为 “SmartLife-”,密码为空,加密方式为开放。
参数说明
参数名称 | 说明 |
---|---|
ssid | 自定义的 SSID 前缀 |
passwd | 热点密码 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
typedef struct {
uint8_t ssid[WIFI_SSID_LEN+1]; ///< ssid
uint8_t s_len; ///< len of ssid
uint8_t passwd[WIFI_PASSWD_LEN+1]; ///< passwd
uint8_t p_len; ///< len of passwd
uint8_t chan; ///< channel. default:0
WF_AP_AUTH_MODE_E md; ///< encryption type
uint8_t ssid_hidden; ///< ssid hidden default:0
uint8_t max_conn; ///< max sta connect nums default:0
uint16_t ms_interval; ///< broadcast interval default:0
} WF_AP_CFG_IF_S;
功能说明(Summary)
AP 配置结构体。
成员说明
成员名称 | 说明 |
---|---|
ssid | ssid |
s_len | ssid 长度 |
passwd | 密码 |
p_len | 密码长度 |
chan | Wi-Fi 工作信道 |
md | Wi-Fi 加密类型 |
ssid_hidden | hidden 的 SSID |
max_conn | 最大的 station 设备连接数 |
ms_interval | 广播间隔 |
OPERATE_RET tuya_hal_wifi_get_ip(IN CONST WF_IF_E wf,OUT NW_IP_S *ip)
功能说明
获取 Wi-Fi 网卡的 IP 地址。
参数说明
参数名称 | 说明 |
---|---|
wf | Wi-Fi 网卡的工作类型。 |
ip | 保存获取的 IP 信息结构体,信息包含 IP,submask,gateway。 |
WF_IF_E 的类型定义:
typedef enum
{
WF_STATION = 0, // station type; station 类型
WF_AP, // ap type; 热点类型
} WF_IF_E;
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_get_mac(IN CONST WF_IF_E wf,INOUT NW_MAC_S *mac)
功能说明
获取 Wi-Fi 网卡的 MAC 地址。
参数说明
参数名称 | 说明 |
---|---|
wf | Wi-Fi 网卡的工作类型 |
mac | 保存获取到的 MAC 地址。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_set_mac(IN CONST WF_IF_E wf,IN CONST NW_MAC_S *mac)
功能说明
设置 Wi-Fi 设备 MAC 地址。当前不需要实现。
参数说明
参数名称 | 说明 |
---|---|
wf | Wi-Fi 网卡的工作类型。 |
mac | 设置的 MAC 地址。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_set_work_mode(IN CONST WF_WK_MD_E mode)
功能说明
设置 Wi-Fi 工作模式。
参数说明
参数名称 | 说明 |
---|---|
wf | 设置 Wi-Fi 设备工作模式。 |
Wi-Fi 的工作模式定义如下:
typedef enum
{
WWM_LOWPOWER = 0, //wifi work in lowpower mode LINUX系统不关心低功耗问题,不需要处理。
WWM_SNIFFER, // wifi work in sniffer mode
WWM_STATION, // wifi work in station mode
WWM_SOFTAP, // wifi work in ap mode
WWM_STATIONAP, // wifi work in station+ap mode
}WF_WK_MD_E;
在 Wi-Fi 快连配网中需要处理 WWM_SNIFFER 以及 WWM_STATION (或 WWM_STATIONAP)。
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_get_work_mode(OUT WF_WK_MD_E *mode)
功能说明
获取 Wi-Fi 工作模式。
参数说明
参数名称 | 说明 |
---|---|
mode | 同 hwl_wf_wk_mode_set 中 参数 mode 含义一致。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_station_connect(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
功能说明
Wi-Fi 设备根据 ssid & password 连接路由器。
参数说明
参数名称 | 说明 |
---|---|
ssid | 连接路由器的 ssid。 |
password | 连接路由器的 password。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
函数原型
OPERATE_RET tuya_hal_wifi_station_disconnect(VOID)
功能说明
断开 Wi-Fi 设备与路由器的连接。
参数说明
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_station_get_conn_ap_rssi(OUT SCHAR_T *rssi)
功能说明
获取 Wi-Fi 设备的信号强度。
参数说明
参数名称 | 说明 |
---|---|
rssi | 获取到的 RSSI 信息 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_station_get_status(OUT WF_STATION_STAT_E *stat)
功能说明
获取 Wi-Fi 设备的网络状态
参数说明
参数名称 | 说明 |
---|---|
stat | 您需要填充 stat。见 WF_STATION_STAT_E 说明。 |
WF_STATION_STAT_E 说明:
typedef enum {
WSS_IDLE = 0, // not connected; 未连接
WSS_CONNECTING, // connecting wifi; 正在连接
WSS_PASSWD_WRONG, // passwd not match; 密码不对
WSS_NO_AP_FOUND, // ap is not found; 热点未发现
WSS_CONN_FAIL, // connect fail; 连接失败
WSS_CONN_SUCCESS, // connect wifi success; 连接成功
WSS_GOT_IP, // get ip success; 成功获取 IP。
} WF_STATION_STAT_E;
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_set_country_code(IN CONST CHAR_T *p_country_code)
功能说明
设置 Wi-Fi 设备工作的国家码。
参数说明
参数名称 | 说明 |
---|---|
p_country_code | Wi-Fi 设备不同的国家工作的频率以及信道信号强度不相同。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_ap_start(IN CONST WF_AP_CFG_IF_S *cfg)
功能说明
启动 Wi-Fi 热点。
参数说明
参数名称 | 说明 |
---|---|
cfg | 根据传进来的函数参数 cfg 设置 AP。见 WF_AP_CFG_IF_S |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_ap_stop(VOID)
功能说明
AP 配网模式下停止热点。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_all_ap_scan(OUT AP_IF_S **ap_ary,OUT UINT_T *num)
功能说明
获取当前环境下的热点列表信息。
参数说明
参数名称 | 说明 |
---|---|
ap_ary | 当前环境热点信息列表。 |
num | 当前环境热点信息列表长度。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_assign_ap_scan(IN CONST CHAR_T *ssid,OUT AP_IF_S **ap)
功能说明
获取指定 SSID 的热点信息。
参数说明
参数名称 | 说明 |
---|---|
ssid | 指定的热点的 SSID。 |
ap | 获取指定热点信息。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_release_ap(IN AP_IF_S *ap)
功能说明
分配资源的释放处理。
参数说明
参数名称 | 说明 |
---|---|
ap | 释放在 tuya_hal_wifi_all_ap_scan 以及 tuya_hal_wifi_assign_ap_scan 申请的内存。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_set_cur_channel(IN CONST BYTE_T chan)
功能说明
设置 Wi-Fi 工作信道。
参数说明
参数名称 | 说明 |
---|---|
chan | 需要 Wi-Fi 设备工作的信道 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_get_cur_channel(OUT BYTE_T *chan)
功能说明
获取当前工作信道。
参数说明
参数名称 | 说明 |
---|---|
chan | 填充当前 Wi-Fi 设备的工作信道 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_hal_wifi_sniffer_set(IN CONST bool en,IN CONST SNIFFER_CALLBACK cb)
功能说明
设置 Wi-Fi 设备的 sniffer 模式下抓包状态。
参数说明
参数名称 | 说明 |
---|---|
en | 使能/关闭 Wi-Fi 的 sniffer 模式。 |
cb | 通知回调函数。抓取到的空中 802.11 数据包含帧头。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_gw_wf_user_cfg(IN CONST CHAR_T *ssid, IN CONST CHAR_T *passwd,IN CONST CHAR_T *token);
功能说明
当通过除了 Wi-Fi 快连配网和热点配网之外的模式配网时,比如摄像头的二维码配网、声波配网等,调用此接口处理。
参数说明
参数名称 | 说明 |
---|---|
ssid | 热点模式下配网使用的 SSID。 |
passwd | 热点模式下配网使用的 password。 |
token | 热点模式下配网使用的 token。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
您可通过 App 重置网关。
VOID gw_reset_cb(GW_RESET_TYPE_E type);
功能说明
用户注册 TY_IOT_CBS_S 的回调函数 gw_reset_cb。
参数说明
参数名称 | 说明 |
---|---|
type |
GW_RESET_TYPE_E 定义:
typedef enum {
GW_LOCAL_RESET_FACTORY = 0,
GW_REMOTE_UNACTIVE,
GW_LOCAL_UNACTIVE,
GW_REMOTE_RESET_FACTORY,
GW_RESET_DATA_FACTORY, //need clear local data when active
}GW_RESET_TYPE_E;
目前,网关回调中需要处理 GW_REMOTE_RESET_FACTORY 以及 GW_RESET_DATA_FACTORY 重置类型。重置后网关应用需要重启。
返回值
返回值 | 说明 |
---|---|
VOID |
SDK 留有本地重置网关能力,您可通过按键等方式本地重置网关。参看 tuya_iot_gw_unactive 以及 tuya_iot_wf_gw_unactive 等部分。
固件升级主要用于修复设备 BUG 和增加设备新功能。固件升级主要分两种,第一种是设备升级,第二种是 MCU 升级。这里的 Wi-Fi 设备的固件升级均指设备升级。
设备升级过程涉及手机 App 、设备、涂鸦云三端
设备固件上传到云端后,设备不会立即收到升级消息,目前涂鸦支持以下几种方式:
下图中上报升级进度为 tuya_SDK 上报,也可通过 tuya_iot_upgrade_gw_notify 配置为应用层上报
typedef struct {
DEV_TYPE_T tp;
UPGRADE_TYPE_T type;
CHAR_T fw_url[FW_URL_LEN+1];
CHAR_T sw_ver[SW_VER_LEN+1];
UINT_T file_size;
CHAR_T fw_hmac[FW_HMAC_LEN+1];
} FW_UG_S;
功能说明(Summary)
升级的固件信息。
成员说明
成员名称 | 说明 |
---|---|
tp | 固件类型 |
type | UPGRADE_TYPE_NORMAL :普通升级 UPGRADE_TYPE_SILENT : 强制升级 |
fw_url | 固件下载 URL 地址 |
sw_ver | 固件版本号 |
file_size | 固件大小 |
fw_hmac | 固件 HMAC 校验码 |
VOID gw_ug_cb(IN CONST FW_UG_S *fw)
功能说明
用户注册 TY_IOT_CBS_S 结构体的 gw_ug_cb 回调函数。网关有新固件可以升级时通知回调。
参数说明
参数名称 | 说明 |
---|---|
fw | 固件信息。见 FW_UG_S |
返回值
返回值 | 说明 |
---|---|
VOID |
OPERATE_RET tuya_iot_upgrade_gw_notify(IN CONST FW_UG_S *fw,
IN CONST GET_FILE_DATA_CB get_file_cb,
IN CONST UPGRADE_NOTIFY_CB upgrd_nofity_cb,
IN CONST PVOID_T pri_data,
BOOL_T notify,
UINT_T download_buf_size);
功能说明
联网模组固件升级处理接口。
参数说明
参数名称 | 说明 |
---|---|
fw | 固件信息 |
get_file_cb | 下载内容存储的回调函数 |
upgrd_nofity_cb | 通知应用的升级状态的回调函数 |
pri_data | 传递给 get_file_cb 以及 upgrd_nofity_cb 的参数 |
notify | 选择是否由 SDK 上报升级进度 |
download_buf_size | 下载最大缓存,单位字节 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
当需要应用层控制升级进度上报时,请先用 tuya_iot_upgrade_gw_notify 接口关闭 tuya_SDK 上报升级进度。
OPERATE_RET tuya_iot_dev_upgd_progress_rept(IN CONST UINT_T percent,
IN CONST CHAR_T *devid,
IN CONST DEV_TYPE_T tp);
功能说明
上报升级进度。
参数说明
参数名称 | 说明 |
---|---|
percent | 升级进度值。0~99 |
devid | 子设备时,传入子设备的 ID ; 网关时,传入 NULL |
tp | 设备类型 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_dev_upgd_result_report(IN CONST CHAR_T *dev_id,
IN CONST DEV_TYPE_T type,
IN CONST INT_T result);
功能说明
上报设备升级结果。
参数说明
参数名称 | 说明 |
---|---|
devid | 为子设备时,传入子设备的 ID ; 为网关时,传入 NULL。 |
tp | 设备类型 |
result | 升级结果 |
TI_UPGRD_STAT_S 定义:
#define TUS_RD 1 // 升级已准备
#define TUS_UPGRDING 2 // 升级中
#define TUS_UPGRD_FINI 3 // 升级完成
#define TUS_UPGRD_EXEC 4 // 升级完成后离开
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_refuse_upgrade(IN CONST FW_UG_S *fw, IN CONST CHAR_T *dev_id);
功能说明
升级的过程中停止升级。
参数说明
参数名称 | 说明 |
---|---|
fw | 固件信息。见 FW_UG_S |
devid | 为子设备时,传入子设备的 ID ; 为网关时,传入 NULL。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_gw_version_update(IN GW_PERMIT_DEV_TP_T type, IN CONST CHAR_T *ver);
功能说明
升级完成后,更新网关或网关适配器固件版本号。
参数说明
参数名称 | 说明 |
---|---|
type | 网关类型 |
ver | 固件版本号 |
GW_PERMIT_DEV_TP_T 定义:
#define GP_DEV_ZB DEV_ZB_SNGL // Zigbee
#define GP_DEV_OTHER DEV_OTHER_SNGL // 其他
#define GP_DEV_BLE DEV_BLE_SNGL // 蓝牙
#define GP_DEV_INFRARED DEV_INFRARED_SNGL //红外
#define GP_DEV_MCU DEV_NM_NOT_ATH_SNGL // MCU
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回的错误码 |
涂鸦提供基于 MQTT 网络应用协议,实现设备控制和状态上报,MQTT 是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
tuya_SDK 封装了 MQTT 协议层实现,以功能点(以下称为 DP)的形式呈现,支持数值型、布尔型、枚举型、字符串型、故障型,RAW 型数据,像定义 C 变量一样简单。
开发者需要根据设备功能在涂鸦开发者平台创建对应的功能点,新建 DP 请参考 功能定义。
特点:
typedef struct {
DP_CMD_TYPE_E cmd_tp;
DP_TRANS_TYPE_T dtt_tp;
CHAR_T *cid;
CHAR_T *mb_id;
UINT_T dps_cnt;
TY_OBJ_DP_S dps[0];
} TY_RECV_OBJ_DP_S;
功能说明(Summary)
OBJ 类型 DP数据结构。
成员说明
成员名称 | 说明 |
---|---|
cmd_tp | 命令类型,该命令产生方式 |
dtt_tp | 传输类型 |
cid | CID 为 NULL,表示为网关设备 不为空,表示为子设备。 |
mb_id | dtt_tp 为多播时,则 mb_id 为群组 ID |
dps_cnt | 功能点结构体数组个数 |
dps_cnt | 功能点结构体数组 |
typedef struct {
DP_CMD_TYPE_E cmd_tp;
DP_TRANS_TYPE_T dtt_tp;
CHAR_T *cid;
BYTE_T dpid;
CHAR_T *mb_id;
UINT_T len;
BYTE_T data[0];
} TY_RECV_RAW_DP_S;
功能说明(Summary)
RAW 类型 DP点数据结构。
成员说明
参数名称 | 说明 |
---|---|
cmd_tp | 命令类型,该命令产生方式 |
dtt_tp | 传输类型 |
cid | CID 为 NULL,表示为网关设备 不为空,表示为子设备。 |
dpid | DP ID。 |
mb_id | dtt_tp 为多播时,则 mb_id 为群组 ID |
len | 透传数据长度 |
data | 透传数据缓存 |
typedef struct {
CHAR_T *cid;
UINT_T cnt;
BYTE_T dpid[0];
} TY_DP_QUERY_S;
功能说明(Summary)
查询 DP信息。
成员说明
参数名称 | 说明 |
---|---|
cid | CID 为 NULL,表示为网关设备 不为空,表示为子设备。 |
cnt | DP个数。如果等于 0,则表示所有 DP。 |
dpid | 所要查询的 DP ID。 |
VOID dev_obj_dp_cb(IN CONST TY_RECV_OBJ_DP_S *dp);
功能说明
用户注册 TY_IOT_CBS_S 的回调函数 dev_obj_dp_cb。 OBJ 功能点回调。
参数说明
参数名称 | 说明 |
---|---|
dp | SDK 回调给用户的 OBJ 类型功能点数据。参看 TY_RECV_OBJ_DP_S |
返回值
Void
VOID dev_raw_dp_cb(IN CONST TY_RECV_RAW_DP_S *dp);
功能说明
用户注册 TY_IOT_CBS_S 的回调函数 dev_raw_dp_cb。透传类功能点回调。
参数说明
参数名称 | 说明 |
---|---|
dp | SDK 回调给用户的 RAW 类型功能点数据。参看 TY_RECV_RAW_DP_S |
返回值
Void
VOID dev_dp_query_cb(IN CONST TY_DP_QUERY_S *dp_qry);
功能说明
用户注册 TY_IOT_CBS_S 的回调函数 dev_dp_query_cb。设备特定数据查询入口回调。
参数说明
参数名称 | 说明 |
---|---|
dp_qry | 参看 TY_DP_QUERY_S |
返回值
Void
OPERATE_RET dev_report_dp_json_async(IN CONST CHAR_T *dev_id,
IN CONST TY_OBJ_DP_S *dp_data,
IN CONST UINT_T cnt);
功能说明
异步方式,上报功能点信息。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 设备 ID |
dp_data | 功能点数据结构体 |
cnt | dp_data 结构体数组个数 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET dev_report_dp_raw_sync (IN CONST CHAR_T *dev_id,
IN CONST BYTE_T dpid,
IN CONST BYTE_T *data,
IN CONST UINT_T len,
IN CONST UINT_T timeout);
功能说明
设备透传数据同步上报接口,由调用者保障数据上报的可靠性。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 设备 ID |
dpid | 功能点 ID |
data | 透传数据 |
len | 透传数据长度 |
timeout | 函数柱塞超时时间 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
#define dev_report_dp_stat_sync(dev_id, dp_data, cnt, timeout) \
dev_report_dp_stat_sync_extend(dev_id, dp_data, cnt, timeout, TRUE)
OPERATE_RET dev_report_dp_stat_sync_extend(IN CONST CHAR_T *dev_id,
IN CONST TY_OBJ_DP_S *dp_data,
IN CONST UINT_T cnt,
IN CONST UINT_T timeout,
IN CONST BOOL_T enable_auto_retrans);
功能说明
设备结构化数据同步上报接口,由调用者保障数据上报的可靠性,通常用于统计类数据的上报。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 设备 ID |
dp_data | 功能点信息结构体数组。TY_OBJ_DP_S |
cnt | DP 状态数组长度 |
timeout | 函数柱塞超时时间 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
typedef struct {
GW_PERMIT_ADD_DEV_CB gw_add_dev_cb;
GW_DEV_DEL_CB gw_del_cb;
GW_DEV_GRP_INFM_CB gw_dev_grp_cb;
GW_DEV_SCENE_INFM_CB gw_dev_scene_cb;
GW_BIND_DEV_INFORM_CB gw_ifm_cb;
} TY_IOT_GW_CBS_S;
功能说明(Summary)
网关对子设备的添加使能,删除子设备,场景,群组,以及子设备绑定通知的回调函数。。
成员说明
成员名称 | 说明 |
---|---|
gw_add_dev_cb | 参看 gw_add_dev_cb |
gw_del_cb | 参看 gw_del_cb |
gw_dev_grp_cb | 参看 gw_dev_grp_cb |
gw_dev_scene_cb | 参看 gw_dev_scene_cb |
gw_ifm_cb | 参看 gw_ifm_cb |
BOOL_T gw_add_dev_cb(IN CONST GW_PERMIT_DEV_TP_T tp,
IN CONST BOOL_T permit,
IN CONST UINT_T timeout);
功能说明
用户注册 TY_IOT_GW_CBS_S 的回调函数 gw_add_dev_cb。 当添加子设备时,在此回调中实现使能设备入网功能。
参数说明
参数名称 | 说明 |
---|---|
tp | 子设备类型 |
permit | 是否允许添加子设备。TRUE 为允许;FALSE 为禁止。 |
timeout | 配网超时时间。单位为秒 |
返回值
返回值 | 说明 |
---|---|
TRUE | 操作成功 |
FALSE | 失败 |
VOID gw_del_cb(IN CONST CHAR_T *dev_id);
功能说明
用户注册 TY_IOT_GW_CBS_S 的回调函数 gw_del_cb。当子设备被删除时,通过此回调通知用户。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 被删除子设备的 ID。 |
返回值
Void
OPERATE_RET tuya_iot_gw_bind_dev(IN CONST GW_PERMIT_DEV_TP_T tp,
IN CONST USER_DEV_DTL_DEF_T uddd,
IN CONST CHAR_T *id,
IN CONST CHAR_T *pk,
IN CONST CHAR_T *ver);
功能说明
网关绑定子设备接口。当应用使网关添加子设备时,调用此接口绑定发现的子设备。
参数说明
参数名称 | 说明 |
---|---|
tp | 子设备类型。 |
uddd | 设备类型,用户自己定义,区分不同类的设备。 |
id | 子设备 id。长度不能超过25个字节。 |
pk | 子设备 product key。长度不能超过16个字节。 |
ver | 子设备固件版本号。长度不能超过10个字节 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
VOID gw_bind_ifm_cb(IN CONST CHAR_T *dev_id, IN CONST OPERATE_RET op_ret);
功能说明
用户注册的 TY_IOT_GW_CBS_S 的回调函数 gw_bind_ifm_cb。当子设备被绑定后,通过此回调通知用户绑定结果。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 绑定的子设备 ID。 |
op_ret | 绑定结果。 OPRT_OK 表示绑定成功。 其他表示绑定失败。 |
返回值
Void
OPERATE_RET tuya_iot_gw_unbind_dev(IN CONST CHAR_T *id);
功能说明(Summary)
解绑子设备。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 需要从网关解绑的子设备 ID。 |
返回值
返回值 | 说明 |
---|---|
子设备和网关设备层的通信由客户实现,这里只简单说明。
升级进度上报完全可由用户控制,这里只在网关给子设备发送固件包的过程中更新上报进度。
涂鸦智能 App 固件升级超时 60s 机制:每收到设备的一包进度更新消息,重新计时;应用层可通过控制升级进度上报以延长 App 超时。
VOID dev_ug_cb(IN CONST CHAR_T *dev_id, IN CONST FW_UG_S *fw)
功能说明
用户注册的 TY_IOT_CBS_S 中回调函数 dev_ug_cb。 子设备 OTA 固件升级通知,表示有可更新的子设备固件。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 有新固件可更新的子设备 ID。 |
fw | FW_UG_S |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET tuya_iot_upgrade_dev_notify(IN CONST CHAR_T *devid,
IN CONST FW_UG_S *fw,
IN CONST GET_FILE_DATA_CB get_file_cb,
IN CONST UPGRADE_NOTIFY_CB upgrd_nofity_cb,
IN CONST PVOID_T pri_data)
功能说明
设备固件升级接口,包含网关上的主控设备以及各终端子设备的升级。
参数说明
参数名称 | 说明 |
---|---|
devid | 设备 id 字符串 |
fw | 升级的固件信息。见 FW_UG_S |
get_file_cb | 在该回调中实现,下载设备固件并进行存储 |
upgrd_nofity_cb | 下载完成回调通知函数。在该回调中需调用设备的升级函数 |
pri_data | 传递给 get_file_cb 以及 upgrd_nofity_cb 的参数。比如下载升级文件句柄 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_gw_subdevice_update (IN CONST CHAR_T *id, IN CONST CHAR_T *ver);
功能说明
更新子设备的固件版本号。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 子设备 ID。不能超过 25 个字节。 |
ver | 子设备固件版本号。参看本文中涂鸦对版本号的格式的定义。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
开启 tuya_SDK 的心跳检测机制。如下图为开启 SDK 的心跳保活机制时接口调用图。
当启动子设备心跳管理后,在子设备绑定时,调用函数 tuya_iot_set_dev_hb_timeout 设置子设备心跳配置。需注意的是当网关应用重启时,需要调用函数 tuya_iot_dev_traversal 遍历子设备,并设置子设备心跳配置。
OPERATE_RET tuya_iot_dev_online_stat_update(IN CONST CHAR_T *dev_id, IN CONST BOOL_T online);
功能说明
网关更新子设备在线/离线状态。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 子设备 ID。 |
online | 在线状态。 TRUE 为在线, FALSE 为离线。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_sys_mag_hb_init(IN CONST DEV_HEARTBEAT_SEND_CB hb_send_cb);
功能说明
启动子设备心跳管理能力。
参数说明
参数名称 | 说明 |
---|---|
hb_send_cb | 网关每隔 3 秒检查所有的子设备。如果子设备在心跳包超时内,子设备没有发送心跳给网关,则网关会设置子设备为离线,通过 hb_send_cb 通知用户至少三次。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_set_dev_hb_timeout (IN CONST CHAR_T *dev_id, IN CONST TIME_S hb_timeout_time);
功能说明
子设备心跳超时时间设置,若网关在超过设置时间内未收到子设备心跳,则网关会将子设备设置为离线。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 子设备 ID。 |
hb_timeout_time | 心跳超时时间,单位为秒。如果设置为 0xffffffff,该子设备将会被跳过心跳检查,会一直在线。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_fresh_dev_hb(IN CONST CHAR_T *dev_id)
功能说明
当网关收到子设备心跳信息,调用此函数刷新该子设备心跳状态。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 子设备 ID |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
DEV_DESC_IF_S *tuya_iot_dev_traversal(INOUT VOID **iterator);
功能说明
子设备遍历,通过此接口可以遍历网关下所有的子设备。
参数说明
参数名称 | 说明 |
---|---|
iterator | 临时保存链表,用户只需要定义一个空指针即可。 |
返回值
返回值 | 说明 |
---|---|
DEV_DESC_IF_S | 指向设备信息的结构体指针,用户可从中读取设备信息。 |
NULL | 设备信息已读完。 |
OPERATE_RET gw_dev_grp_cb(IN CONST GRP_ACTION_E action, IN CONST CHAR_T *dev_id, IN CONST CHAR_T *grp_id);
功能说明
用户注册 TY_IOT_GW_CBS_S 的回调函数 gw_dev_grp_cb。 在该回调中实现组操作处理命令的实现。
参数说明
参数名称 | 说明 |
---|---|
action | 组的操作类型。增加以及删除组操作。 |
dev_id | 加入组 grp_id 的子设备 ID。 |
grp_id | 组 ID。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_dev_scene_cb(IN CONST SCE_ACTION_E action,
IN CONST CHAR_T *dev_id,
IN CONST CHAR_T *grp_id,
IN CONST CHAR_T *sce_id);
功能说明
用户注册 TY_IOT_GW_CBS_S 的回调函数 gw_dev_scene_cb。在该回调中实现场景处理命令功能。
参数说明
参数名称 | 说明 |
---|---|
action | 场景的操作类型。增加以及删除,以及执行场景操作。 |
dev_id | 子设备 ID。 |
grp_id | 组 ID。 |
sce_id | 场景 ID。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
VOID dev_reset_cb(IN CONST CHAR_T *dev_id, IN DEV_RESET_TYPE_E type)
功能说明
用户注册 TY_IOT_CBS_S 的回调函数 dev_reset_cb。在该回调中需要处理对子设备的重置处理。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 需要重置的子设备 ID。 |
type | 重置类型。 |
typedef enum {
DEV_REMOTE_RESET_FACTORY, //移除设备
DEV_RESET_DATA_FACTORY, //清除本地数据,并移除设备。
} DEV_RESET_TYPE_E;
返回值
返回值 | 说明 |
---|---|
VOID |
VOID app_log_path_cb(OUT CHAR_T *path, IN CONST INT_T len)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 app_log_path_cb。用户在此回调中实现网关日志上传。
参数说明
参数名称 | 说明 |
---|---|
path | 本地日志文件路径字符串,为输出参数 |
len | 本地日志文件路径字符串最大长度 |
返回值
返回值 | 说明 |
---|---|
VOID |
注意:日志管理对于设备维护和问题排查至关重要,设备端建议留有 5MB~10MB 左右空间用来保存设备运行日志,设备出现故障时,可通过网关设备 ID 信息在开发者平台查询设备日志。为了设备问题分析方便,该功能必须实现。
伪代码
STATIC VOID app_log_path_cb(OUT CHAR_T *path, IN CONST INT_T len);
int main(void)
{
tuya_iot_init(CFG_STORAGE_PATH);
......
TY_IOT_APP_CBS_S iot_app_cbs = {
app_log_path_cb,
};
tuya_iot_app_cbs_init(&iot_app_cbs);
......
while(1){
sleep(10);
}
}
/*****************************************************************
* @Function: app_log_path_cb
* @Description: 本地日志获取回调
* @Param[out]: path, 本地日志压缩包文件路径字符串
* @Param[in]: len,本地日志压缩包文件路径字符串最大长度
* @Return: void
*****************************************************************/
STATIC VOID app_log_path_cb(OUT CHAR_T *path, IN CONST INT_T len)
{
PR_DEBUG("app_log_path_cb,log_file_path maxlen:%d",len);
// 这里只是参考,日志文件的保存和压缩需用户自行实现
CHAR_T log_file_path[] = {"/tmp/tuya_log.tar.gz"};
if( (strlen(log_file_path) < len) && (path != NULL) ){
snprintf(path, len, "%s", log_file_path);
}
}
OPERATE_RET tuya_iot_home_secruity_info_set(IN CONST CHAR_T *mode_str,
IN CONST CHAR_T *node_id,
IN CONST CHAR_T *delay_str);
功能说明
设置当前的布防撤防模式,比如遥控器布防撤防。
参数说明
参数名称 | 说明 |
---|---|
mode_str | 布防模式。 “0”:disarm 撤防(固定不变) “1”:在家布防 “2”:离家布防 |
node_id | 触发设置的设备 ID。 “0123456789”:表明是 0123456789 这个设备触发了布防,可以为 NULL。 |
delay_str | 延时布防时间。JSON 格式:{“<mode_str>”: |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_home_secruity_get_alarm_info(OUT ALARM_INFO_S *alarm_info);
功能说明
获取当前安防状态信息。
参数说明
参数名称 | 说明 |
---|---|
alarm_info | 安防信息结构体。当前模式,当前报警状态,布防延时状态。详见 ALARM_INFO_S |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_home_secruity_alarm_status(IN CONST BOOL_T alarm_status);
功能说明
同步报警状态。应用层安防标准 DP 32 的状态变化,通过该 API 接口同步报警状态到 SDK 中。
参数说明
参数名称 | 说明 |
---|---|
alarm_status | 同步的状态 FALSE:正常 TRUE:报警中 |
返回值
返回值 | |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET tuya_iot_net_mode_report(IN CONST HOME_SECURITY_NET_MODE net_mode);
功能说明
同步当前的网络模式。
参数说明
参数名称 | 说明 |
---|---|
net_mode | 以太网,Wi-Fi,4G。 见 **HOME_SECURITY_NET_MODE ** 定义。 |
typedef enum {
HOME_SECURITY_NET_MODE_WAN=0, // wired
HOME_SECURITY_NET_MODE_WIFI, //wifi
HOME_SECURITY_NET_MODE_4G, //4G
} HOME_SECURITY_NET_MODE;
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
VOID app_gw_home_security_if_cb(IN CONST CHAR_T *mode_str, IN CONST UINT_T time, BOOL_T is_sound)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 gw_home_security_if_cb。布防模式切换时,通知应用层的回调。
参数说明
参数名称 | 说明 |
---|---|
mode_str | 布防模式。 “0”:disarm 撤防(固定不变) “1”:在家布防 “2”:离家布防 |
time | 布防模式延时时间。 单位是秒,0表示没有延时 |
is_sound | 是否要播放声音。 FALSE:表示不需要播放声音,只切换模式,主要用于一些程序起动时,不需要播放声音的场景。 TRUE:需要播放声音 |
返回值
Void
VOID app_gw_home_security_alarm_dev_cb(IN CONST CHAR_T *cid, IN ty_cJSON *dp_inf)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 app_gw_home_security_alarm_dev_cb。
当环境设备的某个 DP 触发了设备报警后,通知应用层,最终要通过安防标准 DP 26 上报。
非环境设备与布防撤防有关,只有在布防时才报警。
参数说明
参数名称 | 说明 |
---|---|
cid | 设备 ID。 |
dp_inf | 触发报警的 dp 信息。 |
返回值
Void
VOID app_gw_home_security_alarm_env_dev_cb(IN CONST CHAR_T *cid, IN ty_cJSON *dp_inf)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 app_gw_home_security_alarm_env_dev_cb。
环境设备哪个 dp 触发了设备报警,通知应用层,最终要通过安防标准 DP 26 上报。
环境设备与布防撤防无关,只要有触发就报警。
参数说明
参数名称 | 说明 |
---|---|
cid | 设备 ID。 |
dp_inf | 触发报警的 dp 信息。 |
返回值
Void
VOID app_gw_home_security_alarm_delay_status(IN ALARM_DELAY_STATE alarm_status)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 app_gw_home_security_alarm_delay_status。
延时报警是由 SDK 实现的,当有延时报警时(未报警还在延时中时),通过此接口通知应用。
参数说明
参数名称 | 说明 |
---|---|
alarm_status | 报警延时状态 ALARM_DELAY_DONOT_CREATE:报警延时未创建 ALARM_DELAY_COUNTDOWN:报警延时进行中 ALARM_DELAY_END:报警延时结束 |
typedef enum {
ALARM_DELAY_DONOT_CREATE=0,
ALARM_DELAY_COUNTDOWN,
ALARM_DELAY_END,
} ALARM_DELAY_STATE;
返回值
Void
VOID app_gw_home_security_event(IN SECURITY_EVENT_E security_event_status, PVOID_T data)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 app_gw_home_security_event。
一些事件通知应用。
参数说明
参数名称 | 说明 |
---|---|
security_event_status | 事件类型。 DISARMED_EVENT:disarm 撤防事件(可不关心,if_cb接口有此通知)。 ARMED_EVENT:进入布防 (倒计时后,在家或离家)。 BYPASS_EVNET:有忽略事件发生,主要用于触发播放声音。 WARING_COUNTDOWN:报警倒计时开始,并通过参数 data 传送时间。 |
data |
typedef enum {
DISARMED_EVENT,
ARMED_EVENT, //进入布防(倒计时后,在家或离家)
BYPASS_EVNET, //忽略
WARING_COUNTDOWN, //报警倒计时
} SECURITY_EVENT_E;
返回值
Void
VOID gw_home_security_cancel_alarm(VOID)
功能说明
用户注册 TY_IOT_APP_CBS_S 的回调函数 gw_home_security_cancel_alarm。
取消报警回调函数。收到此信息后,要取消报警,dp 32上报 FALSE。
参数说明
Void
返回值
Void
typedef struct {
CHAR_T alarm_mode[ALARM_SECURITY_MODE_STR_LEN_MAX+1];
BOOL_T alarm_status;
BOOL_T enable_countdown_status;
} ALARM_INFO_S;
功能说明
成员说明
成员名称 | 说明 |
---|---|
alarm_mode | 布防模式。 “0”:disarm 撤防(固定不变) “1”:在家布防 “2”:离家布防 |
alarm_status | 报警状态。 TRUE : 报警状态中 (报警延时,以及报警中) FALSE: 正常状态。 |
enable_countdown_status | 布防延迟状态。 TRUE:布防延迟中 FALSE:其他 |
VOID tuya_iot_set_engineer_mode(VOID);
功能说明
设置SDK处于工程模式下。在调用网关初始化函数 (tuya_iot_gw_<*>_init) 之前调用。
参数说明
Void
返回值
Void
BOOL_T tuya_iot_get_engineer_mode(VOID);
功能说明
检测是否处于工程模式。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
BOOL_T | TRUE:处于工程模式下 FALSE:处于普通模式下。 |
OPERATE_RET tuya_iot_gw_engineer_check(IN CONST CHAR_T *engineer_path, ENGR_TO_NORMAL_FINISH_CB cb);
功能说明
网关开始从工程模式恢复到正常模式。
参数说明
参数名称 | 说明 |
---|---|
engineer_path | 工程模式存储路径。 |
cb | 工程模式恢复到正常模式完成回调通知。 在回调中,需要删除工程模式存储下的文件。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
typedef struct {
GW_PERMIT_ADD_DEV_CB gw_add_dev_cb;
GW_DEV_DEL_CB gw_del_cb;
GW_DEV_GRP_INFM_CB gw_dev_grp_cb;
GW_DEV_SCENE_INFM_CB gw_dev_scene_cb;
GW_BIND_DEV_INFORM_CB gw_ifm_cb;
GW_SCE_PANEL_BIND_CB gw_sce_panel_cb;
} TY_IOT_GW_CBS_ENGR_S;
功能说明
网关对子设备的添加使能,删除子设备,场景,群组,以及子设备绑定通知,场景面板设置的回调函数。。
成员说明
成员名称 | 说明 |
---|---|
gw_add_dev_cb | 与 TY_IOT_GW_CBS_S 中使用方法一致。 参看 gw_add_dev_cb |
gw_del_cb | 与 TY_IOT_GW_CBS_S 中使用方法一致。参看 gw_del_cb |
gw_dev_grp_cb | 与 TY_IOT_GW_CBS_S 中使用方法一致。参看 gw_dev_grp_cb |
gw_dev_scene_cb | 与 TY_IOT_GW_CBS_S 中使用方法一致。参看 gw_dev_scene_cb |
gw_ifm_cb | 与 TY_IOT_GW_CBS_S 中使用方法一致。参看 gw_ifm_cb |
gw_sce_panel_cb | 参看 gw_sce_panel_cb |
typedef struct {
GW_STATUS_CHANGED_CB gw_status_cb;
GW_UG_LAN_INFORM_CB gw_lan_ug_cb;
GW_RESET_IFM_CB gw_reset_cb;
DEV_OBJ_DP_CMD_CB dev_obj_dp_cb;
DEV_RAW_DP_CMD_CB dev_raw_dp_cb;
DEV_DP_QUERY_CB dev_dp_query_cb;
DEV_UG_LAN_INFORM_CB dev_lan_ug_cb;
DEV_RESET_IFM_CB dev_reset_cb;
GW_SET_CHANNEL_CB gw_set_channel_cb;
GW_GET_CHANNEL_CB gw_get_channel_cb;
GW_GET_LOG_CB gw_get_log_cb;
GW_SYNC_CONFIG_CB gw_sync_config_cb;
GW_ENG_FIN_CB gw_engineer_finish_cb;
} TY_IOT_CBS_ENGR_S;
功能说明
成员说明
成员名称 | 说明 |
---|---|
gw_status_cb | 与 TY_IOT_CBS_S 中 gw_status_cb 使用方法一致。 |
gw_lan_ug_cb | 与 TY_IOT_CBS_S 中 gw_ug_cb 使用方法一致。 |
gw_reset_cb | 与 TY_IOT_CBS_S 中 gw_reset_cb 使用方法一致。 |
dev_obj_dp_cb | 与 TY_IOT_CBS_S 中 dev_obj_dp_cb 使用方法一致。 |
dev_raw_dp_cb | 与 TY_IOT_CBS_S 中 dev_raw_dp_cb 使用方法一致。 |
dev_dp_query_cb | 与 TY_IOT_CBS_S 中 dev_dp_query_cb 使用方法一致。 |
dev_lan_ug_cb | 与 TY_IOT_CBS_S 中 dev_ug_cb 使用方法一致。 |
dev_reset_cb | 与 TY_IOT_CBS_S 中 dev_reset_cb 使用方法一致。 |
gw_set_channel_cb | 详见 gw_set_channel_cb。 |
gw_get_channel_cb | 详见 gw_get_channel_cb。 |
gw_get_log_cb | 详见 gw_get_log_cb。 |
gw_sync_config_cb | 详见 gw_sync_config_cb。 |
gw_engineer_finish_cb | 详见 gw_engineer_finish_cb。 |
OPERATE_RET gw_sce_panel_cb(IN CONST CHAR_T *dev_id,
IN CONST SCE_PANEL_S *sce_panel,
IN CONST INT_T btn_num)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_sce_panel_cb。
设置场景面板回调。
参数说明
参数名称 | 说明 |
---|---|
dev_id | 场景面板设备 ID。 |
sce_panel | 需要设置的面板信息结构体数组。详见 SCE_PANEL_S。 |
btn_num | 面板个数。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_set_channel_cb(IN INT_T channel)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_set_channel_cb。
设置网关控制器工作信道。如果非无线,设置该回调 NULL。
注意 : 重新设置了信道,可能子设备需要重新绑定。
参数说明
参数名称 | 说明 |
---|---|
channel | 设置网关控制的无线工作信道。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_get_channel_cb(OUT INT_T *channel)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_get_channel_cb。
获取网关控制器无线工作信道。如果非无线,设置该回调 NULL。
参数说明
参数名称 | 说明 |
---|---|
*channel | 保存获取到的网关控制器的无线工作信道。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_get_log_cb(OUT CHAR_T *path, IN CONST INT_T len)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_get_log_cb。
上传本地日志回调。
参数说明
参数名称 | 说明 |
---|---|
path | 需要上传日志文件路径。比如:/tmp/tuya.tar.gz。 |
len | 参数 path 支持的最大长度。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_sync_config_cb(VOID)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_sync_config_cb。
同步工程文件到普通模式运行下。SDK 相关文件包括:tuya_user.db,以及 tuya_enckey.db。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
OPERATE_RET gw_engineer_finish_cb(VOID)
功能说明
用户注册 TY_IOT_GW_CBS_ENGR_S 的回调函数 gw_engineer_finish_cb。
工程部署完成通知回调。回调中需要实现网关应用重启。
参数说明
Void
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 失败返回错误码 |
typedef struct {
INT_T btn;
CHAR_T *grp;
CHAR_T *sce;
CHAR_T *sce_name;
} SCE_PANEL_S;
功能说明
面板信息结构体。
成员说明
成员名称 | 说明 |
---|---|
btn | 按键 ID。 |
grp | 群组 ID。 |
sce | 场景 ID。 |
sce_name | 场景名称。 |
错误码 | 原因 | 解决方法 |
---|---|---|
-944 | 上报功能点时,对应的 DPID 不在该产品下 | 登陆涂鸦开发者平台确认 |
-916 | 设备与涂鸦云 MQTT 服务器长连接断开 | 排查设备端连接外网是否 OK |
-926 | 设备上报 MQTT 数据时,等待服务器 puback 超时 | 检查设备网络情况或降低上报频率 |
-945 | DP属性值不匹配 | 排查上报的 DP属性值和平台定义是否一致 |
错误码定义参看: tuya_cloud_error_code.h
。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈