业务透传通道服务

更新时间:2024-10-12 02:19:58下载pdf

蓝牙 LE 标准协议接入提供业务透传通道服务,在蓝牙 LE 连接下,为 MCU 和 App 提供透传通道服务,以便直接满足客制化需求并实现双方直接通信。

简介

业务透传通道服务指的是蓝牙通用模组提供的一种服务,通过该通道服务,MCU 可以在蓝牙连接下直接与 App 建立通讯通道,以便满足 MCU 不同的开发需求。

适用场景:

  • 复杂协议交互场景,需要直接与 App 或面板通信
  • 需要与面板定制逻辑配合的场景
  • 业务线特有的一些服务

适用固件:目前,仅 BF6H 蓝牙单点通用固件支持,而其他固件会在后续支持。

相关协议

透传通道开关(CMD-0xC400)

  • 该通道默认处于关闭状态,产品需要使用该功能时,可通过执行相应命令将其打开。该通道支持上报和下发的透传,模组不对具体数据进行处理,而是将数据直接透传给 App 进行处理。
  • 在启用手机消息通知功能后,针对 iOS 使用场景,模组将在与涂鸦 App 建立连接后,自动发起蓝牙配对请求,并请求启用通知功能。用户还需要在 iOS 设备上授权通知,以确保系统消息能够通过透传通道正常下发至 MCU。
  • 若在未打开业务透传通道的情况下使用透传通道传输,将会通过该命令返回错误。
  • 当设备解绑或本地重置后,该设置会恢复到默认关闭的状态。

MCU -> 模组:

字段 字节数 说明
帧头 2 0x55
0xAA
版本号 1 0x00
命令字 CMD 1 0xC4
数据长度 Len 2 0x02
SubCmd 1 0x00
DATA 1 Config
CRC8 1 从帧头开始按字节求和得出的结果对 256 求余

Config 说明

  • Bit 0:通道开关。值为 0 表示关闭,值为 1 表示打开。
  • Bit 1:手机消息通知功能开关。值为 0 表示关闭,值为 1 表示打开。
  • Bit 2 到 Bit 7:保留,值为 0。

模组 -> MCU:

字段 字节数 说明
帧头 2 0x55
0xAA
版本号 1 0x00
命令字 CMD 1 0xC4
数据长度 Len 2 0x02
SubCmd 1 0x00
DATA 1
  • 0x00:成功
  • 0x01:失败
  • 0x02:长度错误
  • 0x03:功能未打开
CRC8 1 从帧头开始按字节求和得出的结果对 256 求余

透传通道传输(CMD-0xC401)

业务透传通道支持双向数据透传,模组不对透传的数据进行任何解析处理,而是直接将其透传给 App 进行处理。通常,使用该通道需要与面板或 App 的定制逻辑相配合。

MCU <-> 模组:

字段 字节数 说明
帧头 2 0x55
0xAA
版本号 1 0x00
命令字 CMD 1 0xC4
数据长度 Len 2 Len 高 8 位
Len 低 8 位
SubCmd 1 0x01
DATA Len-1 RAW_DATA:透传数据
CRC8 1 从帧头开始按字节求和得出的结果对 256 求余

应用举例

以下是通过业务透传通道服务实现的一些应用示例。

手机消息通知

当手机系统有消息通知时,模组会通过业务透传通道下发以下业务数据格式的数据:

消息通知数据格式【消息通知数据通过透传通道下发】
字段名称 TYPE DATA_LENGTH DATA
字段长度 1 字节 2 字节 n 字节
字段值 ~ n ~
采用 TLD 格式表示消息通知格式,具体字段含义如下:
TYPE:通知类型
DATA_LENGTH:通知内容长度,大端格式
DATA:通知内容
type 大类,高 4 bits type 子类,低 4 bits type 值 通知类型 DATA_LENGTH DATA
0000
消息通知-原定义
0001 0x01 电话 ~ 类型 1 字节

0x01:来电
0x02:接听
0x03:挂断
电话号码(Unicode 编码)
仅类型为来电时才有该字段。
0010 0x02 短信 ~ 编码采用 Unicode,2 字节表示 1 个字符。
例如汉字【今】Unicode 编码为 \u4eca,传输顺序为 0xCA,0x4E
0011 0x03 腾讯 QQ ~
0100 0x04 微信 ~
0101 0x05 Facebook ~
0110 0x06 Messenger ~
0111 0x07 Twitter ~
1000 0x08 WhatsApp ~
1001 0x09 Instagram ~
1010 0x0A LinkedIn ~
1011 0x0B Viber ~
1100 0x0C Line ~
1101 0x0D Skype ~
1110 0x0E Outlook ~
1111 0x0F Others ~
0011
消息通知-新增
0001 0x31 WhatsappBusiness ~ 编码采用 Unicode,2 字节表示 1 个字符。
例如汉字【今】Unicode 编码为 \u4eca,传输顺序为 0xCA,0x4E
0010 0x32 Email ~
0011 0x33 Calendar ~
0100 0x34 KakaoTalk ~
0101 0x35 VKontakte ~
0110 0x36 Tumblr ~
0111 0x37 Snapchat ~
1000 0x38 Telegram ~
1001 0x39 YouTube ~
1010 0x3A Pinterest ~
1011 0x3B TikTok ~
1100 0x3C Gmail ~
1101 0x3D Tuya ~

消息通知示例:

  • 微信: 今天真热

    55 AA 00 C4 00 0C 01 04 00 08 CA 4E 29 59 1F 77 ED 70 68

  • 电话挂断(03 为挂断):

    55 AA 00 C4 00 05 01 01 00 01 03 CE

  • 电话来电(01 为来电): 15000000000

    55 AA 00 C4 00 19 01 01 00 17 01 31 00 35 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 0C

常见问题

Q:在手机消息通知应用中,MCU 程序设计上有哪些注意事项?

A:每当应用层收到消息通知开关 DP 数据为打开的时候,必须通过透传通道开关(CMD-0xC400)同时启用透传通道和手机消息通知服务。对于 iOS 使用场景,模组在收到打开的命令后,将向手机发送配对请求和请求系统通知权限。用户需要在面板弹框中确认,才可正常使用消息通知功能。

另外,当设备解除绑定时,用户应根据 App 弹窗提示在系统蓝牙设置中解除蓝牙配对,否则设备可能出现连接异常。

联系涂鸦

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

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