涂鸦网关扩展 SDK 说明

版本记录

版本 编写/修订说明 修订日期 备注
1.0.0 创建文档 20200310
1.0.1 支持工程部署 20200405
1.0.2 优化文档,添加指示灯 20200417
1.0.3 添加 AP & EZ 模式切换 20200425
1.0.4 添加安防功能 20200515
1.0.5 移除指示灯接口,添加状态指示接口 20200713
1.0.6 一键配网功能改为接口调用的形式 20200730

概述

涂鸦网关扩展 SDK 是涂鸦网关技术部门开发并提供,是对接涂鸦云平台的解决方案代码。SDK 封装了网关与 Zigbee 模块、网关与涂鸦云 & 涂鸦 APP 的通信,第三方系统开发者无需关心通信层的实现,可以完全专注于其业务的开发,很大程度上降低了网关的开发门槛。

基于该 SDK 可以开发多种形态的网关产品,以增强产品的差异性。产品形态包括但不局限于:

总体结构如下图所示,涂鸦网关扩展 SDK 下行与 Zigbee 模块通信,上行与涂鸦云 & 涂鸦 APP 通信。第三方系统开发者基于涂鸦网关扩展 SDK 开发其应用。

必备条件

在开发之前,第三方系统开发者需要先注册涂鸦 IoT 平台账号,获取设备开发阶段的必要信息,如 PID、授权码等。具体操作指导,请参见涂鸦文档中心,如有疑问请与涂鸦商务联系。

硬件要求

软件要求

SDK 获取

涂鸦网关扩展 SDK 是以 C 语言动态链接库(.so)或者静态库(.a)的形式提供给用户,因此,需要用户提供其系统的交叉编译工具链来打包 SDK。

同时,涂鸦网关扩展 SDK 的产物托管在 GitHub,找到对应的交叉编译工具链可直接下载使用,如有问题请联系涂鸦技术支持。

目录结构

├── CHANGE_LOG.md   # 版本信息  
├── Makefile
├── README.md       # 使用说明  
├── build_app.sh    # 编译脚本  
├── demos           # 示例代码目录  
├── tools           # 工具代码目录,如Zigbee射频测试工具  
└── sdk
    ├── include     # SDK头文件  
    └── lib         # SDK库文件  

开发总览

用户应用是由第三方系统开发者基于涂鸦网关扩展 SDK 开发,为了降低开发者的开发成本,开发指南的章节按功能划分。基础功能章节是网关的基础,是网关开发必选章节,而其余章节,开发者只需要关注其业务所涉及的功能对应的章节。

产品类型 功能开发章节
Zigbee 网关 基础功能
多功能 Zigbee 网关 基础功能 + 设备功能点
多协议融合网关 基础功能 + 设备功能点 + 其他设备接入
Zigbee 扩展网关 基础功能 + 设备功能点 + Zigbee设备接入

说明一下,网关支持三种配网方式,分别是有线配网、无线配网、有线+无线配网。由于无线部分每个平台操作都不同,所以配网方式选择无线配网有线+无线配网时,开发者需要实现 hal_wifi.c 的接口,接口说明请参见配网功能

工程部署和安防功能默认是没有开启的,如需要支持工程部署功能或者安防功能,请与涂鸦商务联系。

基础功能

基本功能是开发网关产品的基础,包含了必选功能和可选功能。必选功能是基于涂鸦网关扩展 SDK 进行二次开发必须要实现的功能,可选功能是用户可以根据实际需求来选择是否需要实现。

SDK 初始化、网关本地日志、网关应用重启、网关升级、网关重置,其他为可选功能。

!注意,网关本地日志功能是用于网关设备量产出货后,可以从涂鸦运营平台上拉取网关的本地日志进行分析定位问题,此功能对故障分析非常重要,强烈建议开发者实现该功能。

SDK 初始化

功能说明

SDK 初始化用于申请 SDK 运行时需要的系统资源,以及初始化网关基本业务。

开发流程

网关本地日志

功能说明

对于量产的网关产品,可以通过涂鸦运营平台拉取本地日志进行故障分析。当在运营平台上拉取日志时,会触发网关本地日志回调,第三方系统开发者要在回调中实现获取本地日志的功能。

开发流程

网关应用重启

功能说明

网关完成 Zigbee 模块升级、网关重置等操作时,需要重启网关应用。当需要重启网关应用时,会触发网关应用重启回调,第三方系统开发者要在回调中实现重启网关应用的功能。

开发流程

网关升级

功能说明

当网关有新版本可升级时,在涂鸦 APP 上触发网关升级,网关会自动下载固件,校验通过后会触发网关升级回调,第三方系统开发者要在回调中实现网关升级的功能。

开发流程

网关重置

功能说明

当在涂鸦 APP 恢复网关出厂设置时,会触发网关重置回调,第三方系统开发者可以在回调中实现其重置业务。

开发流程

网关激活通知

功能说明

当网关成功绑定或者解绑涂鸦云时,会触发网关激活通知回调,第三方系统开发者可以在回调中处理其业务(如控制指示灯)。

开发流程

网关上线通知

功能说明

当网关成功连接涂鸦云或连接断开时,会触发网关上线通知回调,第三方系统开发者可以在回调中处理其业务(如控制指示灯)。

开发流程

网关模式通知

功能说明

当网关模式发生变化时,会触发网关模式通知回调。网关包含两种模式:设备配网开始、设备配网结束(超时)。第三方系统开发者可以在回调中实现指示灯控制逻辑。

开发流程

工程部署模式

功能说明

工程部署模式用于离线部署,搭配涂鸦施工 APP 使用。部署完成后切换到普通模式,用户绑定网关后会同步工程部署的子设备、场景以及自动化。为了方便施工,工程模式仅支持 AP 配网。注意,工程部署模式默认是没有开启的,如需要使用工程部署模式,请与涂鸦商务联系。

开发流程

网关绑定

功能说明

