CLI Demo 开发包

更新时间:2024-08-20 03:35:15下载pdf

本文介绍一款基于 TuyaOS 平台开发的 Zigbee 轻量级 Command Line Interface(CLI)Demo。通过 CLI 交互方式与串口通信协议,展示 TuyaOS 常用的部分 TAL 层接口。

概述

功能特点

  • 支持 CLI 交互功能。

    • 提供基于串口通信协议的交互功能,用户可通过串口调试工具输入指令,与系统进行交互。
  • 集成 TuyaOS TAL 层接口展示。

    • 支持展示并调用 TuyaOS TAL 层的各类接口功能,包括 GPIO、PWM、ADC、软件定时器、网络管理以及 Zigbee 数据收发等。

使用流程

  1. 编译烧录,参考 设备编译与烧录

  2. 在串口调试软件中,连接烧录授权串口,按如下参数配置并打开该串口。

    参数 数值
    波特率 115200
    数据位 8
    停止位 1
    校验位
    流控制

    本 Demo 使用烧录授权串口作为调试串口。

  3. 设备上电,完成初始化后,程序打印欢迎界面。

    CLI Demo 开发包
  4. 用户通过串口调试软件,输入指令。

    每条指令需要输入 回车键 作为结束标志。

    示例

    1. help                      打印 CLI 使用指导
    2. ls                        打印总指令列表
    3. nwk join_start 30000       设备进入配网模式,配网超时时长为 30s
    
  5. 程序通过串口,输出处理结果。

    示例

    输入指令 help 后,程序的返回结果如下:

    CLI Demo 开发包

指令说明

格式

指令格式:main_cmd | sub_cmd | args

  • 1 个 main_cmd 可支持多个 sub_cmd
  • sub_cmd 可为空。
  • 用户可参考 总指令列表 来获取每条指令的 main_cmdsub_cmdargs 情况。

指令集

按照功能,本 Demo 的指令分别归类于如下指令集:

  • 通用指令集

    • 提供 Demo 引导、系统控制的指令。

    • 包含 main_cmdhelp(打印使用指导)、reset(系统软复位)和 ls(打印指令列表)等。

    • 不同 main_cmdsub_cmd 情况不尽相同。

    开发者在初次体验时,建议先参考 help 指令说明ls 指令说明,方便了解其它指令的使用方法与含义。

  • GPIO 指令集

    • 提供 GPIO 专用的指令。
    • main_cmd 固定为 gpio
    • sub_cmd 包含 initdeinitwrite 等,主要用于展示 TAL 层的 GPIO 相关接口。
  • PWM 指令集

    • 提供 PWM 专用的指令。
    • main_cmd 固定为 pwm
    • sub_cmd 包含 initdeinitstart 等,主要用于展示 TAL 层的 PWM 相关接口。
  • sw_timer 指令集

    • 提供 sw_timer 专用的指令。
    • main_cmd 固定为 sw_timer
    • sub_cmd 包含 createdeletestart 等,主要用于展示 TAL 层的软件定时器相关接口。
  • ADC 指令集

    • 提供 ADC 专用的指令。
    • main_cmd 固定为 adc
    • sub_cmd 包含 initdeinitread_single_channel 等,主要用于展示 TAL 层的 ADC 相关接口。
  • NWK 指令集

    • 提供 Endpoint 注册、网络管理、Zigbee 数据上报等指令。
    • main_cmd 固定为 nwk

    Endpoint 注册(node_config)、配网参数配置(join_config)等操作必须在上电初始化时进行处理,而对于本 Demo,程序在上电初始化完成后才提供 CLI 服务。因此,nwk 指令集的部分指令并不提供实际功能的处理,而只介绍实际功能的处理流程。

    更多信息,参考 nwk 指令集 的相关指令。

help 指令说明

