tuya open-sdk 1.0.0 发布

news2024/11/16 10:26:03

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

  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-device 和 https://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 专用授权码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 配置国内镜像源

由于 GFW 的原因,在下载镜像的时候,经常会出现下载失败的情况,此时就可以使用国内的镜像源。 什么是镜像源:简单来说就是某个组织(学校、公司、甚至是个人)先通过某种手段将国外的镜像下载下来,…

AI时代来临,AI基础数据服务行业未来发展有哪些变化

AI基础数据服务是针对人工智能(AI)领域提供的一项服务,它包括数据采集、数据清洗、信息抽取和数据标注等服务。AI基础数据服务旨在为AI算法的训练和优化提供必要的数据支持,为AI算法的性能提供保障。 标贝科技提供专业的数据采集、…

前端自查【知识点】(高概率)2024最新版

HTML 如何理解 HTML 语义化 ? 仅通过标签便能判断内容的类型,特别是区分标题、段落、图片和表格 增加代码可读性(让人更容易读懂)对SEO更加友好 (让搜索引擎更容易读懂) HTML有哪些内联元素和块状元素 ? 内联元素…

拌合站智能管理系统,如何实现智能化生产管理?

随着基础设施建设的不断推进,拌合站作为混凝土生产的重要环节,其管理水平直接影响到工程质量和施工效率。然而,传统的拌合站管理方法存在一些问题,如生产效率低、质量控制难、资源浪费等。在信息化和智能化技术迅猛发展的今天&…

4个工具帮你轻松实现视频在线压缩。

视频已经成了大家生活中很重要的一部分,能够帮助我们记录很多重要的东西,哟其实视频内容创作者,各种素材特别多。可使,随着视频越拍越多,设备的空间也会越来越紧张。所以,这次要为大家推荐4个专业的视频在线…

天翼云,AI取经路上的逐梦人

最近,国产第一部3A游戏大作《黑神话:悟空》问世,引发了全网热潮。游戏中的主角,重走西游之路,克服重重难关,向世界展现了中国文化的绝美与中国科技的自信。 而在现实当中,通往产业智能化的AI之路…

JVM系列(八) -运行期的几种优化技术

一、摘要 在之前的文章中我们谈到过,相比 C/C++ 语言,Java 语言在运行效率方面要稍逊一些,因为 Java 应用程序是在虚拟机上运行,而 C/C++ 程序是直接编译成平台相应的机器码来运行程序。 从虚拟机对外发布开始,开发团队一直在努力试图缩小 Java 与 C/C++ 语言在运行效率…

去除视频水印字幕从未如此简单!4款神器助你轻松搞定!

文章介绍的四款工具都已经打包好了,文末关注公众号AIshape 回复 “视频去水印” 获取 我们平时在各大视频网站下载的视频一般都会带有平台的logo水印,像Runway、Pika、即梦、可灵等AI视频生成平台创作的视频素材,非会员下载会带有水印 想利用这些视频素材进行二次创作很不方…

glsl着色器学习 (十二)平移

平移和旋转、缩放是一样的,替换成平移矩阵即可; // 创建一个单位矩阵 const translateYMatrix mat4.create();// 沿着Y轴向下平移1个单位 mat4.fromTranslation(translateYMatrix, [0, -1, 0]);// 设置矩阵 gl.uniformMatrix4fv(matrixUniformLocation…

Maven学习与使用

内容概要 Maven是什么,有什么作用会配置Maven的环境,以及在idea上配置(重点)掌握Maven的工程结构掌握Maven的几个重要指令。(clean compile package install)掌握如何导包及依赖冲突解决办法 1 Maven 1.…

超详细!!!最新的VuePress + Github Pages + Github Actions实现博客自动部署

超详细!!!VuePress Github Pages Github Actions实现博客自动部署 本文着重讲述如何使用通过Github Actions将VuePress项目部署自动在Github Pages上。每一位开发者有一个自己的博客网站是一件很酷的事情,由于最近想整理一下在…

SpringBoot学习(8)(Bean注册条件)(@Conditional的衍生注解)

目录 一、引言 二、案例引用(接着上篇博客) 三、注册条件 (1)ConditionalOnProperty (2)Conditional0nMissingBean (3)ConditionalOnclass 四、总结 一、引言 之前学习和了解了Bean对…

相亲交友系统商业开发

在快节奏的现代生活中,寻找真爱成为了许多人的渴望。相亲交友系统,作为连接心灵的桥梁,正逐渐成为人们寻找伴侣的首选方式。我们的团队h17711347205致力于开发一款创新的相亲交友系统,旨在通过智能化的匹配算法,为用户…

出门总是一身猫毛怎么办?霍尼韦尔、希喂、352、小米宠物空气净化器对比实测

毕业了好些年,前段时间有同学组织了聚会,聚一聚,我们班的专业本身就和动物有关,聊天自然而然聊到了宠物上去,有个同学打趣:“有没有养猫狗看看衣服就知道了”。还真是家里养了宠物的,无论咋清理…

电子商务小程序如何做seo

电子商务小程序进行SEO(搜索引擎优化)是一个综合性的过程,旨在提高小程序在搜索引擎中的排名,从而增加曝光度和用户流量。以下是一些关键的SEO策略和实践方法: 电子商务小程序如何做seo 1. 关键词研究与布局 关键词选…

第十七篇:TCP协议介绍(1)

1.TCP 的概念 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在 TCP 协议中,通过三次握手建立连接。通信结束后,还需要断开连接。如果在发送数据包时&…

视频安防监控LntonAIServer安防管理平台抖动检测和过亮过暗检测

随着视频监控技术的发展,视频质量成为确保监控系统有效性的重要因素。LntonAIServer通过引入抖动检测与过亮过暗检测功能,进一步提升了视频监控系统的可靠性和用户体验。这些功能可以帮助及时发现并解决视频流中的质量问题,确保视频监控系统始…

数字广告监管者对高风险行业的打压,但是否应该...

不言而喻,如果你从事的是某些类型产品的推广业务,你需要格外小心。不懂我们的意思?那你算幸运了。我们指的是那些被归类为 高风险行业 的消费品或商业产品。 高风险行业是那些相较于其他行业“面临更多运营、监管和声誉风险”的行业。不完全列…

基于51单片机的倒计时装置proteus仿真

地址: https://pan.baidu.com/s/1p9xDKXaulyx-PyP6dURp-g 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

[SwiftUI 开发] 构建带有动画的图片瀑布流效果

在移动应用程序中,图片瀑布流布局是一种常见的设计模式,它不仅能够以网格的形式显示大量图片,还能允许用户点击图片进行全屏查看。 在下文中,将详细介绍如何使用 SwiftUI 构建一个带有点击动画效果的图片瀑布流布局,并…