更新时间:2023-09-06 10:19:58下载pdf
蓝牙子设备接入旨在降低蓝牙网关的开发门槛,涂鸦提供软硬一体化方案,硬件上使用涂鸦蓝牙模组,软件上开启蓝牙功能,可以零代码实现蓝牙网关开发,能够接入涂鸦生态 Bluetooth LE 和 Bluetooth Mesh 子设备。
本文档将介绍如何使用 TuyaOS 网关开发框架提供的蓝牙网关功能。
开发一款蓝牙网关门槛较高,并且开发周期长,为了降低开发门槛,涂鸦提供了软硬一体化方案,即使没有蓝牙背景知识也能开发蓝牙网关产品。
硬件上通过串口连接涂鸦蓝牙模组,软件上开启蓝牙功能,该产品就具备了蓝牙网关能力,支持接入涂鸦生态子设备。
本小节将介绍在 TuyaOS 网关开发框架如何开启蓝牙网关功能,您无需关心具体的实现方式,通过调用接口就能实现蓝牙网关功能。
开启蓝牙功能主要涉及两个接口:蓝牙服务初始化和蓝牙服务启动,参数都是相同的 JSON 数据,主要是配置信息。
JSON 数据字段说明如下:
字段 | 描述 |
---|---|
dev_name | 指定串口设备号。 |
enable_hb | 是否使能心跳管理:
|
scan_timeout | Bluetooth LE 模式的扫描超时时间,单位是秒。 |
mode | 设置蓝牙工作模式,工作模式的定义为 TAL_BLE_ROLE_E ,支持按位与操作。推荐的值为:( TAL_BLE_ROLE_CENTRAL | TAL_MESH_ROLE_ADV_PROVISIONER ) |
// ...
#include "tuya_bt_api.h"
#include "tal_bluetooth_def.h"
int main(int argc, char **argv)
{
ty_cJSON *app_cfg = ty_cJSON_CreateObject();
if (app_cfg == NULL) {
return OPRT_CJSON_GET_ERR;
}
ty_cJSON_AddStringToObject(app_cfg, "storage_path", "./");
ty_cJSON_AddStringToObject(app_cfg, "cache_path", "/tmp/");
// 设置存储路径
TUYA_CALL_ERR_RETURN(tuya_set_config(app_cfg));
ty_cJSON *bt_cfg = ty_cJSON_CreateObject();
if (bt_cfg == NULL) {
return OPRT_CJSON_GET_ERR;
}
ty_cJSON_AddStringToObject(bt_cfg, "dev_name", "/dev/ttyS2");
ty_cJSON_AddNumberToObject(bt_cfg, "enable_hb", 1);
ty_cJSON_AddNumberToObject(bt_cfg, "scan_timeout", 60);
ty_cJSON_AddNumberToObject(bt_cfg, "mode", (TAL_BLE_ROLE_CENTRAL | TAL_MESH_ROLE_ADV_PROVISIONER));
// 初始化蓝牙服务
TUYA_CALL_ERR_RETURN(tuya_bt_svc_init(bt_cfg));
// 启动蓝牙服务
TUYA_CALL_ERR_RETURN(tuya_bt_svc_start(bt_cfg));
// ...
return 0;
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