help 指令支持如下三种使用方式:

  • help

    功能:获取 CLI 使用指导。

    CLI Demo 开发包

    打印结果展示了本 Demo 所支持的 main_cmd

  • [main_cmd] help

    功能:获取 main_cmd 使用指导。

    gpio help 为例:

    CLI Demo 开发包

    打印结果展示了该 main_cmd 所支持的 sub_cmd

  • [main_cmd] [sub_cmd] help

    功能:获取由 main_cmdsub_cmd 决定的指令的使用指导。

    gpio init help 为例:

    CLI Demo 开发包

    打印结果展示了该指令的参数列表。

ls 指令说明

ls 指令支持如下两种使用方式:

  • ls

    功能:打印总指令列表。

    CLI Demo 开发包
  • ls [main_cmd]

    功能:打印 main_cmd 的指令列表。

    ls gpio 为例:

    CLI Demo 开发包

产品创建

关于产品创建流程,参考产品创建

设备协议介绍

Zigbee 基本信息

参数 数值
Profile ID 0x0104
Device ID 0x0103

Endpoint 描述

Endpoint 描述
1 开关使用的端口号

支持的 Cluster

Input clusters(Server) Output clusters(Client)
Basic(0x0000) Over The Air Upgrade(0x0019)
Identify(0x0003) /
Group (0x0004) /
Scene (0x0005) /
OnOff (0x0006) /

支持的属性和命令

Basic cluster

Attributes
ID Name Data type Range Default
0x0000 ZCL Version uint8-0x20 0x00-0xff 0x03
0x0001 Application Version uint8-0x20 0x00-0xff 例如,0b 01 00 0001 = 1.0.1,即 0x411.0.1。OTA 功能会用到该版本号,在 OTA 开始阶段,网关会读取 OTA 包的版本号推送给设备。在 OTA 成功重启后,网关会读取版本号来确定是否升级成功。只能往更高的版本升级。
0x0002 Stack Version uint8-0x20 0x00-0xff 0x02
0x0003 Hardware Version uint8-0x20 0x00-0xff 0x01
0x0004 Manufacturer Name string-0x42 0-32 bytes XXX…XXX(长度为 16 个字节,由 8 字节前缀和 8 字节的 PID 组成),0-7 bytes:_TZ3000_,8-16 bytes:PID(由产品经理在平台或者自助创建和提供)。该字段决定了手机 App 界面的 UI 和功能展现,如果对 PID 没有特殊要求,可采用默认 PID。
0x0005 Model Identifier string-0x42 0-32 bytes TS000x(零火开关)(接入涂鸦网关使用,x 用于指代路数,TS0002 代表 2 路零火开关)
0x0007 Power Source enum8-0x30 0x00-0xff 0x01
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0001
Commands
ID Name Direction Description
0x00 Reset to Factory Defaults C->S 恢复出厂设置

Identify cluster

Attributes
ID Name Data type Range Default
0x0000 identify time uint16-0x21 0x0000-0xffff 0x0000

Group cluster

Attributes
ID Name Data type Range Default
0x0000 name support bitmap8-0x18 0x00-0xff 0x00
Commands
ID Name Direction
0x00 Add group C->S
0x03 Remove group C->S

Scene cluster

Attributes
ID Name Data type Range Default
0x0000 Scene count uint8-0x20 0x00-0xff 0x00
0x0001 Current scene uint8-0x20 0x00-0xff 0x00
0x0002 Current group uint16-0x21 0x0000-0xffff 0x0000
0x0003 Scene valid bool-0x10 0x00-0xff 0x00
0x0004 Name support bitmap8-0x18 0x00-0xff 0x00
Commands
ID Name Direction
0x04 Store Scene C->S
0x05 Recall Scene C->S

On/Off cluster

Attributes
ID Name Data type Range Default
0x0000 OnOff bool-0x10
  • 0:Off
  • 1:On
0x00
Commands
ID Name Direction
0x00 Off C->S
0x01 On C->S

DP 与 cluster 对应关系

DPID DP 含义 是否为标准指令 对应 Endpoint
1 开关 1

DP 开关

数据下发时,直接下发开或者关命令即可。上报需使用标准开关属性进行上报。