SDK 留有本地绑定网关的能力,第三方系统开发者可以用有效的 token 将网关绑定到涂鸦云。常见的有蓝牙配网,设备端通过手机 APP 蓝牙通信获取激活 token,或者通过云云对接从涂鸦云获取激活 token。

开发流程

网关解绑

功能说明

SDK 留有本地解绑网关的能力,第三方系统开发者可通过按键等方式解绑网关。

开发流程

设备入网

功能说明

SDK 留有本地控制子设备入网的能力,第三方系统开发者可通过按键等方式进行开启或关闭子设备入网。

开发流程

API 接口说明

tuya_user_iot_init()

int tuya_user_iot_init(ty_gw_attr_s *attr, 
                       ty_gw_infra_cbs_s *cbs)

功能说明( Summary )

初始化 SDK 基本业务的接口。

参数说明( Parameters )

参数名称 说明
attr 参考 ty_gw_attr_s 结构体说明
cbs 参考 ty_gw_infra_cbs_s 接口体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_active_gw()

int tuya_user_iot_active_gw(const char *token);

功能说明( Summary )

本地绑定网关的接口。

参数说明( Parameters )

参数名称 说明
token 绑定网关的 token

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_unactive_gw()

int tuya_user_iot_unactive_gw(void);

功能说明( Summary )

本地解绑网关的接口。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_permit_join()

int tuya_user_iot_permit_join(bool permit);

功能说明( Summary )

本地控制子设备入网的接口。

参数说明( Parameters )

参数名称 说明
permit 0:关闭;
1:开启。

返回值(Return Values)

返回值 说明
0 成功
非0 失败

get_uuid_authkey_cb()

int (*get_uuid_authkey_cb)(char *uuid, 
                           int uuid_size, 
                           char *authkey, 
                           int authkey_size);

功能说明( Summary )

获取设备 UUID 和 Authkey 的回调函数,第三方开发者要在此回调函数中把在涂鸦 IoT 平台上创建产品获取到的 UUID 和 Authkey 赋值给 uuid 和 authkey 变量。

参数说明( Parameters )

参数名称 说明
uuid 将 UUID 赋值给该变量
uuid_size uuid 对应的 buf 大小
authkey 将 Authkey 赋值给该变量
authkey_size authkey 对应的 buf 大小

返回值(Return Values)

返回值 说明
0 成功
非0 失败

get_product_key_cb()

int (*get_product_key_cb)(char *pk, 
                          int pk_size);

功能说明( Summary )

获取设备 PID 的回调函数,第三方开发者要在此回调函数中把在涂鸦 IoT 平台上创建产品获取到的 PID 赋值给 pk 变量。

参数说明( Parameters )

参数名称 说明
pk 将 PID 赋值给该变量
pk_size pk 对应的 buf 大小

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_reboot_cb()

int (*gw_reboot_cb)(void);

功能说明( Summary )

重启涂鸦应用的回调函数。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_reset_cb()

int (*gw_reset_cb)(void);

功能说明( Summary )

重置网关的回调函数,第三方系统开发者在此回调函数中实现实现清空网关数据的功能。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_upgrade_cb()

int (*gw_upgrade_cb)(const char *img);

功能说明( Summary )

涂鸦应用升级的回调函数,第三方系统开发者在此回调函数中实现升级的功能。

参数说明( Parameters )

参数名称 说明
img 网关固件文件所在的路径

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_fetch_local_log_cb()

int (*gw_fetch_local_log_cb)(char *path, 
                             int path_len);

功能说明( Summary )

从涂鸦运营平台拉取设备日志的回调函数。

参数说明( Parameters )

参数名称 说明
path 把日志文件的路径赋值给该变量
path_len file 变量的长度

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_engineer_finished_cb()

int (*gw_engineer_finished_cb)(void);

功能说明( Summary )

工程部署完成的回调函数,第三方系统开发者在此回调函数中实现重启涂鸦应用,并切换到普通模式。

参数说明( Parameters )

返回值(Return Values)

gw_online_status_changed_cb()

int  (*gw_online_status_changed_cb)(bool registered, bool online);

功能说明( Summary )

网关上下线状态变化的回调函数,第三方系统开发者可以在此回调函数中根据网关上线或下线处理其特定业务。

参数说明( Parameters )

参数名称 说明
registered 网关是否已激活
online 网关在线状态。
0:离线;
1:在线。

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_active_status_changed_cb()

int  (*gw_active_status_changed_cb)(ty_gw_status_t status);

功能说明( Summary )

网关成功绑定或解绑涂鸦云的通知回调函数,第三方系统开发者可以在此回调函数中根据网关成功绑定或解绑处理其特定业务。

参数说明( Parameters )

参数名称 说明
status 网关激活状态。
0:未绑定;
1:已绑定。

返回值(Return Values)

返回值 说明
0 成功
非0 失败

gw_configure_op_mode_cb()

int  (*gw_configure_op_mode_cb)(ty_op_mode_t mode);

功能说明( Summary )

网关操作模式通知回调函数,第三方系统开发者可以在此回调函数中实现其业务功能。

参数说明( Parameters )

参数名称 说明
mode 操作模式。
TY_OP_MODE_ADD_START:设备配网开始;
TY_OP_MODE_ADD_STOP:设备配网结束。

返回值(Return Values)

返回值 说明
0 成功
非0 失败

ty_gw_attr_s

typedef struct {
    char *storage_path;
    char *cache_path;
    char *tty_device;
    int tty_baudrate;
    char *eth_ifname;
    char *ssid;
    char *password;
    char *ver;
    int is_engr;
    char *uz_cfg;
    ty_conn_mode_t wifi_mode;
    ty_log_lovel_t log_level;
} ty_gw_attr_s;

功能说明(Summary)

初始化 SDK 的基本属性。

成员说明

