本地日志

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

应用代码开发调试过程中,通常需要结合打印日志定位问题原因。本文对涂鸦本地日志进行说明,便于快速理解 SDK 运行时产生的各种日志信息,同时提供涂鸦日志错误码查询表,可通过错误码在此文档快速实现搜索查询,定位问题原因。

日志设置

涂鸦通用 SDK 的日志等级有以下几种分类:

  • Notice
  • Warning
  • Err
  • Debug

您可以通过设置日志的等级来决定哪些日志信息输出,例如设置日志输出等级为TY_LOG_LEVEL_INFO,则ERRWARNNOTICEINFO相关信息会显示,DEBUGTRACE则不会显示。

VOID pre_device_init(VOID)
{
	.... //与日志无关代码,此处不做展示
	PR_DEBUG("%s",tuya_iot_get_sdk_info());
	PR_DEBUG("%s:%s",APP_BIN_NAME,DEV_SW_VERSION);
	PR_NOTICE("firmware compiled at %s %s",__DATE__,__TIME__);
	PR_NOTICE("system reset reason:[%s]",tuya_hal_system_get_rst_info());
	SetLogManageAttr(TY_LOG_LEVEL_DEBUG);                //打印等级设置
}

/* tuya sdk definition of log level */
typedef INT_T LOG_LEVEL;
#define TY_LOG_LEVEL_ERR       0  // 错误信息,程序正常运行不应发生的信息
#define TY_LOG_LEVEL_WARN      1  // 警告信息
#define TY_LOG_LEVEL_NOTICE    2  // 需要注意的信息
#define TY_LOG_LEVEL_INFO      3  // 通知信息
#define TY_LOG_LEVEL_DEBUG     4  // 程序运行调试信息,RELEASE版本中删除
#define TY_LOG_LEVEL_TRACE     5  // 程序运行路径信息,RELEASE版本中删除

日志说明

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

初始运行日志

上电后,芯片最先输出的日志,包括 bootloader 启动相关打印和 SDK 启动相关的信息,可根据这里的信息判断 SDK 是否正常启动

/*******. boot 相关信息 ************/
:BK7231N_1.0.1

REG:cpsr     spsr     r13      r14

SVC:000000D3          00401C1C 000033AC

IRQ:000000d2 00000010 00401e0c 9519b7d5 

FIR:000000d1 00000010 00401ffc 03f42817 

SYS:000000df          0040192c 00000158 

ST:00000000

J 0x10000

bk_misc_init_start_type 0 0
prvHeapInit-start addr:0x411800, size:124928
[Flash]id:0x1c7015
sctrl_sta_ps_init
cset:0 0 0 0
[
/******** 进入涂鸦 SDK 启动相关函数 ********/
[2021-06-21 17:04:09.461]# RECV ASCII>
01-01 18:12:15 TUYA Info][lr:0xa33d1] mqc app init ...
[01-01 18:12:15 TUYA Info][lr:0xac517] thread_create name:sys_timer,stackDepth:4096,totalstackDepth:4096,priority:5
[01-01 18:12:15 TUYA Info][lr:0xac517] thread_create name:cmmod,stackDepth:4096,totalstackDepth:8192,priority:4
[01-01 18:12:15 TUYA Debug][lr:0xa337f] mq_pro:5 cnt:1
[01-01 18:12:15 TUYA Debug][lr:0xa337f] mq_pro:31 cnt:2
[01-01 18:12:15 TUYA Debug][lr:0xac3a3] Thread:sys_timer Exec Start. Set to Running Stat
[01-01 18:12:15 TUYA De
.......

预初始化日志

设备应用初始化前的预先初始化日志,包括便于查看确认设备当前运行状态的日志等级设置、SDK版本信息与初始化完成状态、设备产测完成情况、设备用到的硬件初始化等日志信息。

/******** 日志打印初始化成功日志 ********/
[2021-06-21 17:04:09.470]# RECV ASCII>
bug][lr:0x9d0cd] read m:0 f:0 l:0
[01-01 18:12:15 TUYA Debug][lr:0xabe87] svc online log init success
[01-01 18:12:15 TUYA Info][lr:0xac517] thread_create name:wk_th-0,stackDepth:5120,totalstackDepth:13312,priority:3
[01-01 18:12:15 TUYA Err][lr:0xc2e7d] kvs_read fails gw_bi -1
[01-01 18:12:15 TUYA Debug][lr:0x95bef] gw base read finish:-18
[01-01 18:12:15 TUYA Debug][lr:0xa05c9] ty bt cmmod regist ok:1
[01-01 18:12:15 TUYA Debug][lr:0xa08c5] upd adv para, send conn_req beacon.
[PLATFORM DEBUG]!!!!!!

