Dzbj_ESP32-S3_Key/设备运行日志.md
Rdzleo 75586b3744 ESP32-S3按键版电子吧唧功能完整实现
1、按键驱动重构:从GPIO中断改为iot_button组件,支持BOOT/KEY2的单击/双击/长按6种事件;
2、新增按键导航管理器(key_nav):9种上下文状态机,统一分发按键事件到对应界面业务逻辑;
3、BLE模块改造:广播默认关闭由按键触发,新增设备间图片传输(GATT Client),支持扫描配对→MTU协商→分包发送;
4、新增6个UI界面:配对(Peiwang)、更新(Update)、发送等待(ImageShar)、接收等待(ImageReception)、发送中(Sharing)、接收中(Receiving);
5、新增电池指示器组件(battery_ui):支持多界面真实电量显示,3秒渐隐效果;
6、Home界面重构:移除手势事件,改为airhub背景图+电池指示器;
7、Img界面重构:移除触摸事件,新增删除二次确认边框机制;
8、禁用ScreenSet/ScreenChar界面(保留文件),禁用触摸初始化(保留代码可恢复);
9、sleep_mgr简化:移除ScreenSet亮度UI依赖,按键唤醒由key_nav统一处理;
10、新增9张图片资源(airhub背景、配对、传输状态、电池图标等);

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:35:05 +08:00

427 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

