tuya open-sdk 1.0.0 发布

我们很高兴地宣布本次更新,带来了多项改进和新功能,旨在提升开发体验和效率。以下是具体更新内容:

  1. 代码标准化:实现了代码库的格式统一,引入了 clang-formatpre-commit 工具进行自动化代码格式调整,确保所有提交的代码都遵循一致的编码规范。

  2. 构建框架升级:对 open-sdk 构建框架进行了全面更新,引入了 tos 命令集以支持更广泛的编译操作,为开发者提供了更多的灵活性。

  3. 模块化开发支持:引入了 open-sdk 与应用程序的分离架构,使开发者能够轻松地创建和管理自定义应用程序,简化了开发流程。

  4. 目录结构调整:重新组织了项目结构,新增了 examplesapps 目录。其中:

    • examples 目录包含了针对不同外设、操作系统、Wi-Fi、BLE 以及网络使用的示例代码。
    • apps 目录则包含了云接入应用程序示例,当前支持集成至涂鸦云平台。
  5. 硬件兼容性扩展:新增支持 T3 系列模组,进一步扩大了平台兼容范围,目前支持的操作环境包括:ubuntu-pcT2T3

  6. 授权机制增强:提供了两种涂鸦云 open-sdk 授权方式,一是通过模组自动读取授权码,二是允许手动修改代码实现授权。

  7. Arduino 集成:增加了对 Arduino 平台的支持,使得基于 Arduino 的开发变得更加便捷,可直接在 Arduino-IDE 中下载,欢迎在 https://github.com/tuya/arduino-tuyaopen 仓库中提交 PR 。

我们期待这些改动能够给开发者带来更佳的使用体验,并持续欢迎社区反馈与贡献。

tuya open-sdk 包括:https://github.com/tuya/tuya-open-sdk-for-devicehttps://github.com/tuya/arduino-tuyaopen 等多个系列,目前已正式发布 1.0.0 版本,1.1.0 版本正在紧张开发中。

下面简单介绍以下部分新能功能使用说明

1、tos 构建命令

tos 命令是 tuya-open-sdk-for-device 构建工具,支持创建、编译、配置等多种功能。

tos 命令位于 tuya-open-sdk-for-device 根目录下,使用 shell 脚本实现,使用前先将 tuya-open-sdk-for-device 路径添加到系统环境变量中。

设置环境变量

$ cd tuya-open-sdk-for-device
$ export PATH=$PATH:$PWD

或将 tuya-open-sdk-for-device 路径添加到系统环境变量中。

tos 命令列表

可通过 tos help 查看命令列表。

$ tos help

Usage: tos COMMAND [ARGS]...

Commands:
    version    - Show TOS verson
    check      - Check command and version
    new        - New project
    build      - Build specific project or all projects
                 [name] (default build all project by project_build.ini)
    clean      - Clean specific project or all projects
                 [name] (default clean all project by project_build.ini)
    menuconfig - Configuration project features
    build_all  - Build all projects in the directory
                 [*path]
    help       - Help information

使用示例

  1. 查看版本
$ tos version
1.0.0
  1. 检测当前环境
$ tos check
Check command and version ...
Check [python3](3.10.12) > [3.6.0]: OK.
Check [git](2.34.1) > [2.0.0]: OK.
Check [cmake](3.22.1) > [3.16.0]: OK.
Check [ccmake](3.22.1) > [3.16.0]: OK.
Check [lcov](1.14) > [1.14]: OK.

tos check 命令会检测当前环境是否满足构建要求,如果满足则输出 OK,不符合会提示所需最低版本如 Please install [lcov], and version > [1.14],请根据检测结果,安装相关依赖及对应版本。

  1. 编译项目

进入项目目录,执行以下命令:

$ cd hello_world
$ tos build
  1. 配置项目
    进入项目目录,执行以下命令:
$ cd hello_world
$ tos menuconfig
  1. 清理项目
    进入项目目录,执行以下命令:
$ cd hello_world
$ tos clean

多平台配置

tos 工具通过项目工程目录下的 project_build.ini 文件配置多平台编译,配置文件格式如下:

[project:switch_demo_t2]
platform = t2

[project:switch_demo_t3]
platform = t3

默认 project 只有 1 个,如需编译多个 project,需在 project_build.ini 文件中添加多个 project 配置。

当配置文件中存在多个 project 时,tos build 命令会依次编译多个 project。

编译指定目录下所有项目

$ tos build_all .

tos 将根据项目工程下的 project_build.ini 文件,依次编译指定目录下所有工程配置文件下的所有项目。

2、创建自定义应用

