阿里云生活物联网平台
平台项目管理
生活物联网平台快速入门
产品与设备管理
Linkkit使用文档
基于HaaS 100搭建智能家居应用
一、生活物联网平台配置
平台端的配置参考:AliOS Things学习笔记(4)——ESP8266对接天猫精灵上篇(平台端)
模组选择未认证
二、修改应用源码
示例应用源码位置:application/example/linkkit_demo
1、修改四元组
application/example/linkit_demo/linkkit_example_solo.c
// for demo only
#define PRODUCT_KEY "a1FxISeKbq9"
#define PRODUCT_SECRET "ThNbP5iNUQ1lQe2Q"
#define DEVICE_NAME "alen-activate-test"
#define DEVICE_SECRET "jcumDL5AJRgU7zRNcCcnHRiQmtii0vDn"
PRODUCT_SECRET
、PRODUCT_KEY
、DEVICE_NAME
、DEVICE_SECRET
在设备调试界面:
2、增加LED控制代码
要想实现控制灯的开关,还需要根据下发的属性设置控灯引脚的状态。
application/example/linkkit_demo/linkkit_example_solo.c
,修改user_property_set_event_handler()
函数:
//添加头文件定义
#include "led.h"
static int user_property_set_event_handler(const int devid, const char *request, const int request_len)
{
// int res = 0;
// EXAMPLE_TRACE("Property Set Received, Request: %s", request);
// res = IOT_Linkkit_Report(EXAMPLE_MASTER_DEVID, ITM_MSG_POST_PROPERTY,
// (unsigned char *)request, request_len);
// EXAMPLE_TRACE("Post Property Message ID: %d", res);
//PJW--添加代码--------------------------------------------------------------------------------------
cJSON *root = NULL, *LightSwitch_Value = NULL;
root = cJSON_Parse(request);
LightSwitch_Value = cJSON_GetObjectItem(root, "powerstate"); //开关属性
if (LightSwitch_Value != NULL)
{
if(LightSwitch_Value->valueint)
{
printf("\r\n Turn on power \r\n");
led_switch(1, LED_ON);
}
else
{
printf("\r\n Turn off power \r\n");
led_switch(1, LED_OFF);
}
}
cJSON_Delete(root);
return 0;
}
三、编译与烧录:
详细信息参考:HaaS100学习笔记(2)——Linux编译环境搭建、烧录及快速体验
# 进入`AliOS-Things`顶层目录
cd $AOS_SDK_PATH
# 配置
# 初次使用会显示"kconfig tools missing",并自动下载
aos make linkkit_demo@haas100 -c config
# 编译
# 初次编译如果没有 gcc-arm-none-eabi 编译链工具,会自动下载
aos make
# 烧录
aos upload linkkit_demo@haas100
四、配网:
1、注意先把WIFI天线(贴了2.4G标签)接好,不然可能会连接网络不成功。
2、步骤:
- 在串口终端回车显示
#
- 输入
netmgr -t wifi -a 1
打开连网成功后会自动保存AP信息的功能。 - 输入
netmgr -t wifi -c {ssid} {password}
连接名为 {ssid} 的路由器AP。示例:netmgr -t wifi -c CMCC 12345678
- 连网成功后,固件会自动保存当前的AP信息。
- 重启后,固件会自动会连上次连接成功并保存的AP。
LOG:
# netmgr -t wifi -a 1
[Jan 01 00:00:25.375]<I>WIFI_SERVICE wifi_service_auto_reconnect:2343 enable=1
[Jan 01 00:00:25.376]<I>WIFI_SERVICE reconnect_task_handle:475 used_ap=0
components/fs/littlefs/littlefs_vfs.c:679:error: lfs_vfs_open /data/temp/temp.conf failed, ret - -2
[Jan 01 00:00:25.377]<E>WIFI_SERVICE get_wifi_config:937 open /data/temp/temp.conf failed:No such file or directory
components/fs/littlefs/littlefs_vfs.c:679:error: lfs_vfs_open /data/wifi.conf failed, ret - -2
[Jan 01 00:00:25.378]<E>WIFI_SERVICE get_wifi_config:937 open /data/wifi.conf failed:No such file or directory
[Jan 01 00:00:25.378]<E>WIFI_SERVICE reconnect_task_handle:479 no config found
官方文档命令有错误,应该为netmgr -t wifi -a 1
3、连接成功:
有以下信息就是连接成功了,平台上可以看到设备已激活上线。
ssid=CMCC
ip_address=192.168.0.100
address=2c:16:bd:d0:c4: e
wpa_state=COMPLETED
[Jan 01 00:00:07.112]<I>HAL_TLS ok
[Jan 01 00:00:07.112]<I>HAL_TLS . Setting up the SSL/TLS structure...
[Jan 01 00:00:07.112]<I>HAL_TLS ok
[Jan 01 00:00:07.113]<I>HAL_TLS Performing the SSL/TLS handshake...
[Jan 01 00:00:07.302]<I>HAL_TLS ok
[Jan 01 00:00:07.302]<I>HAL_TLS . Verifying peer X.509 certificate..
[Jan 01 00:00:07.303]<I>HAL_TLS certificate verification result: 0x00
五、测试:
进入在线调试
测试设备:
扫描二维码下载云智能
APP,发现并绑定设备即可控制。
六、附录
WIFI配置相关命令
功能 | 命令 |
---|---|
初始化 | netmgr -t wifi -i |
设置自动重连 | netmgr -t wifi -a 1 |
打印当前网络环境下AP的信息 | netmgr -t wifi -s |
连网 | netmgr -t wifi -c SSID PASSWORD |
打印设备网络状态 | netmgr -t wifi -p |
读取网络配置文件的信息 | netmgr -t wifi -r |
写入网络配置文件 | netmgr -t wifi -w network={\nssid=“SSID”\npassword=“PASSWORD”\nchannel=“CHANNEL”\n}\n |
删除网络配置文件 | netmgr -t wifi -d |
[Jan 01 00:05:48.274]<I>WIFI_SERVICE Usage: netgmr -t wifi [options]
[Jan 01 00:05:48.275]<I>WIFI_SERVICE netmgr -t wifi [-h]
[Jan 01 00:05:48.275]<I>WIFI_SERVICE -i, Init wifi service
[Jan 01 00:05:48.275]<I>WIFI_SERVICE -a, Set auto reconnect wifi flag
[Jan 01 00:05:48.275]<I>WIFI_SERVICE -c, Connect wifi
[Jan 01 00:05:48.275]<I>WIFI_SERVICE -e, Disconnect wifi
[Jan 01 00:05:48.275]<I>WIFI_SERVICE -g, Get mac address
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -s, Show scan result
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -p, Print wifi status
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -r, Read wifi config
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -w, Write wifi config
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -d, Delete wifi config
[Jan 01 00:05:48.276]<I>WIFI_SERVICE -h, Show netmgr wifi help commands
[Jan 01 00:05:48.276]<I>WIFI_SERVICE Example:
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -i
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -a 1
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -c bssid password
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -s
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -p
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -r
[Jan 01 00:05:48.277]<I>WIFI_SERVICE netmgr -t wifi -w network={
\nssid="apple"\npassword="aos123456"\nchannel="1"\n}\n
[Jan 01 00:05:48.278]<I>WIFI_SERVICE netmgr -t wifi -d
WIFI配置服务命令表
netmgr/Wi-Fi service | 命令行 | 说明 |
---|---|---|
wifi_service_init | netmgr -t wifi -i | 初始化 |
void wifi_service_deinit | / | 反初始化 |
wifi_service_auto_reconnect | netmgr -t wifi -a 0/1 | 设置是否自动重连 |
wifi_service_on wifi_service_off |
/ | |
wifi_service_set_wifi_msg_cb | / | |
wifi_service_wifi_connect | netmgr -t wifi -c [ssid] [password] | 使用ssid password连网 |
wifi_service_save_config | netmgr -t wifi -w wifi_config | 写Wifi配置文件 |
netmgr -t wifi -r | 读Wifi配置文件 | |
netmgr -t wifi -d | ||
wifi_service_disconnect | netmgr -t wifi -e | 断开连接 |
wifi_service_get_mac | / | |
wifi_service_get_rssi | / | |
wifi_service_get_ip_address | / | |
netmgr -t wifi -p | 打印当前网络状态 | |
netmgr -t wifi -s | 打印当前网络上的AP的信息 |
配网前输出LOG:
CHIP_ID=haas1000
KERNEL=
OTA_CODE_OFFSET=0
CRASH_DUMP_SIZE=0
AUD_SEC_SIZE=0
USER_SEC_SIZE=0x1000
FACT_SEC_SIZE=0x1000
NV_REC_DEV_VER=2
FLASH_BASE=0x28000000
FLASH_SIZE=0x1000000
CRC32_OF_IMAGE=0x00000000
BUILD_DATE=Sep 18 2020 23:45:39
REV_INFO=52d1afa:ota_boot1
623 | sys freq calc: 192000000
623 | FLASH_ID: 85-60-18
623 | security.reg:0x0, security.se
[00:20:29.628]收←◆
CHIP=haas1000
KERNEL=
OTA_CODE_OFFSET=0x12000
CRASH_DUMP_SIZE=0
AUD_SEC_SIZE=0
USER_SEC_SIZE=0x1000
FACT_SEC_SIZE=0x1000
NV_REC_DEV_VER=2
FLASH_BASE=0x28000000
FLASH_SIZE=0x1000000
CRC32_OF_IMAGE=0x00000000
BUILD_DATE=Sep 19 2020 00:23:18
REV_INFO=1656a586-dirty:ota_boot2a
715 | sys freq calc: 320000000
715 | FLASH_ID: 85-60-18
716 | security.reg:0x0, security.security_en:0
716 | reg_base: 0
716 | show zone_0 boot info:
716 | crc32:0x345ba620
716 | info_len:0x2c
716 | odm_type:0x0
716 | reserved:0x0
716 | linkA_used_flag:0x0
716 | linkB_used_flag:0x1
716 | update_link:0x1
716 | crash_reboot_count:0x0
716 | secureERR_reboot_count:0x0
716 | reboot_count_max:0x5
Press key 'w' to 2ndboot cli menu in 100ms.
[00:20:29.723]收←◆126: ota crc cal:0x6514 param:0xffff
24: ota upg_flag:0xffffcount:0 crc;0xffff
41: No OTA upgrade.
---> Remap boot2, b codeoffset:0x2a000offset:0x590000 len:0x578000
[00:20:30.072]收←◆
CHIP=haas1000
KERNEL=RHINO
CRASH_DUMP_SIZE=0
AUD_SEC_SIZE=0
USER_SEC_SIZE=0x1000
FACT_SEC_SIZE=0x1000
NV_REC_DEV_VER=2
FLASH_BASE=0x28000000
FLASH_SIZE=0x1000000
CRC32_OF_IMAGE=0x00000000
BUILD_DATE=Feb 27 2021 23:20:15
REV_INFO=x
1163/main | FLASH_ID: 85-60-18
1163/main | pmu_dcdc_dig_comp:3, pmu_dcdc_ana_comp:1
[00:20:30.111]收←◆ 1173/main | Dc calib L OK: 0x4005
1174/main | Dc calib R OK: 0x8010
1174/main | ANA: DC CALIB L=5 R=16
1174/main | board_init platform_init_step0 done
1174/main | app_init 1460 boot_type=3, need_check_key=0
1174/main | please check all sections sizes and heads is correct ........
1174/main | __coredump_section_start: 0x28ffa000 length: 0x0
1174/main | __ota_upgrade_log_start: 0x28ffa000 length: 0x0
1174/main | __log_dump_start: 0x28ffa000 length: 0x0
1174/main | __crash_dump_start: 0x28ffa000 length: 0x0
1174/main | __custom_parameter_start: 0x28ffa000 length: 0x1000
1174/main | __userdata_start: 0x28ffc000 length: 0x2000
1174/main | __aud_start: 0x28ffe000 length: 0x0
1174/main | __factory_start: 0x28fff000 length: 0x1000
1176/main | set mpu 0x20036400 len 1280
1176/main | factory open
2c 16 bd d0 c4 0e
1176/main | factory_section_open sucess btname:cust_bt
2c 16 bd d0 c4 0f
e8 9a c2 56 34 12
1176/main | cp server init success
1176/main | app_init:1728 pwron_case=9
1201/main | btdrv_config_init
1202/main | btdrv_SendData
01 81 fc 08 bf ee cd fa db bd 7b 87
1204/53E | tx
1204/55E | btdrv_rx len:7
04 0e 04 05 81 fc 00
1205/main | btdrv_SendData
01 86 fc 68 00 01 01 00 01 c8 00 20 03 40 06 3a 00 01 01 ff 04 17 11 00 00 01 04 01 04 00 01 00 00 00 00 08 02 50 78 01 01 3a 5e 09 03 00 21 00 01 00 00 3f 2b 00 07 00 20 03 05 00 0c 01 00 32 00 48 00 06 01 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00\0 1208/53E | tx
1208/55E | btdrv_rx len:7
04 0e 04 05 86 fc 00
1209/main | btdrv_SendData
01 ae fc 11 00 01 32 00 00 12 01 00 08 00 0a 98 14 00 01 01 03
1217/53E | tx
1217/55E | btdrv_rx len:7
04 0e 04 05 ae fc 00
1218/main | btdrv_SendData
01 77 fc 08 01 00 c8 00 32 00 00 00
1220/53E | tx
1221/55E | btdrv_rx len:7
04 0e 04 05 77 fc 00
1221/main | btdrv_SendData
01 32 fc 06 0f c4 d0 bd 16 2c
1229/53E | tx
1229/55E | btdrv_rx len:7
04 0e 04 05 32 fc 00
1230/main | btdrv_SendData
01 72 fc 07 01 0f c4 d0 bd 16 2c
1237/53E | tx
1237/55E | btdrv_rx len:7
04 0e 04 05 72 fc 00
1238/main | btdrv_SendData
01 88 fc bd 01 00 01 b9 02 00 a6 ba 0f 02 0e 00 e8 03 00 ff ff 7f 7f 01 01 01 01 00 eb e5 e7 ee e8 ed f1 eb f3 f4 ee fa f7 f1 00 fa f4 7f fd f7 7f 00 fa 7f 7f fd 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 2c 00 b0 27 00 b0 21 00 b0 1c 00 b0\0 1241/53E | tx
1241/55E | btdrv_rx len:7
04 0e 04 05 88 fc 00
1242/main | btdrv_SendData
01 8f fc 04 01 01 00 00
1245/53E | tx
1245/55E | btdrv_rx len:7
04 0e 04 05 8f fc 00
1246/main | btdrv_SendData
01 74 fc 08 20 00 00 00 70 51 00 00
1249/53E | tx
1249/55E | btdrv_rx len:7
04 0e 04 05 74 fc 00
1250/main | btdrv_SendData
01 02 fc 0a 44 00 00 a0 20 04 ec 72 00 a0
1253/53E | tx
1253/55E | btdrv_rx len:7
04 0e 04 05 02 fc 00
1255/main | btdrv_SendData
01 02 fc 0a 50 00 00 a0 20 04 ec 72 00 a0
1261/53E | tx
1261/55E | btdrv_rx len:7
04 0e 04 05 02 fc 00
1264/main | btdrv_SendData
01 02 fc 0a 5c 00 00 a0 20 04 10 84 00 a0
1269/53E | tx
1269/55E | btdrv_rx len:7
04 0e 04 05 02 fc 00
1272/main | btdrv_SendData
01 02 fc 0a 60 00 00 a0 20 04 2
[00:20:30.221]收←◆0 84 00 a0
1273/53E | tx
1273/55E | btdrv_rx len:7
04 0e 04 05 02 fc 00
1286/main | CONFIG INIT END
[00:20:30.254]收←◆ 1345/main | PMU_EFUSE_PAGE_RESERVED_7 0x5658
1345/main | 0x15 read=300c
1345/main | 0x15 write=360c
1345/main | 0xc5 read=4bc
1345/main | 0xc5 write=49c
1345/main | RF INIT END
1346/main | btdrv_rf_init_ext xtal_fcap=0x77
1350/main | rfae_val0 value = 13ff, rfaf_val0 = 1fff
1352/main | rfae_val1 value = 13ff, rfaf_val1 = 1fff
1354/main | rfae_val2 value = 13ff, rfaf_val2 = 1fff
1356/main | rfae_val3 value = 13ff, rfaf_val3 = 1fff
1358/main | rfae_val4 value = 13ff, rfaf_val4 = 1fff
1360/main | rfae_val5 value = 13ff, rfaf_val5 = 1fff
1362/main | rfae_val6 value = 13ff, rfaf_val6 = 1fff
1364/main | rfae_val7 value = 13ff, rfaf_val7 = 1fff
1364/main | flt_reg[0]=3ff
1364/main | i2v_reg[0] = fff
1364/main | flt_reg[1]=3ff
1364/main | i2v_reg[1] = fff
1364/main | flt_reg[2]=3ff
1364/main | i2v_reg[2] = fff
1364/main | flt_reg[3]=3ff
1364/main | i2v_reg[3] = fff
1364/main | flt_reg[4]=3ff
1364/main | i2v_reg[4] = fff
1364/main | flt_reg[5]=3ff
1364/main | i2v_reg[5] = fff
1364/main | flt_reg[6]=3ff
1364/main | flt_reg[7]=3ff
1365/main | DC CAL END
1368/main | btdrv_rccal 0xb0 value:1840
1368/main | 0x8b val_tmp1=2a01
1368/main | 0x8d val_tmp2=a245
1368/main | 0xb0 0x200 < value < 0xff0 done
1368/main | 0x03:88001
1368/main | chk 0x03 val_tmp1=2201
1368/main | 0x05:9a45
1369/main | chk 0x05 val_tmp2=0
1369/main | RC CAL END
[00:20:30.320]收←◆ 1408/main | btdrv_hwagc_1400_dccal dc_cal_counter = 0, average value_after = 80
[00:20:30.355]收←◆ 1446/main | btdrv_hwagc_1400_dccal dc_cal_counter = 1, average value_after = 80
[00:20:30.393]收←◆ 1484/main | btdrv_hwagc_1400_dccal dc_cal_counter = 2, average value_after = 80
1484/main | HWAGC CAL END
1495/main | bt_iqimb_ini :
[00:20:30.435]收←◆ 1505/main | syspool_init: 0x200d6b68,0x83298
1505/main | [syspool_get_buff] size = 10240 , free size = 537240
1505/main | [med_heap_add_block] g_block_index = 0, begin_addr = 0x200d6b68, size = 10240
1505/main | multi_heap_register_impl start=0x200d6b68,size=10240
1505/main | malloc ini
1506/main | st:0x200d6b8c, st->M0data:0x200d6ba0, st->Table0:0x200d6fa4, st->Table1:0x200d77a8, st->Table2:0x200d7fac
1506/main | malloc ok
1506/main | Tblgen ini
1514/main | Tblgen ok
1528/main | dc cal done!!! dc_i = 2 ,dc_q = 0,Energy1 = 245
[00:20:30.465]收←◆ 1555/main | IQ phase correct addr = 0xd03100ac,phase_mis = 0 ,gain_mis = 12,Energy = 58
1556/main | use time: 964 ticks
1567/main | OVERRIDE END
1567/main | btdrv_SendData
01 02 fc 0a 08 ed 00 e0 20 04 80 00 00 c0
1570/53E | tx
1570/55E | btdrv_rx len:7
04 0e 04 05
[00:20:30.518]收←◆02 fc 00
1572/main | ADD TRANSQ ISR VECTOR
1572/main | app_status_indication_set 0
1572/main | power on case:0
1572/main | app_status_indication_set 1
1572/main | platform_init_step1 done, boot_type=3, ret=0
1572/main | platform_init_step1 enter temprature cali on signal
1572/main | board_init platform_init_step1 done
1576/main_task | sys freq calc : 320000000, wifi init 1
1576/main_task | [WIFI] change status:IDLE->IDLE
1577/main_task | detect_wifi_card. WSM driver ver 1.0
1577/main_task | Probe called, func = 0x2003d6b8
1577/main_task | wifi_transq_init
1577/main_task | cw1200_core_probe func->dev = 0x2003d6bc, self = 0x20054314, self->func = 0x2003d6b8
1577/main_task | Allocated hw_priv @ 0x2003c9a8
1577/main_task | nv_record_wifirec_find 70, type:bnd
1577/main_task | nv_record_wifirec_find 70, type:cny
1577/main_task | wifi record , wifi_ptr = 0x28fff800, tx_power=0x28fff81a
1578/main_task | get tx_power , type = 0x0
2200 1d00 2300 1e00 1900 1f00 1a00 1500 1b00
1578/main_task |
1578/main_task | get mac from factory: 2c:16:bd:d0:c4:0e
1578/main_task | band 2 country CN
1579/main_task | SDIO: enabling IRQ for function 0
1579/main_task | sdio_attach_irq ret = 0 handler=0xc0b1155
1579/main_task | wifi_init start ....
[00:20:30.559]收←◆ 1649/main_task | wifidrv_rf_init....
1649/main_task | wifi_get_tx_cfg_by_efuse: 0x5658
1650/main_task | !!!!efuse_cfg: 0x8
1650/main_task | rc_osc_calib........
1658/main_task | rc_osc_calib , 0x33 = 0x3551
1659/main_task | rc_osc_calib , 0x32 = 0x6213
1659/main_task | xtal_osc_amp_calib........delay 1 ms
1662/main_task | xtal_osc_amp_calib, done! 0x32= 0x61d3
1663/main_task | wifi_rf_switch_band_init
1663/main_task | wifi_init,band=0x2,mode=0x0
1663/main_task | wifi_init, metal_id:5
1663/main_task | wifi_init, patch:0xffffffff, patch_g:0xe509ffff, 0x800001c0
1663/main_task | wifi_init, rom_run_flag:0x0000001c, new_run_flag:0x70016000
1663/main_task | wifi_test patch! wifi_sysHook->system_init=0x60110001, patch_offset=12
1688/cw1200_bh | CW1200 WSM init done.
Input buffers: 29 x 1632 bytes
Hardware: 7.8192
1688/cw1200_bh | WSM firmware [WSC_A04.09.0082], ver: 409, build: 82, api: 1060, cap: 0x0003
[00:20:30.629]收←◆ 1705/main_task | FW init done ....
1705/main_task | dig_config....
1705/main_task | wifi_init_dual_band, reg_82=0x3ef
1705/main_task | wifi_init_dual_band, reg_15=0x7fff
1705/main_task | factory freq_cal wifi_data= 0x28fff800, flags =1
1705/main_task | factory xtal cali:0xfa77
1705/main_task | no rf freq cali, use default :0xfa77
1706/main_task | wifi_switch_freq, freq: 40
1706/main_task | wifi_rf_switch_band,old: 0, new: 0
[00:20:30.671]收←◆ 1761/main_task | dly_cap=0, delta_tmp=527775
[00:20:30.707]收←◆ 1797/main_task | dly_cap=1, delta_tmp=540602
[00:20:30.742]收←◆ 1832/main_task | dly_cap=2, delta_tmp=547923
[00:20:30.778]收←◆ 1868/main_task | dly_cap=3, delta_tmp=660557
[00:20:30.816]收←◆ 1903/main_task | dly_cap=4, delta_tmp=665276
[00:20:30.849]收←◆ 1939/main_task | dly_cap=5, delta_tmp=668495
[00:20:30.885]收←◆ 1974/main_task | dly_cap=6, delta_tmp=670077
[00:20:30.921]收←◆ 2010/main_task | dly_cap=7, delta_tmp=671848
[00:20:30.959]收←◆ 2045/main_task | dly_cap=8, delta_tmp=674074
[00:20:30.991]收←◆ 2081/main_task | dly_cap=9, delta_tmp=676213
[00:20:31.027]收←◆ 2116/main_task | dly_cap=a, delta_tmp=678330
[00:20:31.064]收←◆ 2152/main_task | dly_cap=b, delta_tmp=681030
[00:20:31.097]收←◆ 2187/main_task | dly_cap=c, delta_tmp=682269
[00:20:31.133]收←◆ 2223/main_task | dly_cap=d, delta_tmp=683096
[00:20:31.168]收←◆ 2258/main_task | dly_cap=e, delta_tmp=653054
[00:20:31.204]收←◆ 2294/main_task | dly_cap=f, delta_tmp=551074
[00:20:31.240]收←◆ 2329/main_task | dly_cap=0, delta_tmp=555741
2329/main_task | pll_dly_cap calib, pha_avg =641228 ,good dly from 0x3, to 0xe
2329/main_task | pll_dly_cap calib done, pll_dly_cap= 7, 0x28= 0x3627
2347/main_task | logen_cali........
2353/main_task | DC_cali........
2363/main_task | iq_cali...
2363/main_task | iq_cali_init: band = 0
[00:20:31.346]收←◆ 2436/main_task | dpd_cali...
[00:20:31.806]收←◆ 2896/main_task | dpd_cali_new, reg_15= 0x5acf
2896/main_task | wifi_switch_freq, freq: 20
2896/main_task | wifi_rf_switch_band,old: 0, new: 0
[00:20:31.845]收←◆ 2935/main_task | wifi_switch_freq, freq: 60
2935/main_task | wifi_rf_switch_band,old: 0, new: 0
[00:20:31.884]收←◆ 2974/main_task | wifi_switch_freq, freq: 40
2974/main_task | wifi_rf_switch_band,old: 0, new: 0
2975/main_task | dpd_cali_new, reg_82= 0x3ef
[00:20:31.919]收←◆ 2993/main_task | dpd_cali_new,done, rst= 0x0
2993/main_task | DC_calib_new...
2993/main_task | iq_cali_init: band = 0
[00:20:31.981]收←◆ 3070/main_task | config_dpd, ch=7
3081/main_task | iq_cali_new_ext ....
3081/main_task | iq_cali_init: band = 0
[00:20:32.060]收←◆ 3149/main_task | rx_soft_agc_calib........
3160/main_task | rx_soft_agc_calib done, 0xcd =175c
3173/main_task | wifi_switch_freq, freq: 280
3173/main_task | wifi_rf_switch_band,old: 0, new: 1
[00:20:32.130]收←◆ 3200/main_task | logen_cali_5G........
3200/main_task | logen_cali,0xD1= 0xfefc
3201/main_task | logen_cali,1 0x47= 0xfbf9
3201/main_task | tx_power_cfg_by_ch_5g, i = 0, freq: 5180
3201/main_task | pll_dly_cap_calib_5g_new, pll_dly_cap= 0xa,
3201/main_task | DC_cali_5G........
3220/main_task | config_dpd, ch=161
3220/main_task | wifi_switch_freq, freq: 360
3221/main_task | wifi_rf_switch_band,old: 1, new: 1
3221/main_task | set_pll_dly_cap_5g_by_freq, freq: 360, dly_cap: 10
3223/main_task | logen_cali_5G........
3223/main_task | logen_cali,0xD1= 0xfd7a
3224/main_task | logen_cali,1 0x47= 0xf5f5
3225/main_task | tx_power_cfg_by_ch_5g, i = 4, freq: 5260
3225/main_task | iq_cali_init: band = 1
3225/main_task | iq_cali_init: 5G
[00:20:32.206]收←◆ 3296/main_task | iq_cali_init: band = 1
3296/main_task | iq_cali_init: 5G
[00:20:32.267]收←◆ 3357/main_task | iq_cali_new_ext ....
3357/main_task | iq_cali_init: band = 1
3357/main_task | iq_cali_init: 5G
[00:20:32.298]收←◆ 3388/main_task | iq_cali (0),iq: 0x000b0010; dc: 0x000e0020
3388/main_task | wifi_switch_freq, freq: 640
3388/main_task | wifi_rf_switch_band,old: 1, new: 1
3388/main_task | set_pll_dly_cap_5g_by_freq, freq: 640, dly_cap: 6
3390/main_task | logen_cali_5G........
3391/main_task | logen_cali,0xD1= 0xf4e9
3392/main_task | logen_cali,1 0x47= 0xd3d3
3392/main_task | tx_power_cfg_by_ch_5g, i = 10, freq: 5540
3392/main_task | iq_cali_init: band = 1
3392/main_task | iq_cali_init: 5G
[00:20:32.351]收←◆ 3441/main_task | ----------------ab_cnt=6-----------------------------------
[00:20:32.407]收←◆ 3497/main_task | iq_cali_init: band = 1
3497/main_task | iq_cali_init: 5G
[00:20:32.525]收←◆ 3615/main_task | iq_cali_new_ext ....
3615/main_task | iq_cali_init: band = 1
3615/main_task | iq_cali_init: 5G
3646/main_task | iq_cali (1),iq: 0x000a000f; dc: 0x001d001f
[00:20:32.576]收←◆
3646/main_task | wifi_switch_freq, freq: 760
3647/main_task | wifi_rf_switch_band,old: 1, new: 1
3647/main_task | set_pll_dly_cap_5g_by_freq, freq: 760, dly_cap: 5
3649/main_task | logen_cali_5G........
3650/main_task | logen_cali,0xD1= 0xef5e
3650/main_task | logen_cali,1 0x47= 0xbdbd
3651/main_task | tx_power_cfg_by_ch_5g, i = 16, freq: 5660
3652/main_task | iq_cali_init: band = 1
3652/main_task | iq_cali_init: 5G
[00:20:32.633]收←◆ 3722/main_task | iq_cali_init: band = 1
3722/main_task | iq_cali_init: 5G
[00:20:32.682]收←◆ 3771/main_task | iq_cali_new_ext ....
3771/main_task | iq_cali_init: band = 1
3771/main_task | iq_cali_init: 5G
[00:20:32.746]收←◆ 3835/main_task | iq_cali (2),iq: 0x0006000e; dc: 0x0000001c
3835/main_task | wifi_switch_freq, freq: 885
3835/main_task | wifi_rf_switch_band,old: 1, new: 1
3835/main_task | set_pll_dly_cap_5g_by_freq, freq: 885, dly_cap: 2
3838/main_task | logen_cali_5G........
3839/main_task | logen_cali,0xD1= 0xe952
3839/main_task | logen_cali,1 0x47= 0xa5a5
3839/main_task | tx_power_cfg_by_ch_5g, i = 22, freq: 5785
3839/main_task | iq_cali_init: band = 1
3839/main_task | iq_cali_init: 5G
[00:20:32.800]收←◆ 3888/main_task | ----------------ab_cnt=5-----------------------------------
[00:20:32.855]收←◆ 3944/main_task | iq_cali_init: band = 1
3944/main_tas
[00:20:32.876]收←◆k | iq_cali_init: 5G
3987/main_task | iq_cali_new_ext ....
3987/main_task
[00:20:32.928]收←◆| iq_cali_init: band = 1
3987/main_task | iq_cali_init: 5G
4018/main_task | iq_cali (3),iq: 0x00060006; dc: 0x00280014
4019/main_task | VLSB = 0.001908 efuse2 = 554, efuse1 = 423, efuse2- efuse1 =131
4020/59E | hal_gpadc_adc2volt_calib efuse:423/554 LV=423, HV=554, Slope:1908 Intcpt:-7
4020/main_task | 2g power_type=0x0, factory data:
ba80 0002 67f3 e50c 162c d0bd 0ec4 fa77 0000 0000 0000 0000 0100 2200 1d00 2300 1e00 1900 1f00 1a00
4020/main_task | 5G cali_flag=0x0, pwr data:
ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff
4020/main_task | ########## config_tx_power, delta_gain = 256
4020/main_task | g_wfdrv.cali_tx_power: 0x346a53d4
4020/main_task | g_wfdrv.cali_tx_power_5g: (nil)
4021/main_task | config_rfpll_lpf_cal, power on reg[0x2a] = 0x1679,
4021/main_task | temp_last: 691
4021/main_task | evm_temp_last: 691
4021/main_task | iq_temp_last: 691
4021/main_task | pll_lpf_temp_last: 691
4021/main_task | ieee80211_if_add wlan0 with addr 2c:16:bd:d0:c4:0e
4021/main_task | cw1200_bss_info_changed=0x40000 hw_priv:0x2003c9a8 priv:0x2003d6f0
4022/main_task | [AP] Retry limits: 15 (long), 15 (short).
4022/main_task | cw1200_register_common done
4022/main_task | cw1200_start 2c:16:bd:d0:c4:0e.
4022/main_task | cw1200_start 0.
4022/main_task | !!! cw1200_add_interface: priv=0x2003d6f0 type 2 p2p 0 addr 0x2003fbc0M
4022/main_task | !!! cw1200_vif_setup: enabling priv
4023/main_task | cw1200_bss_info_changed=0xe hw_priv:0x2003c9a8 priv:0x2003d6f0
4023/main_task | BSS_CHANGED_ASSOC.
4023/main_task | [STA] Slot time :20 us.
4023/main_task | cw1200_bss_info_changed=0x4000 hw_priv:0x2003c9a8 priv:0x2003d6f0
4023
[00:20:32.970]收←◆/main_task | ignore IEEE80211_CONF_CHANGE_MONITOR (1) IEEE80211_CONF_CHANGE_IDLE (1)
4024/main_task | cw1200_bss_info_changed=0x2000 hw_priv:0x2003c9a8 priv:0x2003d6f0
4024/main_task | net_cfg80211_attach 178.
4024/main_task | ieee80211_if_add ap0 with addr 2c:16:bd:d0:c4:0f
4024/main_task | cw1200_bss_info_changed=0x40000 hw_priv:0x2003c9a8 priv:0x2003dfc8
4024/main_task | [AP] Retry limits: 15 (long), 15 (short).
4024/main_task | net_cfg80211_attach 178.
4025/main_task | ***addr:2c:16:bd:d0:c4:0e
4025/main_task | ***addr:2c:16:bd:d0:c4:0f
4025/main_task | wpa_driver_nl80211_capa 72.
4025/main_task | nv_record_wifirec_find 70, type:cf0
4025/main_task | nv_record_wifirec_find 70, type:cf1
4025/main_task | nv_record_wifirec_find 70, type:cf2
4025/main_task | nv_record_wifirec_find 70, type:cf3
4026/main_task | eapol_sm_step 920 0xc0dc8ef.
4026/main_task | EAPOL: SUPP_PAE entering state DISCONNECTED
4026/main_task | EAPOL: KEY_RX entering state NO_KEY_RECEIVE
4026/main_task | EAPOL: SUPP_BE entering state INITIALIZE
4026/main_task | eap_peer_sm_step 1485.
4026/main_task | EAP: EAP entering state DISABLED
4026/main_task | eap_peer_sm_step 1485.
4026/main_task | eap_peer_sm_step 1485.
4026/main_task | eapol_sm_step 920 0xc0dc8f7.
4026/main_task | eap_peer_sm_step 1485.
4026/main_task | set epta w:60000 hw:1 wc:90000 fbit:0 fw:0
4026/main_task | wsm_epta_cmd 60000 40000 1.
4027/wifi_even | wifi_event_thread start
4036/main_task | wifi init success!!
4036/main_task | aos_main_task_entry soc_peripheral_init done
components/fs/littlefs/littlefs_vfs.c:1283:warn: Mounting /data ...
components/fs/littlefs/littlefs_vfs.c:1400:warn: Registering /data ...
Welcome to AliOS Things
4039/main_task | aos_main_task_entry aos_components_init done
4039/main_task | mesh has been opened
[00:20:33.936]收←◆ 5025/timer_tas | eapol_port_timers_tick 172.
[00:20:34.000]收←◆[Jan 01 00:00:03.928]<I>WIFI_SERVICE wifi_service_init:1825 memset ap config
[Jan 01 00:00:03.929]<I>WIFI_SERVICE wifi_recvmsg_handle:190 task start
[Jan 01 00:00:03.929]<A>AOS start_netmgr
[00:20:39.008]收←◆[Jan 01 00:00:08.933]<E>MQTT handler is null
[Jan 01 00:00:08.933]<W>[und] CMP not ready