/******** SDK 初始化完成日志,打印 SDK 版本相关信息 ********/
[2021-06-21 17:04:09.486]# RECV ASCII>
!!!!tuya_os_adapt_bt_port_init
[01-01 18:12:15ble mac:50-8a-06-57-3b- -57-3b-60
[01-01 18:16ice][lr:0xa06b3] ty bt2:15 TUYA Notice][lr:0x sdk init finish
xvr_ra06b3] ty bt sdk init feg_init
h4tl_init-1 okinish
[01-01 18:12:15 T
 TUYA Debug][lr:0x583aUYA Debug][lr:0x583a7] 7] < TUYA IOT SDK V:2.3< TUYA IOT SDK V:2.3.1 .1 BS:40.00_PT:2.2_LAN:BS:40.00_PT:2.2_LAN:3.33.3_CAD:1.0.3_CD:1.0.0 _CAD:1.0.3_CD:1.0.0 >
>
< BUILD AT:2021_04_2< BUILD AT:2021_04_22_212_21_52_24 BY embed FOR_52_24 BY embed FOR ty_ ty

/******** 产测初始化完成日志,打印 SDK 版本相关信息 ********/
[2021-06-21 17:04:09.957]# RECV ASCII>
01-01 18:12:15 TUYA Notice][lr:0x9ae93] have actived over 15 min, not enter mf_init //已激活超过15分钟,不会再次进入产测
[01-01 18:12:15 TUYA Notice][lr:0x57e79] mf_init succ
[01-01 18:12:15 TUYA Debug][lr:0x58605] led init is sucess!!!!!!!!!!!!!!!!
[01-01 18:12:15 TUYA Info][lr:0xac517] thread_create name:key_handle,stackDepth:2048,totalstackDepth:15360,priority:5
[01-01 18:12:15 TUYA Debug][lr:0x586eb] relay init sucess!!!!!!!!!!!!!!!!
[01-01 18:12:15 TUYA Debug][lr:0x58605] led init is sucess!!!!!!!!!!!!!!!!

/******** 硬件初始化完成日志 ********/
[2021-06-21 17:04:09.990]# RECV ASCII>
at:0
[01-01 18:12:15 TUYA Debug][lr:0x58caf] power_on relay_power_stat:0,init relay_stat:0
[01-01 18:12:15 TUYA Notice][lr:0x58d71] tuya_hard_init is success
[01-01 18:12:15 TUYA Debug][lr:0x57e87] gwcm_mode 1
[01-01 18:12:15 TUYA Debug][lr:0x57e93] low_power select
[01-01 18:12:15 TUYA Debug][lr:0xac3a3] Thread:key_handle Exec Start. Set to Running Stat
[01-01 18:12:15 TUYA Notice][lr:0x57ea1] have actived over 15min, don't scan prod test ssid
[01-01 18:12:15 TUYA Debug][lr:0x57f57] no tuya_mdev_tes

初始化日志

设备应用初始化相关的日志,包含设备初始化完成状态的信息、设备本身的信息等。

/******** 设备初始化完成日志 ********/
[2021-06-21 17:04:10.005]# RECV ASCII>
t1!
[01-01 18:12:15 TUYA Debug][lr:0x57f5d] device_init in
[01-01 18:12:15 TUYA Debug][lr:0xa85fb] tuya svc upgrade init success!
[PLATFORM NOTICE]bk_rst:0 tuya_rst:0
[01-01 18:12:15 TUYA Notice][lr:0x99d97] Last reset reason: 0
[01-01 18:12:15 TUYA Debug][lr:0xaf4a3] init watchdog, interval: 60
[01-01 18:12:15 TUYA Debug][lr:0xaf4e1] watch_dog_interval:60, monitor_detect_interval:600
[01-01 18:12:15 TUYA Info][lr:0xac517] thread_create name:health_monitor,stackDepth:1536,totalstackDepth:16896,priori

