Config

更新时间:2022-11-24 09:20:10下载pdf

通过 tuya_ble_config.h 里的相关配置项,您可将 SDK 配置成不同的应用场景。例如,设置多协议设备的通用配网模式、平台是否使用 OS、设置设备通信能力、SDK 是否自管理授权信息等。

在修改配置之前,您需要新建一个 custom_tuya_ble_config.h 文件,用来定义 SDK 需要的各种参数,然后在 tuya_ble_config.h 文件中,引用新建的 custom_tuya_ble_config.h

CUSTOMIZED_TUYA_BLE_CONFIG_FILE

宏定义 CUSTOMIZED_TUYA_BLE_CONFIG_FILE
依赖项
描述 自定义的配置文件名称。
备注 该定义文件名称会覆盖 tuya_ble_config.h 文件中的默认配置。应用程序必须新建一个自定义名称的应用配置文件,然后将该文件名字赋值给 CUSTOMIZED_TUYA_BLE_CONFIG_FILE,例如(Keil 下):
CUSTOMIZED_TUYA_BLE_CONFIG_FILE = <custom_tuya_ble_config.h>

CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE

宏定义 CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE
依赖项
描述 应用程序自定义的生产测试代码头文件。
备注 例如,#define CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE "custom_app_product_test.h"。其中 custom_app_product_test.h 就是您的应用程序自定义的生产测试代码文件的头文件。该文件主要实现应用程序自定义的测试项目,以及需要依赖具体芯片平台的涂鸦标准测试项目。

TUYA_BLE_PORT_PLATFORM_HEADER_FILE

宏定义 CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE
依赖项
描述 芯片平台移植代码头文件。
备注 举例:
  1. 在 Nordic 平台移植适配涂鸦蓝牙 SDK,新建 tuya_ble_port_nrf.ctuya_ble_port_nrf.h 代码源文件,用于实现 port 所有接口。
  2. 在新建的 custom_tuya_ble_config.h 文件中定义如下:#define TUYA_BLE_PORT_PLATFORM_HEADER_FILE "tuya_ble_port_nrf"

CUSTOMIZED_TUYA_BLE_APP_UART_COMMON_HEADER_FILE

宏定义 CUSTOMIZED_TUYA_BLE_APP_UART_COMMON_HEADER_FILE
依赖项
描述 目前只应用于涂鸦通用模组协议。
备注 应用无需关心,可忽略。

TUYA_BLE_USE_OS

宏定义 TUYA_BLE_USE_OS
依赖项
描述 表示芯片平台是否是基于 OS(例如 FreeRTOS)的。
基于 OS:#define TUYA_BLE_USE_OS 1
其他情况:#define TUYA_BLE_USE_OS 0

TUYA_BLE_SELF_BUILT_TASK

宏定义 TUYA_BLE_SELF_BUILT_TASK
依赖项 #define TUYA_BLE_USE_OS 1
描述 RTOS 下,涂鸦蓝牙 SDK 是否需要自建任务(TASK)来处理消息
是: #define TUYA_BLE_SELF_BUILT_TASK 1
否: #define TUYA_BLE_SELF_BUILT_TASK 0
备注 若不使用 OS,则无需关心。

TUYA_BLE_TASK_PRIORITY

宏定义 TUYA_BLE_TASK_PRIORITY
依赖项 #define TUYA_BLE_USE_OS 1
#define TUYA_BLE_SELF_BUILT_TASK 1
描述 RTOS 下,设置涂鸦蓝牙 SDK 自建 TASK 的优先级(PRIORITY),例如:#define TUYA_BLE_TASK_PRIORITY 1
备注 具体的 PRIORITY 需要根据芯片平台所使用的的 RTOS 来定义。若不使用 OS,则无需关心。

TUYA_BLE_TASK_STACK_SIZE

宏定义 TUYA_BLE_TASK_STACK_SIZE
依赖项 #define TUYA_BLE_USE_OS 1
#define TUYA_BLE_SELF_BUILT_TASK 1
描述 RTOS 下,涂鸦蓝牙 SDK 自建 TASK 的栈(STACK)大小。
例如:#define TUYA_BLE_TASK_STACK_SIZE 256*10
备注 若不使用 OS,则无需关心。

TUYA_BLE_DEVICE_COMMUNICATION_ABILITY

宏定义 TUYA_BLE_DEVICE_COMMUNICATION_ABILITY
依赖项
描述 设备能力定义。参数说明:
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_BLE
    是否支持蓝牙
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_REGISTER_FROM_BLE
    是否通过蓝牙注册设备
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_MESH
    是否支持蓝牙 Mesh
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_WIFI_24G
    是否支持 2.4G Wi-Fi
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_WIFI_5G
    是否支持 5G Wi-Fi
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_ZIGBEE
    是否支持 Zigbee
  • TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_NB
    是否支持 NB-IoT