tuya-open-sdk-for-device 已支持 sdk 和 应用分离模式,sdk 也可采用 submodule 形式集成,方便开发者创建自己的应用。

  1. 将 tuya-open-sdk-for-device 路径添加到系统环境变量中。

  2. 使用 tos 命令创建新的应用

$ tos new
  • 根据提示输入项目名称,如: hello_world
  • 选择项目对应的 platform:
Choice platform ...
========================
Platforms
  1. t2
  2. t3
  3. ubuntu
------------------------
Please select: 

选择完成后,tos 会自动下载相关依赖文件,并生成项目目录及模板文件。

├── CMakeLists.txt
├── project_build.ini
└── src
    └── hello_world.c

其中:

  • CMakeLists.txt:项目配置文件,用于配置项目编译选项。
  • project_build.ini:项目配置文件,用于配置项目编译选项。
    其中:
    • project 名为工程名_platform 名
    • platform 为工程对应的平台。
  • src:源码目录,用于存放项目源码文件。
  • src/hello_world.c:项目源码文件,用于存放项目源码。

3、获取模组或授权码

tuya-open-sdk-for-device 需要使用专用的 open-sdk 授权码,非 open-sdk 授权码无法正常连接涂鸦云。

可通过以下方式获取 open-sdk 专用授权码:

  • 方式1:购买已烧录 open-sdk 授权码模块。该授权码已经在出厂时烧录在对应模组中,且不会丢失。tuya-open-sdk-for-device 在启动时通过 tuya_iot_license_read() 接口读取授权码。请确认当前设备是否为烧录了 tuya-open-sdk-for-device 授权码。

    tuya_iot_license_t license;
    
    if (OPRT_OK != tuya_iot_license_read(&license)) {
    	license.uuid = TUYA_DEVICE_UUID;
    	license.authkey = TUYA_DEVICE_AUTHKEY;
    	PR_WARN("Replace the TUYA_DEVICE_UUID and TUYA_DEVICE_AUTHKEY contents, otherwise the demo cannot work");
    }
    

目前已支持 T2-U、T3-U 模组。

  • 方式2:如当前模组未烧录 tuya-open-sdk-for-device 授权码,可通过 https://platform.tuya.com/purchase/index?type=6 页面购买 Open SDK 授权码,并在以下代码中将 TUYA_DEVICE_UUIDTUYA_DEVICE_AUTHKEY 替换为购买成功后获取到的 uuid 和 authkey。

在这里插入图片描述

3、FAQ

1. 未修改 apps/tuya_cloud/switch_demo/src/tuya_config.h 文件中默认的UUID 和 authkey。

#define TUYA_DEVICE_UUID      "uuidxxxxxxxxxxxxxxxx"                    // Please change the correct uuid
#define TUYA_DEVICE_AUTHKEY   "keyxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"        // Please change the correct authkey
  • ubuntu 上出错提示如下:
[01-01 00:00:00 ty E][tal_opt_flash.c:153] ret:-2
[01-01 00:00:00 ty W][switch_demo.c:220] Replace the TUYA_DEVICE_UUID and TUYA_DEVICE_AUTHKEY contents, otherwise the demo cannot work
[01-01 00:00:00 ty D][switch_demo.c:222] uuid uuidxxxxxxxxxxxxxxxx, authkey keyxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[01-04 23:22:17 ty E][mqtt_client_wrapper.c:215] mqtt connect err: Connection not authorized(11)
[01-04 23:22:17 ty E][mqtt_service.c:465] MQTT connect fail:3
[01-04 23:22:17 ty E][mqtt_bind.c:191] tuya mqtt connect fail:-34, retry..
  • T2/T3 等真实硬件上运行出错提示如下:
[01-01 00:00:00 ty E][tal_opt_flash.c:153] ret:-2
[01-01 00:00:00 ty W][switch_demo.c:220] Replace the TUYA_DEVICE_UUID and TUYA_DEVICE_AUTHKEY contents, otherwise the demo cannot work
[01-01 00:00:00 ty D][switch_demo.c:222] uuid uuidxxxxxxxxxxxxxxxx, authkey keyxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

并无法正常配网。

2. 采用 TuyaOS 授权码,激活失败,出错提示如下:

[01-01 00:01:03 ty D][atop_base.c:216] result:
{"t":1725593560,"success":false,"errorCode":"ACTIVE_OPEN_SDK_NOT_MATCHED","errorMsg":"ACTIVE_OPEN_SDK_NOT_MATCHED"}
[01-01 00:01:03 ty E][atop_base.c:268] errorMsg:ACTIVE_OPEN_SDK_NOT_MATCHED

请使用 open-sdk 专用授权码。

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值