更新时间:2024-11-20 08:51:21下载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 |
---|---|
依赖项 | 无 |
描述 | 自定义的配置文件名称。 |
备注 | 该定义文件名称会覆盖 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 |
---|---|
依赖项 | 无 |
描述 | 应用程序自定义的生产测试代码头文件。 |
备注 | 例如,#define CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE "custom_app_product_test.h" 。其中 custom_app_product_test.h 就是您的应用程序自定义的生产测试代码文件的头文件。该文件主要实现应用程序自定义的测试项目,以及需要依赖具体芯片平台的涂鸦标准测试项目。 |
宏定义 | CUSTOMIZED_TUYA_BLE_APP_PRODUCT_TEST_HEADER_FILE |
---|---|
依赖项 | 无 |
描述 | 芯片平台移植代码头文件。 |
备注 | 举例:
|
宏定义 | CUSTOMIZED_TUYA_BLE_APP_UART_COMMON_HEADER_FILE |
---|---|
依赖项 | 无 |
描述 | 目前只应用于涂鸦通用模组协议。 |
备注 | 应用无需关心,可忽略。 |
宏定义 | TUYA_BLE_USE_OS |
---|---|
依赖项 | 无 |
描述 | 表示芯片平台是否是基于 OS(例如 FreeRTOS)的。 基于 OS: #define TUYA_BLE_USE_OS 1 其他情况: #define TUYA_BLE_USE_OS 0 |
宏定义 | 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 |
---|---|
依赖项 | #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 |
---|---|
依赖项 | #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 |
---|---|
依赖项 | 无 |
描述 | 设备能力定义。参数说明:
|
备注 | 如果是单蓝牙设备,需要定义如下:#define TUYA_BLE_DEVICE_COMMUNICATION_ABILITY (TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_BLE | TUYA_BLE_DEVICE_COMMUNICATION_ABILITY_REGISTER_FROM_BLE) |
宏定义 | TUYA_BLE_DEVICE_SHARED |
---|---|
依赖项 | 无 |
描述 | 是否是共享类设备。 |
备注 | 目前主要用于共享类体脂秤产品。如果不是共享类设备,请设置为 #define TUYA_BLE_DEVICE_SHARED 0 。 |
宏定义 | TUYA_BLE_DEVICE_UNBIND_MODE |
---|---|
依赖项 | 无。 |
描述 | 如果定义为1,则在解绑设备时 SDK 需要删除存储的绑定信息。 如果定义为0,则不需要删除绑定信息,主要用于共享类设备。 |
备注 | 目前主要用于共享类体脂秤产品。如果不是共享类设备,请设置为 #define TUYA_BLE_DEVICE_UNBIND_MODE 1 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 涂鸦蓝牙 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 |
---|---|
依赖项 | 无 |
描述 | 涂鸦蓝牙 SDK通信安全加密方式。定义如下:
|
备注 | 目前仅支持 TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY 和TUYA_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 |
---|---|
依赖项 | #define TUYA_BLE_SECURE_CONNECTION_TYPE TUYA_BLE_SECURE_CONNECTION_WITH_AUTH_KEY_ADVANCED_ENCRYPTION |
描述 | 定义为 1 表示 高级安全加密 下,每次蓝牙连接都需要进行证书认证。 定义为 0 表示 高级安全加密下,每次蓝牙连接不需要进行证书认证。 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 是否需要使用涂鸦授权信息中的 Mac 地址作为设备 Mac 地址 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 涂鸦蓝牙 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 |
---|---|
依赖项 | 无 |
描述 | GATT MTU大小:#define TUYA_BLE_DATA_MTU_MAX 20 |
备注 | 目前仅支持 20 字节的 GATT MTU,后续会扩展升级。 |
宏定义 | 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 |
---|---|
依赖项 | #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 |
---|---|
依赖项 | #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 |
---|---|
依赖项 | 无 |
描述 | 是否开启应用日志。 如果开启: #define TUYA_APP_LOG_ENABLE 1 否则: #define TUYA_APP_LOG_ENABLE 0 |
备注 | 开启应用内部日志,会增加一定的代码空间。建议您调试(debug)版本开启内部日志,正式(release)版本关闭。 |
宏定义 | 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 |
---|---|
依赖项 | #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 |
---|---|
依赖项 | 无 |
描述 | 是否开启 beacon key。如果应用程序需要使用 beacon 发送涂鸦 DP 数据,那么就需要开启,定义为 1。 |
宏定义 | TUYA_BLE_FEATURE_WEATHER_ENABLE |
---|---|
依赖项 | 无 |
描述 | 是否开启天气服务 |
备注 | 开启天气服务,需要额外的配置流程。请联系您的涂鸦客户经理协助设置,否则只从 SDK 端开启则没有作用。 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 涂鸦蓝牙 SDK 在每次和 App 建立连接后是,否需要主动请求一次时间。 0:不请求。 1:请求一次云端时间。 2:请求一次手机本地时间。 |
备注 | 若不使用,则无需关注。 |
宏定义 | TUYA_NV_ERASE_MIN_SIZE |
---|---|
依赖项 | 无 |
描述 | 给涂鸦蓝牙 SDK 分配的 NV(Flash)空间最小擦除单位。 例如: #define TUYA_NV_ERASE_MIN_SIZE 4096 |
备注 | 根据 port 层对 NV 接口的实现方式来定义。 |
宏定义 | TUYA_NV_WRITE_GRAN |
---|---|
依赖项 | 无 |
描述 | 设置 NV(flash)写入的粒度。 例如, #define TUYA_NV_WRITE_GRAN 4 表示只能以4字节单位写入。 |
备注 | 根据 port 层对 NV 接口的实现方式来定义。 |
宏定义 | TUYA_NV_START_ADDR |
---|---|
依赖项 | 无 |
描述 | 给涂鸦蓝牙 SDK 分配的 NV(flash)起始地址。 例如: #define TUYA_NV_START_ADDR 0x1000 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 应用固件名称。 例如: #define TUYA_BLE_APP_BUILD_FIRMNAME_STRING "tuya_ble_sdk_app_demo_xxx" |
备注 | 只有使用涂鸦产测授权协议,校验固件名称时会使用到。 |
宏定义 | 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 |
---|---|
依赖项 | 无 |
描述 | 基于涂鸦蓝牙 SDK 开发的应用固件 Key,字符串格式。 |
备注 | 定义方法同 TUYA_BLE_APP_VERSION_STRING |
宏定义 | 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 |
---|---|
依赖项 | #define TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE ( 1 ) |
描述 | 是否使能场景能力,如果开启:#define TUYA_BLE_FEATURE_SCENE_ENABLE ( 1 ) 否则: #define TUYA_BLE_FEATURE_SCENE_ENABLE ( 0 ) |
备注 | 场景能力:适用于手表手环类带显示屏幕的产品,具有获取 App 场景与场景控制的能力。 在蓝牙连接情况下,设备端触发执行场景功能时,将发送命令给 App 执⾏场景,实现场景控制功能。 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