/******** 设备信息读取成功,打印设备 PID 信息 ********/
[2021-06-21 17:04:10.052]# RECV ASCII>
UYA Notice][lr:0x9a1bb] gw_cntl.gw_if.abi:0 input:0
[01-01 18:12:15 TUYA Notice][lr:0x9a1c7] gw_cntl.gw_if.product_key:sohpsfzztabmjeqo, input:sohpsfzztabmjeqo
[01-01 18:12:15 TUYA Notice][lr:0x9a1d3] gw_cntl.gw_if.tp:0, input:0
[01-01 18:12:15 TUYA Debug][lr:0x969b5] gw_ai read success
[01-01 18:12:15 TUYA Debug][lr:0xade55] set_dns_region:6
[01-01 18:12:15 TUYA Debug][lr:0xada8b] cache dns [http://a.tuyacn.com/d.json]<->[122.51.123.217]

硬件操作日志

当硬件外设有动作时的日志状态信息,在硬件外设操作回调函数中添加,便于确认设备是否执行相关硬件动作和执行完成的情况,判断硬件外设是否正常运行。

/******** 硬件操作,打印相应硬件操作信息 ********/
[2021-06-21 17:04:16.634]# RECV ASCII>
[01-01 18:12:22 TUYA Notice][lr:0xaf7bb] get key interrupt
[01-01 18:12:22 TUYA Debug][lr:0xa2f39] can not enable, lowpower disabled

网络状态日志

网络状态变化的日志,便于确认当前设备处于的状态、是否处于非联网状态还是联网状态、是否成功连接网络、如果没有成功连接网络,不能成功连接网络的原因。

/******** 设备处于低功耗状态日志 ********/
[2021-06-21 17:04:11.067]# RECV ASCII>
[01-01 18:12:16 TUYA Debug][lr:0xb0771] wifi netstat changed to:0  -->> //设备处于低功耗状态
[01-01 18:12:16 TUYA Notice][lr:0x5836d] cur_wifi_stat:0
[01-01 18:12:16 TUYA Debug][lr:0x58747] led_time:0,led_io:2!
[01-01 18:12:16 TUYA Debug][lr:0x5876f] led on off!
[01-01 18:12:16 TUYA Debug][lr:0xaf153] pinname:9
[01-01 18:12:16 TUYA Debug][lr:0x5879d] led off!
[01-01 18:12:16 TUYA Debug][lr:0xb0789] wifi netstat changed to:0  <<--

/******** 设备进入到 Smartconfig 日志 ********/
[2021-06-21 17:04:24.332]# RECV ASCII>
to:1  -->>
[01-01 18:12:18 TUYA Notice][lr:0x5836d] cur_wifi_stat:1 //设备进入 Smartconfig配网状态
[01-01 18:12:18 TUYA Debug][lr:0x58747] led_time:250,led_io:2!
[01-01 18:12:18 TUYA Debug][lr:0xaf153] pinname:9
[01-01 18:12:18 TUYA Debug][lr:0x5879d] led flash!!
[01-01 18:12:18 TUYA Debug][lr:0xb0789] wifi netstat changed to:1  <<--
[01-01 18:12:18 TUYA Debug][lr:0xb84e7] smart cfg start type:65537
[01-01 18:12:18 TUYA Debug][lr:0xb713b] ----netcfgType:0x10001
[01-01 18:12:18 TUYA Debug][lr:0xb7907] ----register netcfgType:0x100

/******** 设备连接到路由器日志 ********/
[2021-06-21 17:04:39.358]# RECV ASCII>
[01-01 18:12:34 TUYA Debug][lr:0xb0771] wifi netstat changed to:5  -->> //设备连接到路由器
[01-01 18:12:34 TUYA Notice][lr:0x5836d] cur_wifi_stat:5
[01-01 18:12:34 TUYA Debug][lr:0x58747] led_time:0,led_io:2!
[01-01 18:12:34 TUYA Debug][lr:0x5876f] led on off!
[01-01 18:12:34 TUYA Debug][lr:0xaf153] pinname:9
[01-01 18:12:34 TUYA Debug][lr:0x5879d] led off!
[01-01 18:12:34 TUYA Debug][lr:0xb0789] wifi netstat changed to:5  <<--
found scan rst rssi -65 < -50
dis ht_support

/******** 设备连接到云端日志 ********/
[2021-06-21 17:04:40.363]# RECV ASCII>
01-01 18:12:34 TUYA Debug][lr:0xb45f3] Connect: h3.iot-dns.com Port: 443  --<< ,r:0
[01-01 18:12:34 TUYA Debug][lr:0xa4715] ----enable_cert:0,DEFAULT_LOAD_CERT:0
[01-01 18:12:34 TUYA Debug][lr:0xa47b1] TUYA_TLS Begin Connect h3.iot-dns.com:443  CustomNet:TRUE Enable_Cert:FALSE Default:FALSE 
[01-01 18:12:35 TUYA Debug][lr:0xa4859] socket fd is set. set to inner send/recv to handshake
[01-01 18:12:35 TUYA Debug][lr:0xb0771] wifi netstat changed to:6  -->> //设备连接到云端 
[01-01 18:12:35 TUYA Notice][lr:0x5836d] cur_wif