成员名称 说明
storage_path 存储路径是系统存储 SDK 数据库等文件的路径,所指定的路径必须有可读写权限,缺省是当前路径。
注意,存储路径必须以反斜杠结束。例如,若存储路径指定为 “/etc”,storage_path 则要被赋值为 “/etc/”。
cache_path 临时路径是系统保存临时文件的路径,必须有可读写权限,缺省是 /tmp
tty_device 网关与 Zigbee 模块的串口通讯所使用的串口设备,如 /dev/ttyS1
tty_baudrate 网关与 Zigbee 模块的串口通讯所使用的串口波特率,仅支持 115200 和 57600。
波特率为 115200 需要硬件流控
波特率为 57600 不需要硬件流控
eth_ifname 广播 UDP 报文的接口,用于有线网关局域网发现
ssid AP 配网模式,指定网关 AP 的 SSID
password AP 配网模式,指定网关 AP 的 Password
ver 网关应用的版本号,用于固件升级,必须是“x.x.x”的格式
is_engr 0:普通模式;
1:工程模式
uz_cfg 指定过滤 Zigbee 子设备的策略配置文件。policy 表示策略:0. 不过滤;1. 过滤部分;2. 过滤全部。当 policy = 1 时,也就是过滤部分,用户需要将设备的厂商名和型号记录到 devices 字段,示例配置文件:
{
“policy”: 1,
“devices”: [
{“manufacture”: “test1_name”, “model_id”: “test1_id”},
{“manufacture”: “test2_name”, “model_id”: “test2_id”}
]
}
wifi_mode 无线配网可以指定网关工作以哪种模式启动。
TY_CONN_MODE_AP_ONLY:仅工作在 AP 模式;
TY_CONN_MODE_EZ_ONLY:仅工作在 EZ 模式;
TY_CONN_MODE_AP_FIRST:支持 AP & EZ 模式,首次工作在 AP 模式,解绑或重置网关时切换;
TY_CONN_MODE_EZ_FIRST:支持 AP & EZ 模式,首次工作在 EZ 模式,解绑或重置网关时切换。
log_level 设置 log 打印等级,开发阶段可开启 debug 模式

ty_gw_infra_cbs_s

typedef struct {
    int  (*get_uuid_authkey_cb)(char *uuid, int uuid_size, char *authkey, int authkey_size);
    int  (*get_product_key_cb)(char *pk, int pk_size);
    int  (*gw_upgrade_cb)(const char *img_file);
    void (*gw_reboot_cb)(void);
    void (*gw_reset_cb)(void);
    void (*gw_engineer_finished_cb)(void);
    int  (*gw_fetch_local_log_cb)(char *path, int path_len);
    int  (*gw_configure_op_mode_cb)(ty_op_mode_t mode);
    int  (*gw_active_status_changed_cb)(ty_gw_status_t status);
    int  (*gw_online_status_changed_cb)(bool registered, bool online);
} ty_gw_infra_cbs_s;

功能说明(Summary)

网关相关的回调。

成员说明

成员名称 说明
get_uuid_authkey_cb 获取 UUID 和 Authkey 回调
get_product_key_cb 获取 PID 回调
gw_upgrade_cb 网关升级回调
gw_reboot_cb 网关应用重启回调
gw_reset_cb 网关重置回调
gw_engineer_finished_cb 网关工程部署完成回调
gw_fetch_local_log_cb 网关本地日志回调
gw_configure_op_mode_cb 网关操作模式通知回调
gw_active_status_changed_cb 网关激活状态通知回调
gw_online_status_changed_cb 网关在线状态通知回调

设备功能点

涂鸦对设备功能进行了抽象,屏蔽了具体协议,以功能点的形式呈现给开发者,支持数值型、布尔型、枚举型、字符串型、故障型,RAW 型数据,像定义 C 变量一样简单。

开发者需要根据设备功能在涂鸦开发者平台创建对应的功能点,详细可以参考新建功能点说明

回调注册

功能说明

通过设备功能点控制设备需要第三方系统开发者实现,涂鸦网关扩展 SDK 采用回调函数的方式,使用此接口注册回调函数。

开发流程

设备指令下发

功能说明

通过涂鸦 APP 控制设备时,会触发设备指令下发回调。第三方系统开发者要把功能点格式转成具体的设备可识别的数据,进行设备控制。

开发流程

设备状态上报

功能说明

当设备本地状态变化时,要上报新的状态到涂鸦云,用于同步设备状态。

开发流程

API 接口说明

tuya_user_iot_reg_dev_cmd_cb()

int tuya_user_iot_reg_dev_cmd_cb(ty_dev_cmd_cbs_s *cbs);

功能说明( Summary )

注册指令下发回调。

参数说明( Parameters )

参数名称 说明
cbs 参考 ty_dev_cmd_cbs_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_report_obj_dp()

int tuya_user_iot_report_obj_dp(const char *dev_id,
                                ty_dp_s *dps,
                                uint32_t dps_cnt);

功能说明( Summary )

上报设备属性值(obj)到涂鸦云。

参数说明( Parameters )

参数名称 说明
dev_id dev_id == NULL,表示网关功能点;
dev_id != NULL,表示子设备功能点,且 dev_id 为子设备的 MAC 地址
dps 参考 ty_dp_s 结构体说明
dps_cnt 功能点数量

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_report_raw_dp()

int tuya_user_iot_report_raw_dp(const char *dev_id,
                                uint32_t dpid,
                                uint8_t *data,
                                uint32_t len);

功能说明( Summary )

上报设备属性值(raw)到涂鸦云。

参数说明( Parameters )

参数名称 说明
dev_id dev_id == NULL,表示网关功能点;
dev_id != NULL,表示子设备功能点,且 dev_id 为子设备的 MAC 地址
dpid 对应在涂鸦 IoT 平台上创建产品时定义的功能点编号
data 透传的数据
len 透传的数据长度

返回值(Return Values)

返回值 说明
0 成功
非0 失败

dev_obj_cmd_cb()

int (*dev_obj_cmd_cb)(ty_obj_cmd_s *dp);

功能说明( Summary )

控制设备功能点(obj)的回调函数。

参数说明( Parameters )

参数名称 说明
dp 参考 ty_obj_cmd_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

dev_raw_cmd_cb()

int (*dev_raw_cmd_cb)(ty_raw_cmd_s *dp);

功能说明( Summary )

控制设备功能点(raw)的回调。