指令方向 Cluster ID CMD / ATTR ID Value
下发 0x0006:on/off
  • 0x00:off
  • 0x01:on
/
上报 0x0006:on/off 0x0000:on/off
  • 0:off
  • 1:on

设备编译与烧录

固件编译

  1. 在 Visual Studio Code 软件页面上,打开产品开发包,展开左侧 software/TuyaOS/apps,可以看到本产品 Demo 的 project 文件夹。

    CLI Demo 开发包
  2. 右键产品文件夹,选择 Build Project,在跳出的文本框内,输入编译固件的版本号(格式为 x.x.x)后,按回车键确认。

    关于泰凌微芯片平台,建议在 Build Project 前先 Clean Project

    CLI Demo 开发包 CLI Demo 开发包
  3. 编译成功后,控制台打印内容如下,以芯科平台为例:

    CLI Demo 开发包

    编译产物可在 software/TuyaOS/_output 文件夹查看,其中 QIO 标识的是烧录固件,UG 标识的是 OTA 升级文件,具体如下:

    • 芯科平台的编译产物在 software/TuyaOS/_output 文件夹内。
    • 泰凌微平台的编译产物在 项目工程路径 下的 output 文件夹内。
    • 奉加微平台的编译产物在 software/TuyaOS/_output 文件夹内。

    以芯科平台为例:

    CLI Demo 开发包

  4. 清除编译内容,Telink 平台编译前,建议先清除上次编译内容。可右键产品文件夹,选择 Clean Project,输入版本号,按回车键,确认对产品编译内容进行清除。

    CLI Demo 开发包 CLI Demo 开发包

固件烧录

例程开发说明

基础信息配置

设备注册配置

在产品工程的 src 文件夹中的 app_dev_register.c 文件,可修改注册的 Device ID、Cluster 和 Attribute 等设备信息。

可在文件的如下所示处,修改注册的 Server Cluster,您可根据需要进行删减:

// Server cluster list
CONST TAL_CLUSTER_T onoff_ep_server_cluster_list[] = {
    DEF_CLUSTER_IDENTIFY_CLUSTER_ID(identify_attr_list)
    DEF_CLUSTER_GROUPS_CLUSTER_ID(group_attr_list)
    DEF_CLUSTER_SCENES_CLUSTER_ID(scene_attr_list)
    DEF_CLUSTER_ON_OFF_CLUSTER_ID(onoff_attr_list)
};

在产品工程的 include 文件夹中的 app_dev_register.h 文件,可在文件的如下所示处,修改设备注册的 Endpoint 及其的 Device ID 等信息。

//Endpoint descriptor
TAL_ENDPOINT_T dev_endpoint_desc[] = {
    {ONOFF_ENDPOINT, ZHA_PROFILE_ID, ZG_DEVICE_ID_ON_OFF_LIGHT_SWITCH, ONOFF_EP_SERVER_CLUSTER_NUM, (TAL_CLUSTER_T *)&onoff_ep_server_cluster_list[0], 0, NULL},
};

固件信息修改

在产品工程文件夹下的 app_config.yaml,可配置该产品的 PID、Model ID 和设备类型等信息。文件支持两种配置方式,您根据需求任选其一即可。文件内容及作用如下:

#######################################################################
# COMPATIBILITY of [Tuya mode]
# For the use of tuya redefined attributes:
# [cluster:0x0000,attribute:0x0004] tuya manu name
# [cluster:0x0000,attribute:0x0005] tuya model id
########################################################################
Firmware_Information:
  description: "this is a demo project"
  device_role: "router"   # router/sleep_end_dev
  image_type: 0x1602
  manufacture_id: 0x1002
  model_id: "TS0002"
  manufacture_name: "_TZ3000_qlizmo9x" # capacity+pid
  module_name: ""
  chip_id: "" # efr32mg21a020f1024im32/efr32mg21a020f768im32/TLSR8258F1KET

