TuyaOS
蓝牙

涂鸦TuyaOS支持蓝牙作为一个近场通信的功能,和Powered by Tuya设备进行配对、连接,建立蓝牙通道,并对设备进行蓝牙配网、蓝牙绑定激活、蓝牙控制、蓝牙校时、蓝牙遥控等功能。

蓝牙配网

未配网设备发送蓝牙广播,涂鸦智能APP在接收到蓝牙广播数据之后,会对未配网设备发起配对,配对完成之后,根据涂鸦蓝牙协议进行配网交互,涂鸦智能APP向云端申请Token,并将SSIDPasswordToken发送给待配网设备。待配网设备拿到SSIDPasswordToken之后,连接Wi-Fi路由器,并连接涂鸦IoT平台,进行激活绑定。

蓝牙配网功能不需要客户进行编码,涂鸦TuyaOS直接提供了相关的能力。

蓝牙绑定激活

未绑定单以及连接网络的设备发送蓝牙广播,涂鸦智能APP在接收到蓝牙广播数据之后,会对未绑定设备发起配对,配对完成之后,根据涂鸦蓝牙协议进行绑定交互,涂鸦智能APP向云端申请Token,然后通过蓝牙将Token传输给设备,设备拿到Token之后,连接涂鸦IoT平台,进行激活绑定。

蓝牙绑定激活功能不需要客户进行编码,涂鸦TuyaOS直接提供了相关的能力。

蓝牙控制

参加DP功能描述中的蓝牙相关部分

蓝牙校时

当蓝牙连接建立的时候,通过涂鸦蓝牙协议,对设备进行时间校准。

蓝牙校时功能不需要客户进行编码,涂鸦TuyaOS直接提供了相关的能力。

蓝牙遥控

蓝牙遥控需要Powered by Tuya设备开启蓝牙扫描能力。设备在绑定激活的时候,如果支持蓝牙遥控器功能,设备从涂鸦IoT平台获取app_keynetwork_key,用于蓝牙遥控协议数据的解密。

设备在接收到遥控器发送的蓝牙广播数据的时候,会使用app_key对数据进行解密、过滤,并将解密之后的数据发送给开发者,开发者根据蓝牙遥控器协议的定义,解析数据并执行相关的遥控操作。

接口描述

注册蓝牙遥控回调

//callback function for advertisement scanning data processing
typedef VOID (*TUYA_BLE_APP_SCAN_HANDLE)(UCHAR_T *data, UCHAR_T len, UCHAR_T type, UCHAR_T* mac);
OPERATE_RET tuya_ble_reg_app_scan_adv_cb(TUYA_BLE_APP_SCAN_HANDLE cb);

此接口用于注册蓝牙遥控功能的数据接收回调,其中TUYA_BLE_APP_SCAN_HANDLE为回调函数原型。注册该回调之后,设备会的确蓝牙扫描功能,并将接收到的蓝牙广播进行过滤,通过回调通知应用。

示例代码

STATIC VOID __bel_scan_handle(UCHAR_T *data, UCHAR_T len, UCHAR_T type, UCHAR_T* mac)
{
PR_DEBUG("recv ble remote cntl from %s", mac);
return;
}
// 在完成系统初始化之后调用此接口测试蓝牙遥控
VOID test_ble_remote_cntl()
{
tuya_ble_reg_app_scan_adv_cb(__bel_scan_handle);
}