参数说明( Parameters )

参数名称 说明
dp 参考 ty_raw_cmd_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

ty_dev_cmd_cbs_s

typedef struct {
	int (*dev_obj_cmd_cb)(ty_obj_cmd_s *dp);
	int (*dev_raw_cmd_cb)(ty_raw_cmd_s *dp);
} ty_dev_cmd_cbs_s;

功能说明(Summary)

设备功能点的回调。

成员说明

成员名称 说明
dev_obj_cmd_cb obj 类型功能点的回调
dev_raw_cmd_cb raw 类型功能点的回调

ty_obj_cmd_s

typedef struct {
    uint8_t      cmd_tp; 
    uint8_t      dtt_tp;
    char        *cid; 
    char        *mb_id;
    uint32_t     dps_cnt;
    ty_dp_s      dps[0];
} ty_obj_cmd_s;

功能说明(Summary)

控制设备(json)的命令格式。

成员说明

成员名称 说明
cmd_tp 指令类型。
0:LAN 触发;
1:MQTT 触发;
2:本地定时触发;
3:场景联动触发;
4:重发
dtt_tp 传输方式。
0:单播;
1:广播;
2:组播;
3:场景
cid cid == NULL,表示网关功能点;
cid != NULL,表示子设备功能点,cid 为子设备的 MAC 地址
mb_id 群组 ID,只有当 dtt_tp = 2 时,该字段才有效
dps_cnt 下发的功能点数量,即 dps 的长度
dps 参见 ty_dp_s 结构体说明

ty_dp_s

typedef struct {
	uint8_t dpid;
	uint8_t type;
	union {
		int       dp_value;
		uint32_t  dp_enum;
		char     *dp_str;
		int       dp_bool;
		uint32_t  dp_bitmap;
	} value;
	uint32_t time_stamp;
} ty_dp_s;

功能说明(Summary)

dp 功能点的信息。

成员说明

成员名称 说明
dpid 对应在涂鸦 IoT 平台上创建产品时定义的功能点编号
type 功能点的数据类型,支持的数据类型请参见涂鸦文档中心的功能点定义
value 功能点的值,数据类型对应 type
time_stamp 时间戳

ty_raw_cmd_s

typedef struct {
	uint8_t   cmd_tp;
	uint8_t   dtt_tp;
	char     *cid;
	uint8_t   dpid;
	char     *mb_id;
	uint32_t  len;
	uint8_t   data[0];
} ty_raw_cmd_s;

功能说明(Summary)

控制设备(raw)的命令格式。

成员说明

成员名称 说明
cmd_tp 指令类型。
0:LAN 触发;
1:MQTT 触发;
2:本地定时触发;
3:场景联动触发;
4:重发
dtt_tp 传输方式。
0:单播;
1:广播;
2:组播;
3:场景
cid cid == NULL,表示网关功能点;
cid != NULL,表示子设备功能点,cid 为子设备的 MAC 地址
dpid 对应在涂鸦 IoT 平台上创建产品时定义的功能点编号
mb_id 群组 ID,只有当 dtt_tp = 2 时,该字段才有效
len 透传的数据长度
data 透传的数据

一键配网

一键配网是网关通过按键的方式,给 WiFi 类型的 IoT 设备配网,网关要支持无线功能才能使用一键配网功能。这一章节对一键配网相关接口进行说明。

API 接口说明

tuya_user_iot_smconfig_init()

int tuya_user_iot_smconfig_init(const char *ifname, int (*cb)(char *ssid, \
                                                              uint32_t ssid_size, \
                                                              char *passwd, \
                                                              uint32_t passwd_size));

功能说明( Summary )

一键配网初始化接口,申请相关资源。第三方开发者需要指定 2.4G 无线接口以及实现获取 SSID 和密码的回调。

参数说明( Parameters )

参数名称 说明
ifname 2.4G 无线接口
cb 获取 SSID 和密码的回调

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_smconfig_start()

int tuya_user_iot_smconfig_start(uint32_t timeout);

功能说明( Summary )

开启一键配网,调用该接口发送无线空中包。

参数说明( Parameters )

参数名称 说明
timeout 超时时间,单位是秒。超时后自动关闭一键配网

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_smconfig_stop()

int tuya_user_iot_smconfig_stop(void);

功能说明( Summary )

关闭一键配网初始化接口,调用该接口停止发送无线空中包。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

其他设备接入

涂鸦网关扩展 SDK 赋能第三方系统开发者将其他协议的子设备接入涂鸦云。通过本章节的介绍,开发者能了解接入其他协议子设备的流程以及接口使用。

回调注册

功能说明

接入其他协议子设备需要第三方系统开发者实现,涂鸦网关扩展 SDK 采用回调函数的方式,使用此接口注册回调函数。

开发流程

添加设备

功能说明

当在涂鸦 APP 添加子设备时,会触发添加设备回调。第三方系统开发者要完成添加设备的业务逻辑。

开发流程

心跳保活

功能说明

涂鸦平台子设备的在线和离线状态是通过心跳机制来实现的,需要定时上报子设备的心跳保活。

开发流程

删除设备

功能说明

当在涂鸦 APP 删除子设备时,会触发设备删除回调。第三方系统开发者要在回调中实现删除设备的功能。

开发流程

设备重置

功能说明

当在涂鸦 APP 重置子设备时,会触发设备复位回调。第三方系统开发者要在回调中实现将设备恢复出厂设置的功能 。

开发流程

命令下发

功能说明

当在涂鸦 APP 控制子设备时,会触发设备指令下发回调。第三方系统开发者需要实现协议转换功能。

开发流程

状态上报

功能说明

当子设备的功能值发生变化时,子设备要将新的功能值上报到网关,第三方系统开发者将子设备的通讯协议转成涂鸦功能点同步到涂鸦云。

开发流程

设备升级

功能说明

OTA 作为设备升级与维护的最重要途径之一,当有固件需要升级时,通过涂鸦 APP 升级设备,涂鸦网关扩展 SDK 会下载设备固件,校验成功后通知第三方系统开发者进行 OTA 升级。