备注 如果是单蓝牙设备,需要定义如下:
#define TUYA_BLE_DEVICE_COMMUNICATION_ABILITY (TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_BLE | TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_REGISTER_FROM_BLE)

TUYA_BLE_DEVICE_SHARED

宏定义 TUYA_BLE_DEVICE_SHARED
依赖项
描述 是否是共享类设备。
备注 目前主要用于共享类体脂秤产品。如果不是共享类设备,请设置为 #define TUYA_BLE_DEVICE_SHARED 0

TUYA_BLE_DEVICE_UNBIND_MODE

宏定义 TUYA_BLE_DEVICE_UNBIND_MODE
依赖项 无。
描述 如果定义为1,则在解绑设备时 SDK 需要删除存储的绑定信息。
如果定义为0,则不需要删除绑定信息,主要用于共享类设备。
备注 目前主要用于共享类体脂秤产品。如果不是共享类设备,请设置为 #define TUYA_BLE_DEVICE_UNBIND_MODE 1

TUYA_BLE_WIFI_DEVICE_REGISTER_MODE

宏定义 TUYA_BLE_WIFI_DEVICE_REGISTER_MODE
依赖项 设备能力必须支持 Wi-Fi
描述 通过蓝牙对 Wi-Fi 进行配网时,是否首先发送查询配网状态指令。
如果是:#define TUYA_BLE_WIFI_DEVICE_REGISTER_MODE 1
否则:#define TUYA_BLE_WIFI_DEVICE_REGISTER_MODE 0
备注 目前暂未开放使用。

TUYA_BLE_DEVICE_AUTH_SELF_MANAGEMENT

宏定义 TUYA_BLE_DEVICE_AUTH_SELF_MANAGEMENT
依赖项
描述 涂鸦蓝牙 SDK 是否需要自己管理授权信息。
如果是:#define TUYA_BLE_DEVICE_AUTH_SELF_MANAGEMENT 1
否则:#define TUYA_BLE_DEVICE_AUTH_SELF_MANAGEMENT 0
备注 对于不具备 Wi-Fi 能力的蓝牙设备,该值必须定义为 1

TUYA_BLE_SECURE_CONNECTION_TYPE

宏定义 TUYA_BLE_SECURE_CONNECTION_TYPE
依赖项
描述 涂鸦蓝牙 SDK通信安全加密方式。定义如下:
  • TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY
    Auth Key 加密
  • TUYA_BLE_SECURE_CONNECTION_WITH_ECC
    ECDH 加密
  • TUYA_BLE_SECURE_CONNECTION_WTIH_PASSTHROUGH
    不加密
  • TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY_ADVANCED_ENCRYPTION
    高级安全加密方式,采用安全芯片的 Auth key 加密方式
备注 目前仅支持 TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEYTUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY_ADVANCED_ENCRYPTION。一般定义如下值即可:
#define TUYA_BLE_DEVICE_AUTH_SELF_MANAGEMENT TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY

TUYA_BLE_ADVANCED_ENCRYPTION_AUTH_ON_CONNECT

宏定义 TUYA_BLE_ADVANCED_ENCRYPTION_AUTH_ON_CONNECT
依赖项 #define TUYA_BLE_SECURE_CONNECTION_TYPE TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY_ADVANCED_ENCRYPTION
描述 定义为 1 表示 高级安全加密 下,每次蓝牙连接都需要进行证书认证。
定义为 0 表示 高级安全加密下,每次蓝牙连接不需要进行证书认证。

TUYA_BLE_INCLUDE_CJSON_COMPONENTS

宏定义 TUYA_BLE_INCLUDE_CJSON_COMPONENTS
依赖项 #define TUYA_BLE_SECURE_CONNECTION_TYPE TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY_ADVANCED_ENCRYPTION
描述 是否需要包含 CJSON 库。
备注 CJSON 库主要用于高级安全加密。

TUYA_BLE_DEVICE_MAC_UPDATE

宏定义 TUYA_BLE_DEVICE_MAC_UPDATE
依赖项
描述 是否需要使用涂鸦授权信息中的 Mac 地址作为设备 Mac 地址

TUYA_BLE_DEVICE_MAC_UPDATE_RESET

宏定义 TUYA_BLE_DEVICE_MAC_UPDATE_RESET
依赖项 #define TUYA_BLE_DEVICE_MAC_UPDATE 1
描述 芯片平台更新MAC地址后是否需要重启生效。
如果是: #define TUYA_BLE_DEVICE_MAC_UPDATE_RESET 1
否则: #define TUYA_BLE_DEVICE_MAC_UPDATE_RESET 0

