更新时间:2023-12-19 08:36:57下载pdf
针对 Wi-Fi + 蓝牙双模设备,配网数据还可以通过蓝牙连接传输至设备。
设备进入配网状态后发送蓝牙广播,等待被 App 扫描发现。然后 App 可通过蓝牙主动连接设备,下发配网数据,从而完成设备的配网工作。
确保在 tuya_iot_config.h
配置头文件中,蓝牙服务及蓝牙配网功能是打开的,涉及的宏开关有:
/* 蓝牙服务开关 */
#define ENABLE_BT_SERVICE 1
/* 蓝牙配网开关 */
#define ENABLE_BT_NETCFG 1
设备初始化 中会自动启动蓝牙配网初始化,您无需进行调用。
如果您有特殊需求想要更改蓝牙设备名称,可调用此接口。在涂鸦蓝牙协议 3.X 版本,蓝牙设备名称默认是 TY
,在 4.X 版本,默认名称是 TUYA__
。 想确认涂鸦蓝牙协议版本,可查看 tuya_iot_config.h
配置头文件中蓝牙版本配置宏 TUYA_BLE_VER
。
设置蓝牙设备名称,有长度限制,涂鸦蓝牙协议 3.X 版本是 2 个字符,4.X 版本是 5 个字符。
该 API 需要在设备初始化之前调用。
/**
* @brief Set name for bluetooth device.
*
* @param[in] dev_name: device name
*
* @note This API is used for setting name for bluetooth device. this API should be called before bluetooth initialized.
*
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tuya_set_bt_device_name(CHAR_T* dev_name);
该 API 用于蓝牙服务开关,当关闭时,蓝牙协议栈关闭,不能使用蓝牙功能。当打开时,打开协议栈,可以使用蓝牙功能,默认是打开的。
该 API 内部做了可靠性设计,重复打开、重复关闭都是无效操作。
/**
* @brief Set enable switch for bluetooth service
*
* @param[in] switch: enable switch: TRUE-open, FALSE-close
*
* @note This API is used for setting enable switch for bluetooth service, it should be called before sdk initialization.
*
* @return VOID
*/
VOID_T tuya_ble_set_serv_switch(BOOL_T swith);
该 API 用于获取蓝牙服务是否打开的状态。
/**
* @brief Get status of bluetooth service
*
* @param VOID
*
* @note This API is used to get status of the bluetooth service.
*
* @return status of the bluetooth service
*/
TUYA_BT_SERV_STAT tuya_ble_get_serv_stat(VOID_T);
该 API 用于重启蓝牙广播。当蓝牙广播参数有更新时,可调用此接口更新广播包,一般应用开发无需关心。
/**
* @brief Resend the ble adv data to hal and start ble adv
*
* @param
*
* @note
*
* @return VOID
*/
VOID_T tuya_ble_restart_adv(VOID_T);
该接口需要在系统服务初始化之前调用。
该 API 用于设置蓝牙启动属性。没有调用此接口,蓝牙默认启动所有能力;调用此接口后,只支持对应的能力。
如果设置了 TUYA_BLE_ABILITY_NONE
,设备启动后,蓝牙服务不会开启。
如果设置了 TUYA_BLE_ABILITY_NETCFG
,设备启动后,只支持蓝牙配网功能,配网后蓝牙服务关闭。
typedef BYTE_T TUYA_BLE_ABILITY_T;
#define TUYA_BLE_ABILITY_NONE 0x0
#define TUYA_BLE_ABILITY_NETCFG 0x1
#define TUYA_BLE_ABILITY_ALL 0xFF
/**
* @brief Set abilitiy attribute of bluetooth
*
* @param attr
*
* @note This API is used to set abilitiy attribute of bluetooth.
*
* @return VOID
*/
VOID_T tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_T attr);
可以。
有以下两种方式可以实现此功能:
tuya_ble_set_startup_attr
接口设置设备只有蓝牙配网功能。tuya_ble_set_serv_switch
接口并设置为 FALSE
关闭蓝牙服务。首先确认设备有没有发广播出来,可以通过 NRF 抓包工具证实。如果没有发广播出来,涂鸦 智能生活 App 就无法发现设备。
如果有发广播,再确认设备是否已配网,已配网设备只有重置后才可以重新配网。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