开发流程

API 接口说明

tuya_user_iot_reg_misc_dev_cb()

int tuya_user_iot_reg_misc_dev_cb(ty_misc_dev_cbs_s *cbs);

功能说明( Summary )

注册接入其他子设备相关回调的接口。

参数说明( Parameters )

参数名称 说明
cbs 参考 ty_misc_dev_cbs_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_misc_dev_bind()

int tuya_user_iot_misc_dev_bind(uint32_t uddd, 
                                const char *dev_id, 
                                const char *pid, 
                                const char *ver);

功能说明( Summary )

绑定子设备到涂鸦云的接口。

参数说明( Parameters )

参数名称 说明
uddd 用户自定义,可用于区分不同类型的设备
dev_id 子设备的 MAC 地址
pid 在涂鸦 IoT 平台上创建子设备产品得到的 PID
ver 子设备的软件版本,用于固件升级

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_misc_dev_unbind()

int tuya_user_iot_misc_dev_unbind(const char *dev_id);

功能说明( Summary )

将子设备从涂鸦云上解绑的接口。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_misc_dev_fresh_hb()

int tuya_user_iot_misc_dev_fresh_hb(const char *dev_id, 
                                    uint32_t timeout);

功能说明( Summary )

刷新子设备在涂鸦云在线状态的接口。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址
timeout 间隔在线的超时时间,单位是秒

返回值(Return Values)

返回值 说明
0 成功
非0 失败

misc_dev_add_cb()

int (*misc_dev_add_cb)(bool permit, uint32_t timeout);

功能说明( Summary )

添加设备的回调函数。

参数说明( Parameters )

参数名称 说明
permit 允许 or 禁止子设备入网
timeout 允许配网的时间,单位为秒

返回值(Return Values)

返回值 说明
0 成功
非0 失败

misc_dev_del_cb()

int (*misc_dev_del_cb)(const char *dev_id);

功能说明( Summary )

删除设备的回调函数。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

misc_dev_bind_ifm_cb()

int (*misc_dev_bind_ifm_cb)(const char *dev_id, 
                            int result);

功能说明( Summary )

子设备绑定涂鸦云结果通知的回调函数。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址
result 绑定结果。
0:绑定成功;
1:绑定失败

返回值(Return Values)

返回值 说明
0 成功
非0 失败

misc_dev_reset_cb()

int (*misc_dev_reset_cb)(const char *dev_id);

功能说明( Summary )

重置设备的回调函数。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

misc_dev_upgrade_cb()

int (*misc_dev_upgrade_cb)(const char *dev_id, const char *img);

功能说明( Summary )

通知子设备升级的回调函数。

参数说明( Parameters )

参数名称 说明
dev_id 子设备的 MAC 地址
img 固件文件所在的路径

返回值(Return Values)

返回值 说明
0 成功
非0 失败

ty_misc_dev_cbs_s

typedef struct {
	int (*misc_dev_add_cb)(bool permit, uint32_t timeout);
	int (*misc_dev_del_cb)(const char *dev_id);
	int (*misc_dev_bind_ifm_cb)(const char *dev_id, int result);
	int (*misc_dev_upgrade_cb)(const char *dev_id, const char *img);
	int (*misc_dev_reset_cb)(const char *dev_id);
} ty_misc_dev_cbs_s;

功能说明(Summary)

接入其他子设备相关的回调。

成员说明

成员名称 说明
misc_dev_add_cb 添加设备的回调
misc_dev_del_cb 删除设备的回调
misc_dev_bind_ifm_cb 绑定结果通知回调
misc_dev_upgrade_cb 升级通知的回调
misc_dev_reset_cb 重置设备的回调

Zigbee设备接入

涂鸦网关扩展 SDK 赋予第三方系统具备接入非涂鸦生态的 Zigbee 设备的能力,把非涂鸦生态的 Zigbee 子设备接入到涂鸦云。通过本章节的介绍,开发者能了解接入第三方 Zigbee 子设备的流程以及接口使用。另外,接口也适用于本地控制 Zigbee 设备。

回调注册

功能说明

接入 Zigbee 协议子设备需要第三方系统开发者实现,涂鸦网关扩展 SDK 采用回调函数的方式,使用此接口注册回调函数。

开发流程

设备入网

功能说明

符合 Zigbee3.0 标准协议的子设备加入到网关的 Zigbee 网络后,如果设备是用户关心的设备,会触发设备入网回调,第三方系统开发者要在回调中实现设备入网的功能。

开发流程

设备离网

功能说明

符合 Zigbee3.0 标准协议的子设备离开网关的 Zigbee 网络后,会触发设备离网回调,第三方系统开发者可以在回调中实现其特定业务处理。

开发流程

状态上报

功能说明

当子设备上报数据时,会触发状态上报回调,第三方系统开发者要在回调中实现 ZCL 数据帧的解析功能。

开发流程

命令下发

功能说明

当在涂鸦 APP 控制子设备时,会触发设备指令下发回调。第三方系统开发者要在回调中实现将涂鸦功能点转成 ZCL 数据帧功能。

开发流程

状态同步

功能说明

Zigbee 模块启动成功后,会触发状态同步回调,第三方系统开发者要在回调中实现读取所有接入的子设备属性值功能。

开发流程

设备升级

功能说明

SDK 留有本地升级设备的能力,第三方系统开发者可以通过调用设备升级接口升级 Zigbee 子设备。

开发流程

设备移除

功能说明

SDK 留有本地移除设备的能力,第三方系统开发者可以通过调用设备移除接口将子设备从网关 Zigbee 网络中移除。

开发流程

API 接口说明

tuya_user_iot_reg_z3_dev_cb()

int tuya_user_iot_reg_z3_dev_cb(ty_z3_dev_cbs_s *cbs);

功能说明( Summary )

注册接入 Zigbee 子设备相关回调的接口。

参数说明( Parameters )

参数名称 说明
cbs 参考 ty_z3_dev_cbs_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_z3_dev_bind()