########################################################################
# COMPATIBILITY of [zigbee standard mode]
# For the use of ZCL stardard attributes:
# [cluster:0x0000,attribute:0x0004] ManufacturerName
# [cluster:0x0000,attribute:0x0005] ModelIdentifier
########################################################################
# Firmware_Information:
#   description: "this is a demo project"
#   device_role: "sleep_end_dev"   # router/sleep_end_dev
#   image_type:
#   manufacture_id:
#   model_id: "custom"
#   manufacture_name: "custom"
#   product_id: "cz8yd6r2"
#   capacity: "_TZ3000_"
#   product_type: "TS0203"
#   module_name: ""
#   chip_id: "" # efr32mg21a020f1024im32/efr32mg21a020f768im32/TLSR8258F1KET

如果您想要自定义 model_idmanufacture_name 属性,则必须使用第二种配置方式,并填写 capacityproduct_typeproduct_id 字段。

名称 功能
description 产品描述字段
device_role 设备角色类型,router代表正常功耗路由设备,sleep_end_dev 代表休眠低功耗设备,请谨慎更改
image_type 固件信息,用于 OTA 时验证使用
manufacture_id 厂商 ID,用于 OTA 时验证使用
model_id 设备型号,用于加入涂鸦网关后确定设备功能,请谨慎更改
manufacture_name 产品能力值和涂鸦 PID 拼接,用下划线(_)连接,例如 _TZ3000_qlizmo9x
module_name 模组型号,指示产品使用的模组
chip_id 芯片型号,指示产品使用的芯片,请勿更改
capacity 涂鸦产品能力值,该字段请勿更改。如需更改,请咨询涂鸦产品经理
product_type 设备型号,用于加入涂鸦网关后确定设备功能,请谨慎更改
product_id 涂鸦产品 ID,此处留空,烧录授权时会写入新 PID

设备信息配置

例程开发需要开发者配置的设备信息及其配置方法如下:

设备信息配置

可在产品工程的 include 文件夹的 cli_app_config.h 文件,修改组件配置项,可配置项如下:

配置项 功能
ONOFF_ENDPOINT 开关的默认 Endpoint 序号,不建议修改
APP_ZG_NODE_ROUTER 设备类型(router),不建议修改
ZIGBEE_JOIN_TIMEOUT_MS 配网超时时间,默认 30s
ZCL_ID_ONOFF onoff 数据包发送时的 ZCL_ID,默认 100

管脚配置

不同平台的管脚对应关系不一样。

  • 对于芯科和泰凌微平台,可在 tkl_platform_types.h 文件中查看。
  • 对于奉加微平台,可参考 ZPU 模组规格书

芯科 MG21 为例,其管脚对应关系如下,其中 TUYA_GPIO_NUM_0 对应的是 PA0,以此类推。

//Gpio Index
#define APP_GPIO_PA0    TUYA_GPIO_NUM_0
#define APP_GPIO_PA1    TUYA_GPIO_NUM_1
#define APP_GPIO_PA2    TUYA_GPIO_NUM_2
#define APP_GPIO_PA3    TUYA_GPIO_NUM_3
#define APP_GPIO_PA4    TUYA_GPIO_NUM_4
#define APP_GPIO_PA5    TUYA_GPIO_NUM_5
#define APP_GPIO_PA6    TUYA_GPIO_NUM_6
#define APP_GPIO_PB0    TUYA_GPIO_NUM_7
#define APP_GPIO_PB1    TUYA_GPIO_NUM_8
#define APP_GPIO_PC0    TUYA_GPIO_NUM_9
#define APP_GPIO_PC1    TUYA_GPIO_NUM_10
#define APP_GPIO_PC2    TUYA_GPIO_NUM_11
#define APP_GPIO_PC3    TUYA_GPIO_NUM_12
#define APP_GPIO_PC4    TUYA_GPIO_NUM_13
#define APP_GPIO_PC5    TUYA_GPIO_NUM_14
#define APP_GPIO_PD0    TUYA_GPIO_NUM_15
#define APP_GPIO_PD1    TUYA_GPIO_NUM_16
#define APP_GPIO_PD2    TUYA_GPIO_NUM_17
#define APP_GPIO_PD3    TUYA_GPIO_NUM_18
#define APP_GPIO_PD4    TUYA_GPIO_NUM_19