以下日志时电子吧唧模式切换到AI对话模式的日志
I (5650) DZBJ_BAT: ADC原始值=2806, ADC电压=2347mV, 电池电压=4694mV, 电量=100%
I (8660) KEY_NAV: BOOT+KEY2组合键检测跳过KEY2长按业务
I (8680) KEY_NAV: BOOT+KEY2组合键检测跳过BOOT长按业务
I (9460) DZBJ_BTN: BOOT+KEY2组合键2秒触发模式切换
I (9460) DZBJ_BTN: 执行模式切换...
I (9460) DZBJ_BTN: 吧唧模式 → AI模式
I (9470) DeviceMode: 模式切换为 AI即将重启...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x40379ce1
--- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x56c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xb88
load:0x403cb700,len:0x2df4
entry 0x403c88f4
I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京
I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条
I (49) coexist: coex firmware version: 831ec70
I (49) coexist: coexist rom version e7ae62f
I (49) main_task: Started on CPU0
I (59) main_task: Calling app_main()
I (79) BackgroundTask: background_task started
I (79) BluetoothProvisioning: 蓝牙配网对象创建完成
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) Airhub1: Initializing I2C master bus for audio codec...
I (79) Airhub1: Scanning I2C bus for devices...
I (79) Airhub1: I2C设备在线: 0x18
I (79) Airhub1: I2C设备在线: 0x40
I (79) Airhub1: I2C scan completed. Found 2 devices
I (79) DZBJ: 开始初始化显示硬件...
I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (79) st77916: LCD panel create success, version: 1.0.1
W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence
I (329) LCD: LCD GRAM cleared (black filled)
I (329) DZBJ: LCD 硬件初始化完成
I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0)
I (329) LVGL: Starting LVGL task
I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single)
I (329) DZBJ: LVGL 初始化完成
I (449) Airhub1: 🤖 AI对话模式启动
I (449) Airhub1: 初始化按钮...
I (449) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms)
I (449) Airhub1: Boot button initialized on GPIO0
I (449) Airhub1: Volume up button initialized on GPIO-1
I (449) Airhub1: Volume down button initialized on GPIO-1
I (449) Airhub1: 故事按键已初始化GPIO引脚 =4
I (449) Airhub1: 所有按键已成功初始化!
I (449) Airhub1: IMU传感器未初始化跳过IoT注册
I (449) Airhub1: Initializing battery monitor...
I (449) Airhub1: ADC calibration initialized
I (449) Airhub1: 电池状态监控已初始化GPIO:3
I (449) Airhub1: 非生产测试模式且不在对话状态,姿态传感器业务已禁用以节约资源
I (449) PowerSaveTimer: Power save timer enabled
I (449) Airhub1: 🔋 PowerSaveTimer已启用20秒无活动将进入低功耗模式
I (449) Airhub1: 电容触摸板按钮已禁用 (ENABLE_TOUCH_PAD_BUTTONS=0)
I (449) Application: 打印设置设备状态日志: starting
I (449) Application: 正常启动流程,将执行开机播报和网络连接播报
I (449) Airhub1: Initializing audio codec (duplex)...
I (449) Airhub1: Creating BoxAudioCodec (ES8311+ES7210, without reference) ...
I (449) BoxAudioCodec: Duplex channels created
I (459) ES8311: Work in Slave mode
I (459) gpio: GPIO[48]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (459) ES7210: Work in Slave mode
I (469) ES7210: Enable ES7210_INPUT_MIC1
I (469) ES7210: Enable ES7210_INPUT_MIC2
I (479) BoxAudioCodec: BoxAudioDevice initialized (duplex)
I (479) Airhub1: Audio codec initialized successfully
I (479) Application: 检测到WiFi板卡将opus编码器复杂度设置为3
I (479) OpusResampler: Resampler configured with input sample rate 16000, output sample rate 8000, and channels 1
I (479) I2S_IF: channel mode 2 bits:16/16 channel:2 mask:1
I (479) I2S_IF: TDM Mode 0 bits:16/16 channel:2 sample_rate:16000 mask:1
I (479) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1
I (479) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1
I (479) ES7210: Bits 16
I (489) ES7210: Enable ES7210_INPUT_MIC1
I (489) ES7210: Enable ES7210_INPUT_MIC2
I (499) ES7210: Unmuted
I (499) Adev_Codec: Open codec device OK
I (499) BoxAudioCodec: Input opened: sr=16000 ch=1 mask=0x1 ref=0
I (499) AudioCodec: Set input enable to true
I (499) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1
I (499) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1
I (519) Adev_Codec: Open codec device OK
I (519) AudioCodec: Set output enable to true
I (519) AudioCodec: Audio codec started
I (619) Airhub1: ADC: 2348, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V
I (619) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (719) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V
I (719) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (719) Airhub1: BOOT button clicked
I (719) Airhub1: 🔄 BOOT按键触发设备状态=1WiFi连接状态=未连接
I (719) Airhub1: 🔄 开始重置WiFi配置清除已保存的WiFi凭据
I (719) Airhub1: ✅ 已清除所有WiFi凭据设备将进入配网模式
I (719) WifiBoard: 🔄 重置WiFi配置设备将重启进入配网模式
I (819) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V
I (819) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (939) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V
I (939) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (1039) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V
I (1039) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (1139) Airhub1: ADC: 2346, 原始电压: 2.35V, 计算电池电压: 10.18V, 电量: 100%, 满电电压: 4.20V
I (1139) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2
I (1229) WifiBoard: 🔄 正在重启设备...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x40379ce1
--- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x56c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xb88
load:0x403cb700,len:0x2df4
entry 0x403c88f4
I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京
I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条
I (49) coexist: coex firmware version: 831ec70
I (49) coexist: coexist rom version e7ae62f
I (49) main_task: Started on CPU0
I (59) main_task: Calling app_main()
I (79) BackgroundTask: background_task started
I (79) BluetoothProvisioning: 蓝牙配网对象创建完成
I (79) WifiBoard: force_ap is set to 1, will clear in StartNetwork()
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) Airhub1: Initializing I2C master bus for audio codec...
I (79) Airhub1: Scanning I2C bus for devices...
I (79) Airhub1: I2C设备在线: 0x18
I (79) Airhub1: I2C设备在线: 0x40
I (79) Airhub1: I2C scan completed. Found 2 devices
I (79) DZBJ: 开始初始化显示硬件...
I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (79) st77916: LCD panel create success, version: 1.0.1
W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence
I (329) LCD: LCD GRAM cleared (black filled)
I (329) DZBJ: LCD 硬件初始化完成
I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0)
I (329) LVGL: Starting LVGL task
I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single)
I (329) DZBJ: LVGL 初始化完成
I (449) Airhub1: 🤖 AI对话模式启动
I (449) Airhub1: 初始化按钮...
I (449) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms)
I (449) Airhub1: Boot button initialized on GPIO0
I (449) Airhub1: Volume up button initialized on GPIO-1
I (449) Airhub1: Volume down button initialized on GPIO-1
I (449) Airhub1: 故事按键已初始化GPIO引脚 =4
I (449) Airhub1: 所有按键已成功初始化!
I (449) Airhub1: IMU传感器未初始化跳过IoT注册
I (449) Airhub1: 配网模式跳过电池检测、IMU传感器、低功耗管理
I (449) Airhub1: 电容触摸板按钮已禁用 (ENABLE_TOUCH_PAD_BUTTONS=0)
I (449) Application: 打印设置设备状态日志: starting
I (449) Application: 正常启动流程,将执行开机播报和网络连接播报
I (449) Airhub1: Initializing audio codec (output only)...
I (449) Airhub1: Creating BoxAudioCodec (ES8311, without reference) ...
I (449) BoxAudioCodec: TX-only channel created (provisioning mode)
I (449) ES8311: Work in Slave mode
I (459) gpio: GPIO[48]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (459) BoxAudioCodec: BoxAudioDevice initialized (output only)
I (459) Airhub1: Audio codec initialized successfully
I (459) Application: 配网模式:跳过 Opus 编码器、输入重采样器、麦克风输入
I (459) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1
I (459) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1
I (469) Adev_Codec: Open codec device OK
I (479) AudioCodec: Set output enable to true
I (479) AudioCodec: Audio codec started (output only, provisioning mode)
I (479) AudioCodec: 将运行时输出音量设置为80
I (479) Application: 设备启动完成,播放开机播报语音
I (489) WifiBoard: force_ap cleared to 0
I (489) WifiBoard: 🔵 进入配网模式 - BLE蓝牙配网
I (489) WifiBoard: 🔵 进入配网模式 - 使用BLE蓝牙配网
I (489) WifiBoard: 🔵 正在启动BLE蓝牙配网服务...
I (489) Application: 🎵 测试模式:音频开始播放,等待播放完成
I (489) Application: ✅ 测试模式:音频播放完成
I (489) BluetoothProvisioning: 🔄 配网状态变化: IDLE -> INITIALIZING
I (489) BluetoothProvisioning: 初始化WiFi...
I (489) pp: pp rom version: e7ae62f
I (489) net80211: net80211 rom version: e7ae62f
I (499) wifi:wifi driver task: 3fcd90ac, prio:23, stack:6656, core=0
I (499) wifi:wifi firmware version: 3263cda
I (499) wifi:wifi certification version: v7.0
I (499) wifi:config NVS flash: enabled
I (499) wifi:config nano formatting: disabled
I (499) wifi:Init data frame dynamic rx buffer num: 32
I (499) wifi:Init dynamic rx mgmt buffer num: 5
I (499) wifi:Init management short buffer num: 32
I (499) wifi:Init static tx buffer num: 8
I (499) wifi:Init tx cache buffer num: 32
I (499) wifi:Init static tx FG buffer num: 2
I (499) wifi:Init static rx buffer size: 1600
I (499) wifi:Init static rx buffer num: 10
I (499) wifi:Init dynamic rx buffer num: 32
I (509) wifi_init: rx ba win: 16
I (509) wifi_init: accept mbox: 6
I (509) wifi_init: tcpip mbox: 32
I (509) wifi_init: udp mbox: 6
I (509) wifi_init: tcp mbox: 6
I (509) wifi_init: tcp tx win: 5760
I (509) wifi_init: tcp rx win: 5760
I (509) wifi_init: tcp mss: 1440
I (509) wifi_init: WiFi/LWIP prefer SPIRAM
I (509) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10
I (539) wifi:mode : sta (d0:cf:13:03:bb:f0)
I (539) wifi:enable tsf
I (539) BluetoothProvisioning: WiFi初始化完成
I (539) BluetoothProvisioning: 初始化蓝牙控制器...
I (539) BLE_INIT: BT controller compile version [2edb0b0]
I (539) BLE_INIT: Using main XTAL as clock source
I (539) BLE_INIT: Feature Config, ADV:1, BLE_50:1, DTM:1, SCAN:1, CCA:0, SMP:1, CONNECT:1
I (539) BLE_INIT: Bluetooth MAC: d0:cf:13:03:bb:f2
I (549) BluetoothProvisioning: 初始化Bluedroid协议栈...
I (559) BluetoothProvisioning: 注册 BLE GAP/GATTS 回调...
I (559) BluetoothProvisioning: ✅ GATTS App 注册成功, gatts_if=3
I (559) BluetoothProvisioning: Service 创建成功, handle=40
I (559) BluetoothProvisioning: WRITE 特征添加成功, handle=42
I (559) BluetoothProvisioning: NOTIFY 特征添加成功, handle=44
I (559) BluetoothProvisioning: CCCD 添加成功, handle=45
I (559) BluetoothProvisioning: ✅ GATT Service 启动成功
I (559) BluetoothProvisioning: 注册WiFi事件处理器...
I (559) BluetoothProvisioning: 🔄 配网状态变化: INITIALIZING -> IDLE
I (559) BluetoothProvisioning: 蓝牙配网初始化完成 (GATT Server 模式)
I (559) BluetoothProvisioning: 蓝牙MAC地址: d0:cf:13:03:bb:f2
I (559) WifiBoard: 🔍 BLE Initialize返回结果: true
I (559) BluetoothProvisioning: 🔵 开始启动蓝牙配网服务 (GATT Server)...
I (559) BluetoothProvisioning: 🔍 检查初始化状态: initialized_ = true
I (559) BluetoothProvisioning: MAC地址发送状态已重置
I (559) BluetoothProvisioning: 🔄 MAC地址发送状态已重置
I (559) BluetoothProvisioning: 🧹 清除之前的WiFi凭据...
I (559) BluetoothProvisioning: ✅ WiFi凭据清除完成准备接收新的配网信息
I (559) BluetoothProvisioning: 📡 蓝牙设备名称: Airhub_d0:cf:13:03:bb:f2
I (559) BluetoothProvisioning: 📡 广播数据构建完成,长度: 29 字节
I (559) BluetoothProvisioning: 📡 扫描响应数据构建完成,长度: 7 字节
I (559) BluetoothProvisioning: 📡 广播数据设置完成,配置扫描响应数据
I (559) BluetoothProvisioning: 📡 扫描响应数据设置完成,启动广播
I (569) BluetoothProvisioning: ✅ 广播启动成功
I (569) BluetoothProvisioning: 🔄 配网状态变化: IDLE -> ADVERTISING
I (569) BluetoothProvisioning: 蓝牙配网广播已启动,等待客户端连接...
I (569) WifiBoard: ✅ BLE蓝牙配网启动成功
I (569) WifiBoard: 📱 请使用支持BLE的手机APP连接设备进行配网
W (569) Application: Alert BLE配网模式: 请使用手机APP搜索Airhub_开头的蓝牙设备 [happy]
I (579) AI_CHAT_UI: GIF表情切换: happy
I (579) WifiBoard: Starting BLE provisioning monitor...
I (579) WifiBoard: 🔍 BLE配网启动结果: 成功
I (579) WifiBoard: ✅ BLE配网启动成功等待手机连接
I (579) Application: 配网模式:跳过协议初始化、位置检测等网络业务
I (579) Application: 打印设置设备状态日志: idle
I (599) AI_CHAT_UI: GIF表情切换: neutral
I (599) main_task: Returned from app_main()
I (599) Application: 开始播放下行音频: 样本=960 采样率=16000
I (13089) AudioCodec: Set output enable to false
I (17689) BluetoothProvisioning: 📱 客户端已连接, conn_id=0, addr=6d:db:7f:0c:40:a7
I (17689) BluetoothProvisioning: 🔍 [DEBUG] 设置client_connected_为true
I (17689) BluetoothProvisioning: MAC地址发送状态已重置
I (17689) BluetoothProvisioning: 🔄 MAC地址发送状态已重置
I (17689) BluetoothProvisioning: 🔄 配网状态变化: ADVERTISING -> CONNECTED
I (17689) WifiBoard: BLE client connected
I (17689) BluetoothProvisioning: 🔍 [DEBUG] BLE连接处理完成client_connected_=true
I (17689) BluetoothProvisioning: 广播已停止
I (18089) BluetoothProvisioning: 连接参数更新: status=0, conn_int=24, latency=0, timeout=400
I (18659) BluetoothProvisioning: MTU 更新: 512
I (18749) BluetoothProvisioning: 连接参数更新: status=0, conn_int=6, latency=0, timeout=500
I (18869) BluetoothProvisioning: 连接参数更新: status=0, conn_int=24, latency=0, timeout=400
I (19229) BluetoothProvisioning: NOTIFY 已启用
I (19379) BluetoothProvisioning: 📱 手机请求获取WiFi列表开始扫描
以下日志时AI对话模式切换到电子吧唧模式的日志
I (2858) wifi:Init static tx FG buffer num: 2
I (2858) wifi:Init static rx buffer size: 1600
I (2858) wifi:Init static rx buffer num: 10
I (2858) wifi:Init dynamic rx buffer num: 32
I (2858) wifi_init: rx ba win: 16
I (2858) wifi_init: accept mbox: 6
I (2858) wifi_init: tcpip mbox: 32
I (2858) wifi_init: udp mbox: 6
I (2858) wifi_init: tcp mbox: 6
I (2858) wifi_init: tcp tx win: 5760
I (2858) wifi_init: tcp rx win: 5760
I (2858) wifi_init: tcp mss: 1440
I (2858) wifi_init: WiFi/LWIP prefer SPIRAM
I (2858) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10
I (2888) wifi:mode : sta (d0:cf:13:03:bb:f0)
I (2888) wifi:enable tsf
I (2898) Application: 开始播放下行音频: 样本=960 采样率=16000
I (5308) wifi: 发现可连接 AP: airhub, BSSID: 70:2a:d7:85:bc:eb, RSSI: -38, Channel: 1, Authmode: 3
I (5308) WifiBoard: Starting WiFi connection, playing network connection sound
W (5308) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2
I (5398) wifi:new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1, snd_ch_cfg:0x0
I (5398) wifi:state: init -> auth (0xb0)
I (5428) wifi:state: auth -> assoc (0x0)
I (5458) wifi:state: assoc -> run (0x10)
I (5518) wifi:connected with airhub, aid = 4, channel 1, BW20, bssid = 70:2a:d7:85:bc:eb
I (5518) wifi:security: WPA2-PSK, phy: bgn, rssi: -42
I (5518) wifi:pm start, type: 1
I (5518) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us
I (5518) wifi:set rx beacon pti, rx_bcn_pti: 14, bcn_timeout: 25000, mt_pti: 14, mt_time: 10000
I (5538) wifi:<ba-add>idx:0 (ifx:0, 70:2a:d7:85:bc:eb), tid:0, ssn:0, winSize:64
I (5578) wifi:AP's beacon interval = 102400 us, DTIM period = 1
I (6068) DZBJ_BTN: BOOT+KEY2组合键2秒触发模式切换
I (6068) DZBJ_BTN: 执行模式切换...
I (6068) DZBJ_BTN: AI模式 → 吧唧模式
I (6078) DeviceMode: 模式切换为 吧唧,即将重启...
I (6548) Airhub1: 📤 设备状态上报已启用每30秒上报一次
I (6578) wifi:state: run -> init (0x0)
I (6578) wifi:pm stop, total sleep time: 562763 us / 1055555 us
I (6578) wifi:<ba-del>idx:0, tid:0
I (6578) wifi:new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1, snd_ch_cfg:0x0
I (6578) wifi: Reconnecting airhub (attempt 1 / 5)
I (6638) wifi:flush txq
I (6638) wifi:stop sw txq
I (6638) wifi:lmac stop hw txq
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x2b (SPI_FAST_FLASH_BOOT)
Saved PC:0x40379ce1
--- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x56c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xb88
load:0x403cb700,len:0x2df4
entry 0x403c88f4
I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京
I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条
I (49) coexist: coex firmware version: 831ec70
I (49) coexist: coexist rom version e7ae62f
I (49) main_task: Started on CPU0
I (59) main_task: Calling app_main()
I (79) Application: 🎴 吧唧模式:跳过 WiFi/协议/音频初始化
I (79) Application: 打印设置设备状态日志: idle
I (79) BluetoothProvisioning: 蓝牙配网对象创建完成
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) button: IoT Button Version: 3.5.0
I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (79) Airhub1: Initializing I2C master bus for audio codec...
I (79) Airhub1: Scanning I2C bus for devices...
I (79) Airhub1: I2C设备在线: 0x18
I (79) Airhub1: I2C设备在线: 0x40
I (79) Airhub1: I2C scan completed. Found 2 devices
I (79) DZBJ: 开始初始化显示硬件...
I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (79) st77916: LCD panel create success, version: 1.0.1
W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence
I (329) LCD: LCD GRAM cleared (black filled)
I (329) DZBJ: LCD 硬件初始化完成
I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0)
I (329) LVGL: Starting LVGL task
I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single)
I (329) DZBJ: LVGL 初始化完成
I (339) DZBJ: UI 初始化完成
I (439) DZBJ: 背光已点亮dzbj 显示模块初始化完成
I (439) Airhub1: 🎴 电子吧唧模式启动
I (439) Airhub1: 初始化吧唧模式按钮...
I (439) KEY_NAV: 导航上下文切换: 0
I (439) KEY_NAV: 按键导航初始化完成
I (439) DZBJ_BTN: BOOT 1200ms长按事件注册成功
I (439) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms)
I (439) Airhub1: Boot button initialized on GPIO0
I (439) Airhub1: 吧唧模式按钮初始化完成
I (439) Airhub1: 初始化电子吧唧模式外设...
I (539) Airhub1: 吧唧模式 BOOT 单击
I (539) IMG_LIST: 开始扫描SPIFFS中的图片文件
E (549) IMG_LIST: 无法打开SPIFFS目录
E (549) IMG_LIST: 图片列表未初始化或为空
I (549) ScreenImg: SPIFFS无可用图片显示默认UI图片
I (549) KEY_NAV: 导航上下文切换: 1
I (549) FATFS: SPIFFS: Total size: 2763761, Used: 78061
I (599) IMG_LIST: 开始扫描SPIFFS中的图片文件
I (599) IMG_LIST: 发现图片文件: 03.jpg
I (599) IMG_LIST: 发现图片文件: 02.jpg
I (599) IMG_LIST: 发现图片文件: default.jpg
I (649) IMG_LIST: 图片列表初始化完成,共发现 3 张图片
I (649) IMG_LIST: 设置默认图片索引: 2
I (649) button: IoT Button Version: 3.5.0
I (649) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (649) DZBJ_BTN: 按键初始化完成 (KEY2=GPIO4, 长按1200ms, 双击300ms)
I (649) DZBJ_BAT: ADC校准初始化成功
I (649) DZBJ_BAT: 电池ADC初始化完成 (GPIO3, ADC1_CH2, 分压比=2)
I (649) DZBJ_BAT: ADC原始值=2797, ADC电压=2339mV, 电池电压=4678mV, 电量=100%
I (649) DZBJ_BAT: 电池监控任务已启动更新间隔5000ms
I (649) BLE_INIT: BT controller compile version [2edb0b0]
I (649) BLE_INIT: Using main XTAL as clock source
I (659) BLE_INIT: Feature Config, ADV:1, BLE_50:1, DTM:1, SCAN:1, CCA:0, SMP:1, CONNECT:1
I (659) BLE_INIT: Bluetooth MAC: d0:cf:13:03:bb:f2
I (659) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10
I (699) DZBJ_BLE: GATT server register, status 0, app_id 0
I (709) DZBJ_BLE: 图片传输服务创建成功,句柄: 28
I (709) DZBJ_BLE: 图片写入特征创建成功,句柄: 42
I (709) DZBJ_BLE: 图片编辑特征创建成功,句柄: 44
I (709) DZBJ_BLE: BLE MAC: d0:cf:13:03:bb:f2
I (709) DZBJ_BLE: 蓝牙设备名称: Airhub_d0:cf:13:03:bb:f2
I (709) DZBJ_BLE: Advertising data set, status 0
I (709) DZBJ_BLE: Scan response data set, status 0
I (709) DZBJ_BLE: Advertising start successfully
I (709) BLE_XFER: GATTC注册成功, if=4
I (709) BLE_XFER: 设备间传输模块初始化完成
I (709) SLEEP: 休眠管理器初始化完成(超时=10s
I (709) Airhub1: 电子吧唧模式初始化完成
I (709) main_task: Returned from app_main()
I (5649) DZBJ_BAT: ADC原始值=2791, ADC电压=2335mV, 电池电压=4670mV, 电量=100%
I (10649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100%
I (15649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100%
I (18019) KEY_NAV: 导航上下文切换: 0
I (20649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100%