TUYA_BLE_USE_PLATFORM_MEMORY_HEAP

宏定义 TUYA_BLE_USE_PLATFORM_MEMORY_HEAP
依赖项
描述 涂鸦蓝牙 SDK 是否使用自己的内存堆。
如果是: #define TUYA_BLE_USE_PLATFORM_MEMORY_HEAP 0
否则: #define TUYA_BLE_USE_PLATFORM_MEMORY_HEAP 1
备注 如果定义为 1,需要应用程序在 port 层移植,实现内存管理函数供涂鸦蓝牙 SDK 使用。

TUYA_BLE_DATA_MTU_MAX

宏定义 TUYA_BLE_DATA_MTU_MAX
依赖项
描述 GATT MTU大小:
#define TUYA_BLE_DATA_MTU_MAX 20
备注 目前仅支持 20 字节的 GATT MTU,后续会扩展升级。

TUYA_BLE_LOG_ENABLE

宏定义 TUYA_BLE_LOG_ENABLE
依赖项
描述 是否开启涂鸦蓝牙 SDK 内部日志(log)打印。
如果开启: #define TUYA_BLE_LOG_ENABLE 1
否则: #define TUYA_BLE_LOG_ENABLE 0
备注 开启 SDK 内部日志,会增加一定的代码空间。建议您调试(debug)版本开启内部日志,正式(release)版本关闭。

TUYA_BLE_LOG_COLORS_ENABLE

宏定义 TUYA_BLE_LOG_COLORS_ENABLE
依赖项 #define TUYA_BLE_LOG_ENABLE 1
描述 是否开启涂鸦蓝牙 SDK 内部日志多颜色显示。
如果开启: #define TUYA_BLE_LOG_COLORS_ENABLE 1
否则: #define TUYA_BLE_LOG_COLORS_ENABLE 0
备注 并不是所有的 log 显示工具都支持,例如 J-Link 的 RTT 没有该功能。

TUYA_BLE_LOG_LEVEL

宏定义 TUYA_BLE_LOG_LEVEL
依赖项 #define TUYA_BLE_LOG_ENABLE 1
描述 定义涂鸦蓝牙 SDK 内部日志的显示等级。分为如下几个等级:
#defineTUYA_BLE_LOG_LEVEL_ERROR 1U
#defineTUYA_BLE_LOG_LEVEL_WARNING 2U
#defineTUYA_BLE_LOG_LEVEL_INFO 3U
#defineTUYA_BLE_LOG_LEVEL_DEBUG 4U
如果只需要打印错误信息,则定义为:
#define TUYA_BLE_LOG_LEVEL TUYA_BLE_LOG_LEVEL_ERROR

TUYA_APP_LOG_ENABLE

宏定义 TUYA_APP_LOG_ENABLE
依赖项
描述 是否开启应用日志。
如果开启: #define TUYA_APP_LOG_ENABLE 1
否则: #define TUYA_APP_LOG_ENABLE 0
备注 开启应用内部日志,会增加一定的代码空间。建议您调试(debug)版本开启内部日志,正式(release)版本关闭。

TUYA_APP_LOG_COLORS_ENABLE

宏定义 TUYA_APP_LOG_COLORS_ENABLE
依赖项 #define TUYA_APP_LOG_ENABLE 1
描述 是否开启应用日志多颜色显示。
如果开启: #define TUYA_APP_LOG_COLORS_ENABLE 1
否则: #define TUYA_APP_LOG_COLORS_ENABLE 0
备注 并不是所有的 log 显示工具都支持,例如 J-Link 的 RTT 没有该功能。

TUYA_APP_LOG_LEVEL

宏定义 TUYA_APP_LOG_LEVEL
依赖项 #define TUYA_APP_LOG_ENABLE 1
描述 定义应用日志的显示等级,分为如下几个等级:
#defineTUYA_APP_LOG_LEVEL_ERROR 1U
#defineTUYA_APP_LOG_LEVEL_WARNING 2U
#defineTUYA_APP_LOG_LEVEL_INFO 3U
#defineTUYA_APP_LOG_LEVEL_DEBUG 4U
如果只需要打印错误信息,则定义为:
#define TUYA_APP_LOG_LEVEL TUYA_APP_LOG_LEVEL_ERROR

TUYA_BLE_BEACON_KEY_ENABLE

宏定义 TUYA_BLE_BEACON_KEY_ENABLE
依赖项
描述 是否开启 beacon key。如果应用程序需要使用 beacon 发送涂鸦 DP 数据,那么就需要开启,定义为 1。

TUYA_BLE_FEATURE_WEATHER_ENABLE

宏定义 TUYA_BLE_FEATURE_WEATHER_ENABLE
依赖项
描述 是否开启天气服务
备注 开启天气服务,需要额外的配置流程。请联系您的涂鸦客户经理协助设置,否则只从 SDK 端开启则没有作用。