int tuya_user_iot_z3_dev_bind(uint32_t uddd, 
                              const char *dev_id, 
                              const char *pid, 
                              const char *ver);

功能说明( Summary )

将 Zigbee 子设备绑定到涂鸦云的接口。

参数说明( Parameters )

参数名称 说明
uddd 用户自定义,可用于区分不同类型的设备
dev_id 子设备的 MAC 地址
pid 在涂鸦 IoT 平台上创建子设备产品得到的 PID
ver 子设备的软件版本,用于固件升级

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_z3_dev_send_zcl_cmd()

int tuya_user_iot_z3_dev_send_zcl_cmd(ty_z3_aps_frame_s *frame);

功能说明( Summary )

下发 ZCL 数据帧给 Zigbee 子设备。

参数说明( Parameters )

参数名称 说明
frame 参考 ty_z3_aps_frame_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_z3_dev_del()

int tuya_user_iot_z3_dev_del(const char *id);

功能说明( Summary )

本地移除 Zigbee 子设备的接口。

参数说明( Parameters )

参数名称 说明
id 子设备的 MAC 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

tuya_user_iot_z3_dev_upgrade()

int tuya_user_iot_z3_dev_upgrade(const char *id, const char *img);

功能说明( Summary )

本地升级 Zigbee 子设备的接口。

参数说明( Parameters )

参数名称 说明
id 子设备的 MAC 地址
img Zigbee 子设备固件文件所在的路径

返回值(Return Values)

返回值 说明
0 成功
非0 失败

z3_dev_join_cb()

int (*z3_dev_join_cb)(ty_z3_desc_s *desc);

功能说明( Summary )

用户处理的 Zigbee 子设备入网的回调。

参数说明( Parameters )

参数名称 说明
desc 参考 ty_z3_desc_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

z3_dev_leave_cb()

int (*z3_dev_leave_cb)(const char *id);

功能说明( Summary )

用户处理的 Zigbee 子设备离网的回调。

参数说明( Parameters )

参数名称 说明
id 子设备的 MAC 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

z3_dev_active_state_changed_cb()

int (*z3_dev_active_state_changed_cb)(const char *id, int state);

功能说明( Summary )

所有 Zigbee 子设备成功绑定或解绑涂鸦云时的通知回调。

参数说明( Parameters )

参数名称 说明
id 子设备的 MAC 地址
state 子设备激活状态。
0:解绑;
1:绑定。

返回值(Return Values)

返回值 说明
0 成功
非0 失败

z3_dev_zcl_report_cb()

int (*z3_dev_zcl_report_cb)(ty_z3_aps_frame_s *frame);

功能说明( Summary )

用户处理的 Zigbee 子设备状态上报的回调。

参数说明( Parameters )

参数名称 说明
frame 参考 ty_z3_aps_frame_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

z3_dev_init_data_cb()

int (*z3_dev_init_data_cb)(void);

功能说明( Summary )

通知读取子设备属性值的回调。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

ty_z3_dev_cbs_s

typedef struct {
    int (*z3_dev_active_state_changed_cb)(const char *id, int state);
    int (*z3_dev_init_data_cb)(void);
    int (*z3_dev_join_cb)(ty_z3_desc_s *desc);
    int (*z3_dev_leave_cb)(const char *id);
    int (*z3_dev_zcl_report_cb)(ty_z3_aps_frame_s *frame);
} ty_z3_dev_cbs_s;

功能说明(Summary)

接入 Zigbee 子设备相关的回调。

成员说明

成员名称 说明
z3_dev_active_state_changed_cb Zigbee 子设备成功绑定或解绑涂鸦云的通知回调
z3_dev_init_data_cb 通知读取用户处理的 Zigbee 子设备的属性值回调
z3_dev_join_cb 用户处理的 Zigbee 子设备入网回调
z3_dev_leave_cb 用户处理的 Zigbee 子设备离网回调
z3_dev_zcl_report_cb 用户处理的 Zigbee 子设备状态上报回调

ty_z3_desc_s

typedef struct {
	char     id[Z3_DEV_ID_LEN+1];
	uint16_t node_id;
	char     manu_name[MANU_NAME_LEN+1];
	char     model_id[MODEL_ID_LEN+1];
	char     rejoin_flag;
} ty_z3_desc_s;

功能说明(Summary)

Zigbee 子设备的基本信息。

成员说明

成员名称 说明
id 子设备的 MAC 地址
node_id 子设备的短地址
manu_name 厂商名称
model_id 设备型号
rejoin_flag 重新入网标记

ty_z3_aps_frame_s

typedef struct {
    char id[Z3_DEV_ID_LEN+1];
    uint16_t node_id;
    uint16_t profile_id;
    uint16_t cluster_id;
    uint8_t src_endpoint;
    uint8_t dst_endpoint;
    uint16_t group_id;
    uint8_t cmd_type;
    uint8_t cmd_id;
    uint8_t frame_type;
    char disable_ack;
    uint16_t msg_length;
    uint8_t *message;
} ty_z3_aps_frame_s;

功能说明(Summary)

涂鸦封装的 Zigbee ZCL 数据帧。

成员说明

成员名称 说明
id 子设备的 MAC 地址
node_id 子设备的短地址
profile_id Zigbee Profile ID
cluster_id Zigbee Cluster ID
src_endpoint 源 endpoint
dst_endpoint 目的 endpoint
group_id 组 ID,组播才需要
cmd_type ZCL 命令类型。
1 表示 global;
2 表示特定 cluster
cmd_id ZCL Command ID
frame_type 传输类型。
0 表示单播;
1 表示组播;
2 表示广播
disable_ack 禁止响应。
1 表示禁止响应;
0 表示使能响应
msg_length ZCL payload 的长度
message ZCL payload

安防功能

回调注册

功能说明

硬件相关控制需要第三方系统开发者实现,如布防撤防、报警声音控制或指示灯控制,涂鸦网关扩展 SDK 采用回调函数的方式,使用此接口注册回调函数。

开发流程

API 接口说明

tuya_user_iot_reg_home_security_cb()

