本地日志

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

应用代码开发调试过程中,通常需要结合打印日志定位问题原因。本文对涂鸦本地日志进行说明,便于快速理解 SDK 运行时产生的各种日志信息。

日志设置

日志等级

涂鸦蓝牙 SDK 的日志类型有以下几种分类:

  • ERROR
  • WARNING
  • INFO
  • DEBUG

您可以通过设置日志的等级来决定哪些日志信息输出,例如设置日志输出等级为 TUYA_BLE_LOG_LEVEL_ERROR,则 WARNINGINFODEBUG 打印信息不会显示。

宏定义设置

请检查 config 文件内,是否开启日志打印的相关宏定义配置

  • TUYA_BLE_LOG_ENABLE:设置是否打开 SDK 日志
  • TUYA_BLE_LOG_COLORS_ENABLE:设置是否开启 SDK 日志多颜色显示
  • TUYA_BLE_LOG_LEVEL:设置 SDK 日志的显示等级
  • TUYA_APP_LOG_ENABLE:设置是否开启 App 日志
  • TUYA_APP_LOG_COLORS_ENABLE:设置是否开启 App 日志多颜色显示
  • TUYA_APP_LOG_LEVEL:设置 App 日志的显示等级

日志打印函数移植

请检查 Port 文件内,是否移植好打印函数

  • TUYA_BLE_PRINTF (const char *format,…): 字符串打印
  • TUYA_BLE_HEXDUMP(uint8_t *p_data , uint16_t len):16 进制打印

日志说明

涂鸦蓝牙 SDK 函数中,加入运行状态的监控日志。在开发调试阶段,这些日志能清晰的表明当前 SDK 的运行情况,便于测试确认问题。本文以 nRF528432 芯片平台,JLinkRTTViewer 打印为例。对 SDK 运行时打印的主要的日志进行说明,其他芯片平台可参考此文档。

初始化日志

将固件烧录到芯片内,芯片上电后, tuya_ble_sdk_init 被正确运行,会打印相关初始信息。您可根据这里的日志信息判断涂鸦蓝牙 SDK 是否正常启动,以及是否写入了正确的 license 信息。若没有没有对应的日志,请重新检查相关移植步骤

tuya_ble_status_t tuya_ble_sdk_init(tuya_ble_device_param_t * param_data)
{
    ....
    TUYA_BLE_LOG_HEXDUMP_INFO("auth settings mac", tuya_ble_current_para.auth_settings.mac, MAC_LEN);  //打印 mac
    TUYA_BLE_LOG_HEXDUMP_INFO("product_id", tuya_ble_current_para.pid, tuya_ble_current_para.pid_len);  //打印 product_id
    TUYA_BLE_LOG_HEXDUMP_DEBUG("device_uuid", tuya_ble_current_para.auth_settings.device_id, DEVICE_ID_LEN); //打印 device_uuid
    TUYA_BLE_LOG_HEXDUMP_DEBUG("device_authkey", tuya_ble_current_para.auth_settings.auth_key, AUTH_KEY_LEN); //device_authkey
    TUYA_BLE_LOG_INFO("bond_flag = %d", tuya_ble_current_para.sys_settings.bound_flag);  //打印绑定标志位
    TUYA_BLE_LOG_INFO("tuya ble sdk version : "TUYA_BLE_SDK_VERSION_STR);   //打印所使用蓝牙SDK版本

    return TUYA_BLE_SUCCE
}

本地日志

bond_flag=0,表示蓝牙设备处于未配网状态。

配网日志

打开涂鸦 App,搜索设备完成 App 配网绑定,设备打印日志如下。
本地日志

bond_flag=1,表示蓝牙设备已绑定。

数据上报日志

设备上报 DP 数据。设备打印日志如下。

本地日志

0x8006 指令为上报指令。 您也可以在 tuya_ble_dp_data_send() 函数内补充其他日志打印代码。

数据接收日志

当点击面板,下发 DP 数据给 SDK,SDK解析数据,并将解析好的数据以事件返回设备应用程序。设备打印日志如下。

本地日志

如图所示,接收到 dp_id=27, dp_type=enum,dp_data=0。

蓝牙断开

当设备与手机 App 蓝牙断开。设备打印日志如下。

本地日志

App 移除

使用手机 App 移除设备,解除用户绑定关系。设备打印日志如下。

本地日志

其他

其他日志信息,请阅读蓝牙 SDK 源码。