透传功能

更新时间:2024-04-17 06:15:11下载pdf

本文介绍透传功能。

概念介绍

蓝牙设备和涂鸦智能 App 之间的通信一般是基于 DP 数据通信,DP 数据通信可以满足蓝牙产品常见的数据通信,但是在某些特定场景下,蓝牙设备不需要或者不能按照 DP 格式传输数据。透传功能,即是按照用户自定义格式,在蓝牙设备和涂鸦智能 App 之间传输数据的一种协议,App 不作任何解析,直接将数据透传给面板/云端。

例如,蓝牙门锁通过透传通道进行配件的绑定/解绑操作,获取离线记录操作,蓝牙 Tag 通过透传通道对返工设备进行重复授权。当一些产品已经发布,不方便新增 DP,但是又需要新的功能,此时也可以考虑使用透传通道。

功能描述

DP 数据需要 App 解析后传给面板/云端,透传数据不需要 App 解析,直接透传给面板/云端。

透传功能

数据结构

tuya_ble_passthrough_data_t

typedef struct {
    UINT16_T data_len;
    UINT8_T *p_data;
} tuya_ble_passthrough_data_t;
  • data_len:透传通道的数据长度。

  • p_data:透传通道的数据。

接口说明

接收透传通道数据

case TUYA_BLE_CB_EVT_DATA_PASSTHROUGH

发送透传通道数据

接口说明

tuya_ble_status_t tuya_ble_data_passthrough(UINT8_T *p_data, UINT32_T len);

参数说明

参数 说明
p_data 透传通道的数据。
len 透传通道的数据长度。

使用方法

通信流程

透传功能

代码开发

透传通道功能默认是开启的,不过使用透传通道除了需要调用上述提到的接口外,还需要特定业务的面板/云端人员进行支持。您使用该功能前,可咨询对应的产品经理。

接收数据 & 发送数据:

STATIC VOID_T tuya_ble_protocol_callback(tuya_ble_cb_evt_param_t* event)
{
    switch (event->evt) {
        case TUYA_BLE_CB_EVT_DATA_PASSTHROUGH: {
            // do your things
            tuya_ble_data_passthrough(event->ble_passthrough_data.p_data, event->ble_passthrough_data.data_len);
        } break;

        ……
    }
    ……
}

支持与帮助

在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。

咨询前建议首先查阅 官方资料 或参考已有帖子,并认真阅读 发帖规范