更新时间:2025-05-28 06:47:38下载pdf
本文介绍开发包中的重要文件,便于您更好地理解代码的组织结构。
开发包整体目录结构如下:
├── hardware # 硬件手册,存放涂鸦自研硬件资料
├── pc
│ └── tools # 工具类目录,存放各种开发相关工具
├── software
│ ├── packages # SDK 压缩包
│ ├── SDKInformation.json # SDK 信息文件
│ └── TuyaOS # SDK 开发包目录
│ ├── apps # 应用示例代码目录,您可以根据需求修改
│ ├── build
│ ├── build_app.sh # 编译脚本
│ ├── CHANGELOG.md
│ ├── include # SDK 头文件
│ ├── libs # SDK 库文件,您可以按需链接
│ ├── LICENSE # Tuya MIT License
│ ├── Makefile
│ ├── output # 产物输出目录
│ ├── README.md
│ ├── scripts
│ └── vendor # 工具链,编译时会自动把工具链下载到该目录下
└── tuya.json
TuyaOS > apps > tuyaos_demo_gw_ble_longrange 目录结构:
├── include # 源码头文件
├── local.mk
├── output # Demo 输出文件
├── README.md # Readme 文件
├── src # 源码文件
└── tuyaos_adapter
RTOS 网关需要在初始化时生成一份 JSON 配置,如下所示:
STATIC OPERATE_RET __gen_config(ty_cJSON **cfg)
{
ty_cJSON *root = NULL, *bt = NULL, *tuya = NULL;
if (cfg == NULL) {
PR_ERR("param is null");
return OPRT_INVALID_PARM;
}
bt = ty_cJSON_CreateObject();
ty_cJSON_AddNumberToObject(bt, "enable_hb", 1);
ty_cJSON_AddNumberToObject(bt, "scan_timeout", 5);
ty_cJSON_AddNumberToObject(bt, "subdev_type", 0xF);
tuya = ty_cJSON_CreateObject();
ty_cJSON_AddItemToObject(tuya, "bt", bt);
root = ty_cJSON_CreateObject();
ty_cJSON_AddStringToObject(root, "pid", PRODUCT_KEY);
ty_cJSON_AddStringToObject(root, "uuid", UUID);
ty_cJSON_AddStringToObject(root, "authkey", AUTHKEY);
ty_cJSON_AddItemToObject(root, "tuya", tuya);
*cfg = root;
return OPRT_OK;
}
配置字段详细解析如下。基本格式为:
{
"pid": <xxx>,
"uuid": <...>,
"authkey_key": <...>,
"ap_ssid": <... optional>,
"ap_password": <... optional>,
"log_level": <level>,
"storage_path": <...>,
"start_mode": <xxxx>,
"tuya": {
"bt": {
"dev_name": <xxx, string>,
"enable_hb": <xxx, number>,
"scan_timeout": <xxx, number>,
"subdev_type": <xxx, number>,
},
},
"user": {
[ { "tp": <DEV_ATTACH_MOD_X, number>, "sw_ver": <version, string> }, ... ]
},
}
字段 | 必须 | 说明 |
---|---|---|
PID | 是 | SDK 运行在非 OEM 模式,PID 字段指定此设备 PID |
uuid | 否 | 唯一识别码,优先从 Flash 读取,不存在时使用此处 |
authkey_key | 否 | 授权识别码,优先从 Flash 读取,不存在时使用此处 |
ap_ssid | 否 | 热点模式配网 SSID,未指定则使用默认 SmartLife-<WLAN MAC 后四位> |
ap_password | 否 | 热点模式配网密码,默认为空 |
log_level | 否 | 日志等级,默认为 Debug 等级 4 |
start_mode | 否 | Wi-Fi 配网模式,支持以下类型:
|
字段 | 说明 |
---|---|
dev_name | 蓝牙设备名 |
enable_hb | 使能心跳查询 |
scan_timeout | Bluetooth Low Energy 扫描超时时间,单位为秒 |
subdev_type | TAL_BLE_ROLE_E |
编译 BSP 需要一些系统工具。例如,在 Ubuntu 平台执行以下命令:
sudo apt-get install whois patchelf meson bison flex libssl-dev
按照如下步骤操作,在 Visual Studio Code 上编译 CR3L BLE Long Range 固件:
展开开发包的 TuyaOS > apps > demo 目录,并单击右键,在菜单中选择 Build Project,然后输入版本号按下回车键,开始编译。
观察 Visual Studio Code 下方的 终端,会看到编译的输出打印。直到看到如下图所示的打印时,代表编译成功,生成的固件位于 output 目录下。
固件详情和烧录方法,请参考 固件烧录 章节。
前置工作完成后,接下来可以运行示例程序查看效果。
固件烧录完成之后,断电重启设备。
CR3L 支持蓝牙配网、热点模式配网,可以用 涂鸦 App 来激活网关。App 的详细使用教程,请参考 使用指南。
详细步骤,请参考 固件升级。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