TUYA_BLE_LINK_LAYER_ENCRYPTION_SUPPORT_ENABLE

宏定义 TUYA_BLE_LINK_LAYER_ENCRYPTION_SUPPORT_ENABLE
依赖项
描述 是否开启蓝牙 LINK 层配对加密机制。如果开启,应用程序移植 SDK 时就需要实现 port 接口中的 tuya_ble_device_info_characteristic_value_update() 函数,同时还需要定义 Read Characteristic uuid
备注 若不使用,则无需关注。

TUYA_BLE_AUTO_REQUEST_TIME_CONFIGURE

宏定义 TUYA_BLE_AUTO_REQUEST_TIME_CONFIGURE
依赖项
描述 涂鸦蓝牙 SDK 在每次和 App 建立连接后是,否需要主动请求一次时间。
0:不请求。
1:请求一次云端时间。
2:请求一次手机本地时间。
备注 若不使用,则无需关注。

TUYA_NV_ERASE_MIN_SIZE

宏定义 TUYA_NV_ERASE_MIN_SIZE
依赖项
描述 给涂鸦蓝牙 SDK 分配的 NV(Flash)空间最小擦除单位。
例如: #define TUYA_NV_ERASE_MIN_SIZE 4096
备注 根据 port 层对 NV 接口的实现方式来定义。

TUYA_NV_WRITE_GRAN

宏定义 TUYA_NV_WRITE_GRAN
依赖项
描述 设置 NV(flash)写入的粒度。
例如,#define TUYA_NV_WRITE_GRAN 4 表示只能以4字节单位写入。
备注 根据 port 层对 NV 接口的实现方式来定义。

TUYA_NV_START_ADDR

宏定义 TUYA_NV_START_ADDR
依赖项
描述 给涂鸦蓝牙 SDK 分配的 NV(flash)起始地址。
例如:#define TUYA_NV_START_ADDR 0x1000

TUYA_NV_AREA_SIZE

宏定义 TUYA_NV_AREA_SIZE
依赖项
描述 给涂鸦蓝牙 SDK 分配的 NV(flash)大小。
例如:#define TUYA_NV_AREA_SIZE (4*TUYA_NV_ERASE_MIN_SIZE)
大小必须是 TUYA_NV_ERASE_MIN_SIZE 的整数倍。

TUYA_BLE_APP_BUILD_FIRMNAME_STRING

宏定义 TUYA_BLE_APP_BUILD_FIRMNAME_STRING
依赖项
描述 应用固件名称。
例如:#define TUYA_BLE_APP_BUILD_FIRMNAME_STRING "tuya_ble_sdk_app_demo_xxx"
备注 只有使用涂鸦产测授权协议,校验固件名称时会使用到。

TUYA_BLE_APP_VERSION_STRING

宏定义 TUYA_BLE_APP_VERSION_STRING
依赖项
描述 基于涂鸦蓝牙 SDK 开发的应用固件版本号,只支持2位数字,字符串格式。
例如:#define TUYA_BLE_APP_VERSION_STRING "1.0"
备注 假设设备应用程序定义了固件版本号为 #define TY_APP_VER_NUM 0x0101
#define TY_APP_VER_STR "1.1",那么在 custom_tuya_ble_config.h 文件中做如下定义:
#define TUYA_BLE_APP_VERSION_STRING TY_APP_VER_STR

TUYA_BLE_APP_FIRMWARE_KEY

宏定义 TUYA_BLE_APP_FIRMWARE_KEY
依赖项
描述 基于涂鸦蓝牙 SDK 开发的应用固件 Key,字符串格式。
备注 定义方法同 TUYA_BLE_APP_VERSION_STRING

TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE

宏定义 TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE
依赖项
描述 是否使能 IoT 通道能力,如场景功能依赖 IoT 通道,如果开启:
#define TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE ( 1 )
否则:
#define TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE ( 0 )
备注 当前 IoT 通道仅支持场景能力,后续类似功能会基于该通道能力拓展。

TUYA_BLE_FEATURE_SCENE_ENABLE

宏定义 TUYA_BLE_FEATURE_SCENE_ENABLE
依赖项 #define TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE ( 1 )
描述 是否使能场景能力,如果开启:
#define TUYA_BLE_FEATURE_SCENE_ENABLE ( 1 )
否则:
#define TUYA_BLE_FEATURE_SCENE_ENABLE ( 0 )
备注 场景能力:适用于手表手环类带显示屏幕的产品,具有获取 App 场景与场景控制的能力。
在蓝牙连接情况下,设备端触发执行场景功能时,将发送命令给 App 执⾏场景,实现场景控制功能。