int tuya_user_iot_reg_home_security_cb(ty_home_security_cbs_s *cbs);

功能说明( Summary )

注册安防硬件相关控制回调的接口。

参数说明( Parameters )

参数名称 说明
frame 参考 ty_z3_aps_frame_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

home_security_alarm_cb()

void (*home_security_alarm_cb)(void);

功能说明( Summary )

报警回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_alarm_cancel_cb()

void (*home_security_alarm_cancel_cb)(void);

功能说明( Summary )

取消报警回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_disarmed_cb()

void (*home_security_disarmed_cb)(void);

功能说明( Summary )

进入撤防状态的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_away_armed_cb()

void (*home_security_away_armed_cb)(void);

功能说明( Summary )

进入离家布防状态的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_stay_armed_cb()

void (*home_security_stay_armed_cb)(void);

功能说明( Summary )

进入在家布防状态的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_arm_ignore_cb()

void (*home_security_arm_ignore_cb)(void);

功能说明( Summary )

忽略布防的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_arm_countdown_cb()

void (*home_security_arm_countdown_cb)(uint32_t time);

功能说明( Summary )

延时布防的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

参数名称 说明
time 倒计时持续的时间

返回值(Return Values)

home_security_alarm_countdown_cb()

void (*home_security_alarm_countdown_cb)(uint32_t time);

功能说明( Summary )

延时报警的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

参数名称 说明
time 倒计时持续的时间

返回值(Return Values)

home_security_door_opened_cb()

void (*home_security_door_opened_cb)(uint32_t time);

功能说明( Summary )

门磁打开的回调,第三方开发者在此函数控制声音或者指示灯。

参数说明( Parameters )

返回值(Return Values)

home_security_alarm_dev_cb()

void (*home_security_alarm_dev_cb)(char *dev);

功能说明( Summary )

设备报警的回调,第三方开发者在此函数获取哪个设备报警。

参数说明( Parameters )

参数名称 说明
dev 设备名称

返回值(Return Values)

ty_home_security_cbs_s

typedef struct {
    void (*home_security_alarm_cb)(void);
    void (*home_security_alarm_cancel_cb)(void);
    void (*home_security_disarmed_cb)(void);
    void (*home_security_away_armed_cb)(void);
    void (*home_security_stay_armed_cb)(void);
    void (*home_security_arm_ignore_cb)(void);
    void (*home_security_arm_countdown_cb)(uint32_t time);
    void (*home_security_alarm_countdown_cb)(uint32_t time);
    void (*home_security_door_opened_cb)(void);
    void (*home_security_alarm_dev_cb)(char *dev);
} ty_home_security_cbs_s;

功能说明(Summary)

安防硬件相关控制的回调。

成员说明

成员名称 说明
home_security_alarm_cb 报警的回调
home_security_alarm_cancel_cb 取消报警的回调
home_security_disarmed_cb 进入撤防状态的回调
home_security_away_armed_cb 进入离家布防状态的回调
home_security_stay_armed_cb 进入在家布防状态的回调
home_security_arm_ignore_cb 忽略布防的回调
home_security_arm_countdown_cb 延迟布防的回调
home_security_alarm_countdown_cb 延迟报警的回调
home_security_door_opened_cb 门磁打卡的回调
home_security_alarm_dev_cb 设备报警的回调

配网功能

涂鸦网关扩展 SDK 搭建了一套完整的用以引导设备配网的框架,开发者只需要实现对应的函数即可。此章节主要阐述配网的流程以及各函数的用途,建议开发者按照文档介绍,实现 hal_wifi.c 文件的接口。

注意,如果同时支持 AP & EZ 配网,需要在初始化时指定 wifi_mode,解绑或重置网关时会自动切换模式。

举例,假设 wifi_mode 指定为 TY_CONN_MODE_AP_FIRST,首次使用网关会工作在 AP 模式,只有当网关被解绑或重置时,重启后自动切换到 EZ 模式。再进行解绑或重置时,重启后自动切换回 AP 模式,这样交替工作。建议开发者通过指示灯来标识当前的工作模式,AP 模式可以在 hal_wifi_ap_start 接口控制指示灯,EZ 模式可以在 hal_wifi_set_sniffer 接口控制指示灯。

WiFi 快速配网

功能说明

WiFi 快速配网是涂鸦 APP 直接通过无线发送包含 Wi-Fi 用户名和 Wi-Fi 密码的广播包,网关的无线接口处于监听模式,抓取无线广播包并解密出 Wi-Fi 用户名和密码,然后发起连接。

开发流程

AP 配网功能

功能说明

网关开启 AP,涂鸦 APP 连接到网关的 AP,通过 UDP 广播包含将要配置的 Wi-Fi 用户名和 Wi-Fi 密码,网关收到 UDP 广播包并解析出 Wi-Fi 用户名和密码,然后发起连接。

开发流程

API 接口说明

hal_wifi_scan_all_ap()

int hal_wifi_scan_all_ap(ap_scan_info_s **aps, 
                         uint32_t *num) 

功能说明( Summary )

扫描当前环境所有的 AP。

参数说明( Parameters )

参数名称 说明
aps 参见 ap_scan_info_s 结构体说明
num 当前环境 AP 信息列表长度

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_scan_assigned_ap()

int hal_wifi_scan_assigned_ap(char *ssid, 
                              ap_scan_info_s **aps)

功能说明( Summary )

扫描当前环境特定的 AP。

参数说明( Parameters )

参数名称 说明
ssid 指定 AP 的 SSID
aps 参见 ap_scan_info_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_release_ap()

int hal_wifi_release_ap(ap_scan_info_s *ap)

功能说明( Summary )

若扫描接口把扫描到的 AP 信息存放在堆栈空间,则在此接口释放。

参数说明( Parameters )

参数名称 说明
ap 参见 ap_scan_info_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_set_cur_channel()

int hal_wifi_set_cur_channel(uint8_t channel)

功能说明( Summary )

设置 WiFi 的工作信道。

参数说明( Parameters )