支持与帮助

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

附录 - 指令参考

help 指令

  • 指令描述

    该指令支持三种使用方式:

    1. help                        打印 CLI 的使用指导
    2. [main_cmd] help              打印 main_cmd 的使用指导
    3. [main_cmd] [sub_cmd] help     打印由 main_cmd 和 sub_cmd 决定的指令的使用指导
    
  • 参数

  • 示例

    1. help                        打印 CLI 的使用指导
    2. gpio help                   打印 GPIO 的使用指导
    3. gpio init help              打印 GPIO init 的使用指导
    

reset 指令

  • 指令描述

    系统软复位。

  • 参数

  • 示例

    1. reset                        系统软复位
    

ls 指令

  • 指令描述

    该指令支持两种使用方式:

    1. ls                         打印总指令列表
    2. ls [main_cmd]               打印 main_cmd 的指令列表
    
  • 参数

    1. 空/[main_cmd]
    
  • 示例

    1. ls                            打印总指令列表
    2. ls gpio                       打印 GPIO 的指令列表
    

gpio init 指令

  • 指令描述

    进行 GPIO 初始化。

  • 参数

    1. [pin_id]                      GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    2. [direction]                   输入/输出,参考 'TUYA_GPIO_DRCT_E'
    3. [active_level]                GPIO 有效电平,参考 'TUYA_GPIO_LEVEL_E'
    

    示例

    1. gpio init 7 1 0                GPIO 初始化,参数为 'TUYA_GPIO_NUM_7'、输出、低电平有效
    

gpio deinit 指令

  • 指令描述

    进行 GPIO 反初始化。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    

    示例

    1. gpio deinit 7                GPIO 反初始化
    

gpio write 指令

  • 指令描述

    设置 GPIO 电平。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    2. [level]                        GPIO 电平,参考 'TUYA_GPIO_LEVEL_E'
    

    示例

    1. gpio writr 7 1                设置 GPIO 电平为高电平
    

gpio read 指令

  • 指令描述

    读取 GPIO 电平。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    

    示例

    1. gpio read 7                    读取 GPIO 电平
    

gpio irq_init 指令

  • 指令描述

    初始化 GPIO 并配置中断。

    GPIO 配置中断后,默认使能该中断。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    2. [irq_mode]                    GPIO 中断触发模式,参考 'TUYA_GPIO_IRQ_E'
    

    示例

    1. gpio irq_init 7 0            初始化 GPIO,配置中断触发模式为上升沿中断
    

gpio irq_enable 指令

  • 指令描述

    使能 GPIO 中断。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考'TUYA_GPIO_NUM_E'
    

    示例

    1. gpio irq_enable 7            使能 GPIO 中断
    

gpio irq_disable 指令

  • 指令描述

    禁用 GPIO 中断。

  • 参数

    1. [pin_id]                        GPIO 管脚,参考 'TUYA_GPIO_NUM_E'
    

    示例

    1. gpio irq_disable 7            禁用 GPIO 中断
    

pwm init 指令

  • 指令描述

    进行 PWM 初始化。

    PWM 初始化后,默认是 stop 状态,需要 start。

  • 参数

    1. [pwm_ch_id]                   PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [duty]                        占空比
    3. [freq]                        频率
    4. [pola]                        极性,参考 'TUYA_PWM_POLARITY_E'
    5. [map_pin]                     GPIO 映射引脚
    

    示例

    1. pwm init 0 400 10000 1 7        PWM 初始化,使用 TUYA_PWM_NUM_0,占空比为 400/1000、频率为 10000、正极性、映射引脚为 TUYA_GPIO_NUM_7
    