/******** MQTT连接成功日志 ********/
[2021-06-21 17:04:44.421]# RECV ASCII>
[06-21 17:04:42 TUYA Debug][lr:0xaaf03] mqtt subscribe success
[06-21 17:04:42 TUYA Debug][lr:0xa3171] mqtt connect success

/******** 设备注册到云端日志 ********/
[2021-06-21 17:04:44.580]# RECV ASCII>
[06-21 17:04:42 TUYA Debug][lr:0xb0771] wifi netstat changed to:7  -->> //设备注册到云端
[06-21 17:04:42 TUYA Notice][lr:0x5836d] cur_wifi_stat:7
[06-21 17:04:42 TUYA Debug][lr:0x58747] led_time:1,led_io:2!
[06-21 17:04:42 TUYA Debug][lr:0x5876f] led on off!
[06-21 17:04:42 TUYA Debug][lr:0xaf153] pinname:9
[06-21 17:04:42 TUYA Debug][lr:0x5879d] led on!
[06-21 17:04:42 TUYA Notice][lr:0xa0f15] ble get conn stat:3
[06-21 17:04:42 TUYA Notice][lr:0xa0f93] ble_sdk_send. cmd:0x8001 encrpyt:5
[06-21 17:04:42 TUYA Notice

设备上报日志

设备上报的数据信息,通常 App 或云端状态信息不对时,通过此处的日志,确认设备端上报的信息是否正常,如果设备上报正常则排查 App 或云端问题,如果此处上报信息不正常,则排查设备端问题。

/******** 设备上报状态成功日志 ********/
[2021-06-21 17:05:02.840]# RECV ASCII>":{"1":false}}
[06-21 17:05:02 TUYA Debug][lr:0x588df] upload all dp data sucess
[06-21 17:05:02 TUYA Debug][lr:0xb0fa5] g_lan_ctrl_enable:1
[06-21 17:05:02 TUYA Debug][lr:0xb17e9] Prepare To Send Lan:{"dps":{"1":false}}, msg_len:19, out_len:63
[06-21 17:05:02 TUYA Debug][lr:0xbad3d] msg_data:{"dps":{"1":false}}, mqtt async dp cb:0
[06-21 17:05:02 TUYA Debug][lr:0xba4f3] set short dp rate rule, dpID:1, curr_t:1624266302, rept_cnt:4.
[06-21 17:05:02 TUYA Debug][lr:0xba509] set long dp rate rule, dpID:1

设备接收数据日志

设备接收到的数据信息,通常设备执行状态不正常时,通过此处的日志,确认是否是设备端接收的信息不正常导致的,如果设备接收到的信息正常,则需要排查设备端问题,如果接到的信息不正常,则排查App 或云端问题。

/******** 设备接收到数据的日志 ********/
[2021-06-21 17:05:01.253]# RECV ASCII>
[06-21 17:05:00 TUYA Debug][lr:0xbad3d] msg_data:{"dps":{"1":false}}, mqtt async dp cb:0
[06-21 17:05:00 TUYA Debug][lr:0xba4f3] set short dp rate rule, dpID:1, curr_t:1624266300, rept_cnt:2.
[06-21 17:05:00 TUYA Debug][lr:0xba509] set long dp rate rule, dpID:1, curr_t:1624266300, rept_cnt:0.
[06-21 17:05:00 TUYA Debug][lr:0xba521] set all dp rate rule, dpID:1, curr_t:1624266300, rept_cnt:0.

错误码

错误码 原因 解决方案 参考文档
-4378 配网激活失败 此PID 没有绑定固件, 需要在IoT平台硬件开发处选择新增自定义固件 新增自定义固件