参数名称 说明
channel 信道值

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_get_cur_channel()

int hal_wifi_get_cur_channel(uint8_t *channel)

功能说明( Summary )

获取 WiFi 当前的工作信道。

参数说明( Parameters )

参数名称 说明
channel 信道值

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_set_sniffer()

int hal_wifi_set_sniffer(int enable, 
                         sniffer_callback cb)

功能说明( Summary )

设计混杂模式。

参数说明( Parameters )

参数名称 说明
enable 使能/关闭 sniffer 模式
cb 调用该回调将抓取到的 802.11 数据帧发送给 SDK

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_get_ip()

int hal_wifi_get_ip(wifi_type_t type, 
                    ip_info_s *ip)

功能说明( Summary )

获取 WiFi 接口的 IP 信息。

参数说明( Parameters )

参数名称 说明
type WiFi 工作模式。
0:表示 STATION 模式;
1:表示 AP 模式
ip 参见 ip_info_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_get_mac()

int hal_wifi_get_mac(wifi_type_t type, 
                     mac_info_t *mac)

功能说明( Summary )

获取 WiFi 接口的 MAC 信息。

参数说明( Parameters )

参数名称 说明
type WiFi 工作模式。
0:表示 STATION 模式;
1:表示 AP 模式
mac 参见 mac_info_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_set_work_mode()

int hal_wifi_set_work_mode(wifi_work_mode_t mode)

功能说明( Summary )

设置 WiFi 工作模式。

参数说明( Parameters )

参数名称 说明
mode 工作模式。
0:低功耗模式;
1:混杂模式;
2:STATION 模式;
3:AP 模式;
4:STATION + AP 模式

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_get_work_mode()

int hal_wifi_get_work_mode(wifi_work_mode_t *mode)

功能说明( Summary )

获取 WiFi 工作模式。

参数说明( Parameters )

参数名称 说明
mode 工作模式。
0:低功耗模式;
1:混杂模式;
2:STATION 模式;
3:AP 模式;
4:STATION + AP 模式

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_connect_station()

int hal_wifi_connect_station(char *ssid, 
                             char *passwd)

功能说明( Summary )

连接到上级 AP。

参数说明( Parameters )

参数名称 说明
ssid 上级 AP 的 SSID
passwd 上级 AP 的 密码

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_disconnect_station()

int hal_wifi_disconnect_station(void)

功能说明( Summary )

断开与上级 AP 的连接。

参数说明( Parameters )

返回值(Return Values)

参数名称 说明
0 成功
非0 失败

hal_wifi_get_station_rssi()

int hal_wifi_get_station_rssi(char *rssi)

功能说明( Summary )

获取 Station 模式与上级 AP 连接的信号强度。

参数说明( Parameters )

参数名称 说明
rssi 信号强度值

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_get_station_conn_stat()

int hal_wifi_get_station_conn_stat(station_conn_stat_t *stat)

功能说明( Summary )

获取 Station 模式与上级 AP 的连接状态。

参数说明( Parameters )

参数名称 说明
stat 连接状态值。
STAT_IDLE: 无连接;
STAT_CONNECTING: 正在连接;
STAT_PASSWD_WRONG: 密码错误;
STAT_NO_AP_FOUND: 没找到 AP;
STAT_CONN_FAIL: 连接失败;
STAT_CONN_SUCCESS: 连接成功;
STAT_GOT_IP: 连接成功并分配到了 IP 地址

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_ap_start()

int hal_wifi_ap_start(ap_cfg_info_s *cfg)

功能说明( Summary )

开启 AP。

参数说明( Parameters )

参数名称 说明
cfg 参见 ap_cfg_info_s 结构体说明

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_ap_stop()

int hal_wifi_ap_stop(void)

功能说明( Summary )

关闭 AP。

参数说明( Parameters )

返回值(Return Values)

返回值 说明
0 成功
非0 失败

hal_wifi_set_country_code()

int hal_wifi_set_country_code(char *code)

功能说明( Summary )

设置 WiFi 的国家码。

参数说明( Parameters )

参数名称 说明
code 国家码

返回值(Return Values)

返回值 说明
0 成功
非0 失败

ap_scan_info_s

typedef struct {
	uint8_t channel;
	char rssi;
	uint8_t bssid[BSSID_MAX_LEN];
	uint8_t ssid[SSID_MAX_LEN+1];
	uint8_t s_len;
} ap_scan_info_s;

功能说明(Summary)

扫描到的 AP 信息。

成员说明

成员名称 说明
channel 扫描到的某个 AP 的信道
rssi 扫描到的某个 AP 的信号强度
bssid 扫描到的某个 AP 的 MAC 地址
ssid 扫描到的某个 AP 的 SSID
s_len 扫描到的某个 AP 的 SSID 长度

ip_info_s

typedef struct {
	char ip[ADDR_MAX_LEN];
	char mask[ADDR_MAX_LEN];
	char gateway[ADDR_MAX_LEN];
} ip_info_s;

功能说明(Summary)

网络接口的 IP 信息。

成员说明

成员名称 说明
ip IP 地址
mask 子网掩码
gateway 网关 IP 地址

mac_info_s

typedef struct {
	uint8_t mac[MAC_MAX_LEN];
} mac_info_s;

功能说明(Summary)

网络接口的 MAC 信息。

成员说明

成员名称 说明
mac MAC 地址

ap_cfg_info_s

typedef struct {
	uint8_t ssid[SSID_MAX_LEN+1];
	uint8_t s_len;
	uint8_t key[KEY_MAX_LEN+1];
	uint8_t p_len;
	uint8_t channel;
	ap_encryption_type_t type;
	uint8_t hidden;
	uint8_t max_conn;
	uint16_t ms_interval;
} ap_cfg_info_s;

功能说明(Summary)

设置网关为 AP 模式的配置。

成员说明

成员名称 说明
ssid SSID
s_len SSID 长度
password 密码
p_len 密码长度
channel 工作信道
encryption 加密方式
hidden 是否隐藏 SSID
max_conn 最大连接数
ms_interval beacon 的间隔