pwm deinit 指令

  • 指令描述

    进行 PWM 反初始化。

  • 参数

    1. [pwm_ch_id]                    PWM channel number,参考 'TUYA_PWM_NUM_E'
    

    示例

    1. pwm deinit 0                    PWM 反初始化
    

pwm start 指令

  • 指令描述

    开启 PWM。

  • 参数

    1. [pwm_ch_id]                   PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [duty]                        占空比
    3. [freq]                        频率
    4. [pola]                        极性,参考 'TUYA_PWM_POLARITY_E'
    5. [map_pin]                     GPIO 映射引脚
    

    示例

    1. pwm start 0                    开启 PWM
    

pwm stop 指令

  • 指令描述

    停止 PWM。

  • 参数

    1. [pwm_ch_id]                    PWM channel number,参考 'TUYA_PWM_NUM_E'
    

    示例

    1. pwm stop 0                    停止 PWM
    

pwm duty_set 指令

  • 指令描述

    设置 PWM 占空比。

  • 参数

    1. [pwm_ch_id]                    PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [duty]                        占空比
    

    示例

    1. pwm duty_set 0 800            设置 PWM 占空比为 800/1000
    

pwm freq_set 指令

  • 指令描述

    设置 PWM 频率。

  • 参数

    1. [pwm_ch_id]                   PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [freq]                        频率
    

    示例

    1. pwm freq_set 0 5000            设置 PWM 频率为 5000
    

pwm pola_set 指令

  • 指令描述

    设置 PWM 极性。

  • 参数

    1. [pwm_ch_id]                    PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [pola]
    

    示例

    1. pwm pola_set 0 0             设置 PWM 极性为负极性
    

pwm info_set 指令

  • 指令描述

    设置 PWM 参数。

  • 参数

    1. [pwm_ch_id]                   PWM channel number,参考 'TUYA_PWM_NUM_E'
    2. [duty]                        占空比
    3. [freq]                        频率
    4. [pola]                        极性,参考 'TUYA_PWM_POLARITY_E'
    

    示例

    1. pwm info_set 0 400 10000 1     设置 PWM 参数,占空比为 400/1000、频率为 10000、正极性
    

pwm info_get 指令

  • 指令描述

    获取 PWM 参数。

  • 参数

    1. [pwm_ch_id]                    PWM channel number,参考'TUYA_PWM_NUM_E'
    

    示例

    1. pwm info_get 0                 获取 PWM 参数
    

sw_timer create 指令

  • 指令描述

    创建软件定时器。

    • 在实际开发中,调用 TAL 层的软件定时器创建接口时,需要指定定时器回调。
    • 本 Demo 提供的定时器回调默认是翻转 GPIO 电平。
    • 本指令的第二个参数则是该编号的定时器的回调所控制的 GPIO 管脚。
    • 创建软件定时器后,需要开启软件定时器,才可以使软件定时器开始工作。
  • 参数

    1. [sw_timer_index]                定时器编号
    注意:这是本 Demo 为方便用户体验软件定时器使用流程而定义的编号,在实际开发中,使用 TIMER_ID 来区分软件定时器。
    2. [led_pin]                    被该定时器控制的 GPIO 管脚
    

    示例

    1. sw_timer create 0 7            创建软件定时器,定时器回调是翻转 TUYA_GPIO_NUM_7 的电平
    

sw_timer delete 指令

  • 指令描述

    删除软件定时器。

  • 参数

    1. [sw_timer_index]                定时器编号
    注意:这是本 Demo 为方便用户体验软件定时器使用流程而定义的编号,在实际开发中,使用 TIMER_ID 来区分软件定时器。
    

    示例

    1. sw_timer delete 0             删除软件定时器
    

sw_timer start 指令

  • 指令描述

    开启软件定时器。

  • 参数

    1. [sw_timer_index]              定时器编号
    注意:这是本 Demo 为方便用户体验软件定时器使用流程而定义的编号,在实际开发中,使用 TIMER_ID 来区分软件定时器
    2. [time_ms]                    定时器周期
    3. [sw_timer_type]              定时器工作模式(单次执行/循环执行)
    

    示例

    1. sw_timer start 0 100 1        开启软件定时器,周期为 100ms,循环执行
    

sw_timer stop 指令

  • 指令描述

    停止软件定时器。

  • 参数

    1. [sw_timer_index]                定时器编号
    注意:这是本 Demo 为方便用户体验软件定时器使用流程而定义的编号,在实际开发中,使用 TIMER_ID 来区分软件定时器。
    

    示例

    1. sw_timer stop 0                 停止软件定时器
    

sw_timer is_running 指令

  • 指令描述

    获取软件定时器工作状态。

  • 参数

    1. [sw_timer_index]                定时器编号
    注意:这是本 Demo 为方便用户体验软件定时器使用流程而定义的编号,在实际开发中,使用 TIMER_ID 来区分软件定时器。
    

    示例

    1. sw_timer is_running 0         获取软件定时器工作状态
    

adc init 指令

  • 指令描述

    进行 ADC 初始化。

  • 参数

    1. [port_num]                    ADC port number,参考 'TUYA_ADC_NUM_E'
    2. [adc_ch_id]                   ADC channel number
    

    示例

    1. adc init 0 0                    ADC 初始化,使用 TUYA_ADC_NUM_0、通道 0
    

adc deinit 指令

  • 指令描述

    进行 ADC 反初始化。

  • 参数

    1. [port_num]                    ADC port number,参考 'TUYA_ADC_NUM_E'
    

    示例

    1. adc deinit 0                    ADC 反初始化
    

adc read_single_channel 指令

  • 指令描述

    读取指定 port number,指定通道的 ADC 值。

  • 参数

    1. [port_num]                    ADC port number,参考 'TUYA_ADC_NUM_E'
    2. [adc_ch_id]                   ADC channel number
    

    示例

    1. adc read_single_channel 0 0    读取 TUYA_ADC_NUM_0,通道 0 的 ADC 值
    

nwk endpoint_register 指令

  • 指令描述

    介绍 Endpoint 注册流程。

  • 参数

    1. [part]                        介绍流程,0~6
    

    示例

    1. nwk endpoint_register 0         总览
    

nwk node_config 指令

  • 指令描述

    介绍 node config 流程。

  • 参数

    1. [part]                        介绍流程,0~8
    

    示例

    1. nwk node_config 0             总览
    

nwk join_config 指令

  • 指令描述

    介绍 join config 流程。

  • 参数

    1. [part]                        介绍流程,0~1
    

    示例

    1. nwk join_config 0             总览
    

nwk join_start 指令

  • 指令描述

    设备进入配网模式。

    调用 TAL 层的 join start 函数时,设备会先本地离网,再开始扫网。

  • 参数

    1. [join_timeout]                配网超时时间
    

    示例

    1. nwk join_start 30000         设备进入配网模式,配网超时时间为 30 秒
    

nwk nwk_status_get 指令

  • 指令描述

    获取设备当前网络状态。

  • 参数

    示例

    1. nwk nwk_status_get             获取设备当前网络状态
    

nwk nwk_status_change_callback 指令

  • 指令描述

    介绍 nwk_status_change_callback 函数。

  • 参数

    1. [part]                        介绍流程,0~2
    

    示例

    1. nwk nwk_status_change_callback 0     总览
    

nwk clear_send_data 指令

  • 指令描述

    清除 send data queue。

    在调用 TAL 层的 send data 接口前,应先清除 send data queue。

  • 参数

    示例

    1. nwk endpoint_register         清除 send data queue
    

nwk send_data 指令

  • 指令描述

    上报 on/off 属性值。

    本指令在调用 TAL 层的 send data 接口前,尚未清除 send data queue。

  • 参数

    1. [send_value]                  上报数值
    2. [join_timeout]                上报超时时间
    

    示例

    1. nwk send_data 0 1000          上报 on/off 属性值为 0,超时时间为 1000ms