feat: 修复BLE蓝牙传图全链路问题 + 实现图片导航显示
1. BLE通信修复: - 补充服务UUID长度字段(ESP_UUID_LEN_16),修复APP端发现服务失败 - 添加WRITE_NR属性,支持writeNoResponse提升传输速度 - 文件写入改为二进制模式"wb",防止数据损坏 - 添加数据完整性校验日志 2. JPEG解码修复: - 移除过严的FFD9结束标记校验(兼容Android JPEG编码器) 3. 图片导航功能(新增): - ble_image_navigate():BLE接收后自动导航到ScreenImg显示新图片 - set_image_index_by_name():按文件名定位图片列表索引 - 智能检测当前界面:不在ScreenImg则切换,已在则直接更新 - 修复update_ui_ImgBle解码失败时double-free崩溃 4. ScreenImg界面优化: - 每次进入界面都显示当前图片,支持BLE导航和手势切换场景 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
58fb9aab86
commit
811559be49
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,8 @@
|
|||||||
# 忽略根目录下的 build 文件夹(包括其所有子文件/子文件夹)
|
# 忽略根目录下的 build 文件夹(包括其所有子文件/子文件夹)
|
||||||
/build
|
/build
|
||||||
|
|
||||||
|
# 忽略根目录下的uniapp_code文件夹(这是APP端的业务)
|
||||||
|
/uniapp_code
|
||||||
|
|
||||||
# 忽略 macOS 系统文件
|
# 忽略 macOS 系统文件
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@ -76,6 +76,7 @@ static esp_attr_control_t control_image_edit = {
|
|||||||
|
|
||||||
// 图片传输服务
|
// 图片传输服务
|
||||||
static esp_gatt_srvc_id_t server_id_image = {
|
static esp_gatt_srvc_id_t server_id_image = {
|
||||||
|
.id.uuid.len = ESP_UUID_LEN_16,
|
||||||
.id.uuid.uuid.uuid16 = IMAGE_SERVICE_UUID,
|
.id.uuid.uuid.uuid16 = IMAGE_SERVICE_UUID,
|
||||||
.id.inst_id = IMAGE_SERVICE_INSTID,
|
.id.inst_id = IMAGE_SERVICE_INSTID,
|
||||||
.is_primary = true,
|
.is_primary = true,
|
||||||
@ -216,7 +217,7 @@ static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
|
|||||||
image_service_handle,
|
image_service_handle,
|
||||||
&image_write_uuid,
|
&image_write_uuid,
|
||||||
ESP_GATT_PERM_WRITE,
|
ESP_GATT_PERM_WRITE,
|
||||||
ESP_GATT_CHAR_PROP_BIT_WRITE,
|
ESP_GATT_CHAR_PROP_BIT_WRITE | ESP_GATT_CHAR_PROP_BIT_WRITE_NR,
|
||||||
&char_val_image_write,
|
&char_val_image_write,
|
||||||
&control_image_write
|
&control_image_write
|
||||||
);
|
);
|
||||||
@ -224,7 +225,7 @@ static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
|
|||||||
image_service_handle,
|
image_service_handle,
|
||||||
&image_edit_uuid,
|
&image_edit_uuid,
|
||||||
ESP_GATT_PERM_WRITE,
|
ESP_GATT_PERM_WRITE,
|
||||||
ESP_GATT_CHAR_PROP_BIT_WRITE,
|
ESP_GATT_CHAR_PROP_BIT_WRITE | ESP_GATT_CHAR_PROP_BIT_WRITE_NR,
|
||||||
&char_val_image_edit,
|
&char_val_image_edit,
|
||||||
&control_image_edit
|
&control_image_edit
|
||||||
);
|
);
|
||||||
@ -263,24 +264,27 @@ static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
|
|||||||
img_data = malloc((int)firstMeg.len);
|
img_data = malloc((int)firstMeg.len);
|
||||||
filepath = malloc(sizeof(char) * 33);
|
filepath = malloc(sizeof(char) * 33);
|
||||||
sprintf(filepath,"/spiflash/%s",firstMeg.filename);
|
sprintf(filepath,"/spiflash/%s",firstMeg.filename);
|
||||||
file_img = fopen(filepath,"w");
|
file_img = fopen(filepath,"wb");
|
||||||
ESP_LOGI(CONN_TAG,"传输通道建立成功,数据指针:%p,文件名称:%s,文件大小:%d",img_data,firstMeg.filename,(int)firstMeg.len);
|
ESP_LOGI(CONN_TAG,"传输通道建立成功,数据指针:%p,文件名称:%s,文件大小:%d",img_data,firstMeg.filename,(int)firstMeg.len);
|
||||||
}
|
}
|
||||||
}else if(SendStatus.isSend){
|
}else if(SendStatus.isSend){
|
||||||
ESP_LOGI(CONN_TAG, "获取到数据:第:%d包,是否结束:%d",*value+1,*(value+1));
|
ESP_LOGI(CONN_TAG, "获取到数据:第:%d包,长度:%d,是否结束:%d",*value+1,(int)param->write.len,*(value+1));
|
||||||
uint8_t isEnd = *(value + 1);
|
uint8_t isEnd = *(value + 1);
|
||||||
uint8_t port = *(value);
|
uint8_t port = *(value);
|
||||||
uint8_t *data = value + 2;
|
uint8_t *data = value + 2;
|
||||||
memcpy(img_data + SendStatus.port,data,(int)param->write.len-2);
|
memcpy(img_data + SendStatus.port,data,(int)param->write.len-2);
|
||||||
SendStatus.port += param->write.len-2;
|
SendStatus.port += param->write.len-2;
|
||||||
if(isEnd){
|
if(isEnd){
|
||||||
|
ESP_LOGI(CONN_TAG,"数据接收完毕,累计:%d字节,预期:%d字节,首字节:%02X %02X",
|
||||||
|
(int)SendStatus.port,(int)firstMeg.len,img_data[0],img_data[1]);
|
||||||
fwrite(img_data,sizeof(uint8_t),firstMeg.len,file_img);
|
fwrite(img_data,sizeof(uint8_t),firstMeg.len,file_img);
|
||||||
fclose(file_img);
|
fclose(file_img);
|
||||||
SendStatus.isSend = false;
|
SendStatus.isSend = false;
|
||||||
SendStatus.port = 0;
|
SendStatus.port = 0;
|
||||||
ESP_LOGI(CONN_TAG,"图片接收成功");
|
ESP_LOGI(CONN_TAG,"图片接收成功");
|
||||||
nvs_change_img(firstMeg.filename);
|
nvs_change_img(firstMeg.filename);
|
||||||
app_img_change(firstMeg.filename);
|
// 导航到ScreenImg显示新图片(内部刷新列表+设置索引+切换界面)
|
||||||
|
ble_image_navigate(firstMeg.filename);
|
||||||
free(img_data);
|
free(img_data);
|
||||||
free(filepath);
|
free(filepath);
|
||||||
}
|
}
|
||||||
@ -293,7 +297,7 @@ static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
|
|||||||
memcpy(imgName, value, 23);
|
memcpy(imgName, value, 23);
|
||||||
if(type == 0xff){
|
if(type == 0xff){
|
||||||
nvs_change_img(imgName);
|
nvs_change_img(imgName);
|
||||||
app_img_change(imgName);
|
ble_image_navigate(imgName);
|
||||||
}else if(type == 0xF1){
|
}else if(type == 0xF1){
|
||||||
remove(filepath);
|
remove(filepath);
|
||||||
SendStatus.isSend = false;
|
SendStatus.isSend = false;
|
||||||
|
|||||||
@ -568,12 +568,6 @@ esp_err_t DecodeImg(char *imgpath,uint8_t** imgData,esp_jpeg_image_output_t *out
|
|||||||
free(*imgData);
|
free(*imgData);
|
||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
if (imgEncoderData[file_stat.st_size - 2] != 0xFF || imgEncoderData[file_stat.st_size - 1] != 0xD9) {
|
|
||||||
ESP_LOGE(TAG, "JPEG结束标记缺失");
|
|
||||||
free(imgEncoderData);
|
|
||||||
free(*imgData);
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
uint32_t outbuf_size = 360 * 360 * sizeof(uint8_t) * 2;
|
uint32_t outbuf_size = 360 * 360 * sizeof(uint8_t) * 2;
|
||||||
esp_jpeg_image_cfg_t jpeg_cfg = {
|
esp_jpeg_image_cfg_t jpeg_cfg = {
|
||||||
|
|||||||
@ -15,3 +15,7 @@ uint8_t pwm_get_brightness(void); // 获取当前亮度值
|
|||||||
// 图片管理函数
|
// 图片管理函数
|
||||||
const char* get_current_image(void); // 获取当前图片文件名
|
const char* get_current_image(void); // 获取当前图片文件名
|
||||||
bool delete_current_image(void); // 删除当前图片
|
bool delete_current_image(void); // 删除当前图片
|
||||||
|
void init_spiffs_image_list(void); // 初始化/扫描SPIFFS图片列表
|
||||||
|
void free_spiffs_image_list(void); // 重置图片列表
|
||||||
|
bool set_image_index_by_name(const char *name); // 根据文件名设置当前图片索引
|
||||||
|
void ble_image_navigate(const char *filename); // BLE接收后导航到ScreenImg显示
|
||||||
|
|||||||
@ -6,6 +6,9 @@
|
|||||||
#include "jpeg_decoder.h"
|
#include "jpeg_decoder.h"
|
||||||
#include "../ui/screens/ui_ScreenImg.h"
|
#include "../ui/screens/ui_ScreenImg.h"
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
// 前向声明界面切换函数
|
||||||
|
extern void _ui_screen_change(lv_obj_t **target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void));
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -665,6 +668,48 @@ void free_spiffs_image_list(void) {
|
|||||||
ESP_LOGI("IMG_LIST", "图片列表已重置");
|
ESP_LOGI("IMG_LIST", "图片列表已重置");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据文件名设置当前图片索引
|
||||||
|
bool set_image_index_by_name(const char *name) {
|
||||||
|
if(!image_list_initialized || spiffs_image_count == 0 || !name) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < spiffs_image_count; i++) {
|
||||||
|
if(strcmp(spiffs_image_files[i], name) == 0) {
|
||||||
|
current_image_index = i;
|
||||||
|
ESP_LOGI("IMG_LIST", "设置图片索引为 %d: %s", i, name);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ESP_LOGW("IMG_LIST", "未找到图片: %s", name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BLE接收图片后导航到ScreenImg显示
|
||||||
|
void ble_image_navigate(const char *filename) {
|
||||||
|
// 刷新图片列表
|
||||||
|
free_spiffs_image_list();
|
||||||
|
init_spiffs_image_list();
|
||||||
|
|
||||||
|
// 设置当前索引为新接收的图片
|
||||||
|
set_image_index_by_name(filename);
|
||||||
|
|
||||||
|
// 检查是否已在ScreenImg界面
|
||||||
|
lvgl_port_lock(0);
|
||||||
|
bool already_on_screen = (lv_scr_act() == ui_ScreenImg);
|
||||||
|
if (!already_on_screen) {
|
||||||
|
// 不在ScreenImg,导航过去(SCREEN_LOADED事件会触发update_ui_ImgBle)
|
||||||
|
_ui_screen_change(&ui_ScreenImg, LV_SCR_LOAD_ANIM_NONE, 0, 0, &ui_ScreenImg_screen_init);
|
||||||
|
}
|
||||||
|
lvgl_port_unlock();
|
||||||
|
|
||||||
|
// 已在ScreenImg时,_ui_screen_change不会触发SCREEN_LOADED,需手动更新图片
|
||||||
|
if (already_on_screen) {
|
||||||
|
update_ui_ImgBle(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP_LOGI("IMG_LIST", "BLE导航到ScreenImg显示: %s", filename);
|
||||||
|
}
|
||||||
|
|
||||||
// 获取当前图片文件名
|
// 获取当前图片文件名
|
||||||
const char* get_current_image(void) {
|
const char* get_current_image(void) {
|
||||||
if(!image_list_initialized || spiffs_image_count == 0) {
|
if(!image_list_initialized || spiffs_image_count == 0) {
|
||||||
@ -788,6 +833,7 @@ void update_ui_ImgBle(const char *img_name) {
|
|||||||
ESP_LOGI("IMG_UI", "ui_ImgBle图片更新成功: %s", img_name);
|
ESP_LOGI("IMG_UI", "ui_ImgBle图片更新成功: %s", img_name);
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGE("IMG_UI", "图片解码失败,错误码: %d", ret);
|
ESP_LOGE("IMG_UI", "图片解码失败,错误码: %d", ret);
|
||||||
|
ui_img_data = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -78,23 +78,17 @@ void ui_event_ImageDel(lv_event_t * e) {
|
|||||||
void ui_event_ScreenImg( lv_event_t * e) {
|
void ui_event_ScreenImg( lv_event_t * e) {
|
||||||
lv_event_code_t event_code = lv_event_get_code(e);
|
lv_event_code_t event_code = lv_event_get_code(e);
|
||||||
|
|
||||||
// 界面加载完成事件:首次进入时才初始化图片
|
// 界面加载完成事件:每次进入都显示当前图片
|
||||||
if ( event_code == LV_EVENT_SCREEN_LOADED ) {
|
if ( event_code == LV_EVENT_SCREEN_LOADED ) {
|
||||||
if (first_load) {
|
// 初始化图片列表(内部有guard,不会重复初始化)
|
||||||
first_load = false;
|
init_spiffs_image_list();
|
||||||
|
|
||||||
// 初始化图片列表
|
// 每次进入界面都显示当前图片(支持BLE导航和手势切换回来)
|
||||||
init_spiffs_image_list();
|
const char *current_img = get_current_image();
|
||||||
|
if (current_img) {
|
||||||
// 获取第一张可用图片
|
update_ui_ImgBle(current_img);
|
||||||
const char *first_img = get_current_image();
|
} else {
|
||||||
if (first_img) {
|
ESP_LOGI("ScreenImg", "SPIFFS无可用图片,显示默认UI图片");
|
||||||
// 显示第一张SPIFFS图片
|
|
||||||
update_ui_ImgBle(first_img);
|
|
||||||
} else {
|
|
||||||
// 没有图片,保持显示UI资源图片 ui_img_s1_png
|
|
||||||
ESP_LOGI("ScreenImg", "SPIFFS无可用图片,显示默认UI图片");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 每次加载界面时检查是否需要显示 ContainerDle
|
// 每次加载界面时检查是否需要显示 ContainerDle
|
||||||
|
|||||||
21
sdkconfig
21
sdkconfig
@ -14,7 +14,6 @@ CONFIG_SOC_GDMA_SUPPORTED=y
|
|||||||
CONFIG_SOC_AHB_GDMA_SUPPORTED=y
|
CONFIG_SOC_AHB_GDMA_SUPPORTED=y
|
||||||
CONFIG_SOC_GPTIMER_SUPPORTED=y
|
CONFIG_SOC_GPTIMER_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_CAM_SUPPORTED=y
|
|
||||||
CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y
|
||||||
CONFIG_SOC_MCPWM_SUPPORTED=y
|
CONFIG_SOC_MCPWM_SUPPORTED=y
|
||||||
@ -102,7 +101,7 @@ CONFIG_SOC_CPU_HAS_FPU=y
|
|||||||
CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y
|
CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y
|
||||||
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
|
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
|
||||||
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
|
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
|
||||||
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40
|
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64
|
||||||
CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16
|
CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16
|
||||||
CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096
|
CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096
|
||||||
CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
|
CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
|
||||||
@ -209,7 +208,7 @@ CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
|
|||||||
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
||||||
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
||||||
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
||||||
CONFIG_SOC_SDM_GROUPS=1
|
CONFIG_SOC_SDM_GROUPS=y
|
||||||
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
||||||
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
||||||
CONFIG_SOC_SPI_PERIPH_NUM=3
|
CONFIG_SOC_SPI_PERIPH_NUM=3
|
||||||
@ -370,9 +369,6 @@ CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
|
|||||||
CONFIG_SOC_BLUFI_SUPPORTED=y
|
CONFIG_SOC_BLUFI_SUPPORTED=y
|
||||||
CONFIG_SOC_ULP_HAS_ADC=y
|
CONFIG_SOC_ULP_HAS_ADC=y
|
||||||
CONFIG_SOC_PHY_COMBO_MODULE=y
|
CONFIG_SOC_PHY_COMBO_MODULE=y
|
||||||
CONFIG_SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV=y
|
|
||||||
CONFIG_SOC_LCDCAM_CAM_PERIPH_NUM=1
|
|
||||||
CONFIG_SOC_LCDCAM_CAM_DATA_WIDTH_MAX=16
|
|
||||||
CONFIG_IDF_CMAKE=y
|
CONFIG_IDF_CMAKE=y
|
||||||
CONFIG_IDF_TOOLCHAIN="gcc"
|
CONFIG_IDF_TOOLCHAIN="gcc"
|
||||||
CONFIG_IDF_TOOLCHAIN_GCC=y
|
CONFIG_IDF_TOOLCHAIN_GCC=y
|
||||||
@ -840,7 +836,6 @@ CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
|
|||||||
CONFIG_BT_BLE_42_DTM_TEST_EN=y
|
CONFIG_BT_BLE_42_DTM_TEST_EN=y
|
||||||
CONFIG_BT_BLE_42_ADV_EN=y
|
CONFIG_BT_BLE_42_ADV_EN=y
|
||||||
CONFIG_BT_BLE_42_SCAN_EN=y
|
CONFIG_BT_BLE_42_SCAN_EN=y
|
||||||
CONFIG_BT_BLE_VENDOR_HCI_EN=y
|
|
||||||
# CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set
|
# CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set
|
||||||
# CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set
|
# CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set
|
||||||
# end of Bluedroid Options
|
# end of Bluedroid Options
|
||||||
@ -1062,7 +1057,6 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
|
|||||||
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
|
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
|
||||||
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
||||||
# CONFIG_ESP_TLS_INSECURE is not set
|
# CONFIG_ESP_TLS_INSECURE is not set
|
||||||
CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y
|
|
||||||
# end of ESP-TLS
|
# end of ESP-TLS
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1089,12 +1083,6 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
|||||||
CONFIG_ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
CONFIG_ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
||||||
# end of Common ESP-related
|
# end of Common ESP-related
|
||||||
|
|
||||||
#
|
|
||||||
# ESP-Driver:Camera Controller Configurations
|
|
||||||
#
|
|
||||||
# CONFIG_CAM_CTLR_DVP_CAM_ISR_CACHE_SAFE is not set
|
|
||||||
# end of ESP-Driver:Camera Controller Configurations
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# ESP-Driver:GPIO Configurations
|
# ESP-Driver:GPIO Configurations
|
||||||
#
|
#
|
||||||
@ -1415,11 +1403,8 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
|
|||||||
# CONFIG_ESP_PHY_RF_CAL_NONE is not set
|
# CONFIG_ESP_PHY_RF_CAL_NONE is not set
|
||||||
# CONFIG_ESP_PHY_RF_CAL_FULL is not set
|
# CONFIG_ESP_PHY_RF_CAL_FULL is not set
|
||||||
CONFIG_ESP_PHY_CALIBRATION_MODE=0
|
CONFIG_ESP_PHY_CALIBRATION_MODE=0
|
||||||
CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000
|
|
||||||
# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
|
# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
|
||||||
# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
|
# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
|
||||||
CONFIG_ESP_PHY_IRAM_OPT=y
|
|
||||||
# CONFIG_ESP_PHY_DEBUG is not set
|
|
||||||
# end of PHY
|
# end of PHY
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2099,7 +2084,6 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
|||||||
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
|
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
|
||||||
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
|
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
|
||||||
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
|
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
|
||||||
# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set
|
|
||||||
CONFIG_MBEDTLS_PKCS7_C=y
|
CONFIG_MBEDTLS_PKCS7_C=y
|
||||||
# end of mbedTLS v3.x related
|
# end of mbedTLS v3.x related
|
||||||
|
|
||||||
@ -3083,7 +3067,6 @@ CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y
|
|||||||
CONFIG_SW_COEXIST_ENABLE=y
|
CONFIG_SW_COEXIST_ENABLE=y
|
||||||
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
|
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
|
||||||
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
|
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
|
||||||
# CONFIG_CAM_CTLR_DVP_CAM_ISR_IRAM_SAFE is not set
|
|
||||||
# CONFIG_MCPWM_ISR_IN_IRAM is not set
|
# CONFIG_MCPWM_ISR_IN_IRAM is not set
|
||||||
# CONFIG_EVENT_LOOP_PROFILING is not set
|
# CONFIG_EVENT_LOOP_PROFILING is not set
|
||||||
CONFIG_POST_EVENTS_FROM_ISR=y
|
CONFIG_POST_EVENTS_FROM_ISR=y
|
||||||
|
|||||||
282
设备运行日志.md
282
设备运行日志.md
@ -1,282 +0,0 @@
|
|||||||
rdzleo@RdzleodeMac-Studio dzbj % '/Users/rdzleo/.espressif/python_env/idf5.4_py3.13_env/bin/python3' '/Users/rd
|
|
||||||
zleo/esp/esp-idf/v5.4.2/esp-idf/tools/idf_monitor.py' -p /dev/tty.usbmodem834401 -b 115200 --toolchain-prefix x
|
|
||||||
tensa-esp32s3-elf- --make ''/Users/rdzleo/.espressif/python_env/idf5.4_py3.13_env/bin/python3' '/Users/rdzleo/e
|
|
||||||
sp/esp-idf/v5.4.2/esp-idf/tools/idf.py'' --target esp32s3 '/Users/rdzleo/Desktop/dzbj/build/program.elf'
|
|
||||||
--- Warning: Serial ports accessed as /dev/tty.* will hang gdb if launched.
|
|
||||||
--- Using /dev/cu.usbmodem834401 instead...
|
|
||||||
--- esp-idf-monitor 1.8.0 on /dev/cu.usbmodem834401 115200
|
|
||||||
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
|
|
||||||
This driver is aESP-ROM:esp32s3-20210327
|
|
||||||
Build:Mar 27 2021
|
|
||||||
rst:0x15 (USB_UART_CHIP_RESET),boot:0x2b (SPI_FAST_FLASH_BOOT)
|
|
||||||
Saved PC:0x40048836
|
|
||||||
--- 0x40048836: uart_tx_one_char_uart in ROM
|
|
||||||
SPIWP:0xee
|
|
||||||
mode:DIO, clock div:1
|
|
||||||
load:0x3fce2820,len:0x16d0
|
|
||||||
load:0x403c8700,len:0x4
|
|
||||||
load:0x403c8704,len:0xec8
|
|
||||||
load:0x403cb700,len:0x3160
|
|
||||||
entry 0x403c8950
|
|
||||||
I (26) boot: ESP-IDF v5.4.2-dirty 2nd stage bootloader
|
|
||||||
I (27) boot: compile time Feb 9 2026 10:08:02
|
|
||||||
I (27) boot: Multicore bootloader
|
|
||||||
I (27) boot: chip revision: v0.2
|
|
||||||
I (30) boot: efuse block revision: v1.3
|
|
||||||
I (34) qio_mode: Enabling default flash chip QIO
|
|
||||||
I (38) boot.esp32s3: Boot SPI Speed : 80MHz
|
|
||||||
I (42) boot.esp32s3: SPI Mode : QIO
|
|
||||||
I (46) boot.esp32s3: SPI Flash Size : 16MB
|
|
||||||
I (50) boot: Enabling RNG early entropy source...
|
|
||||||
I (54) boot: Partition Table:
|
|
||||||
I (57) boot: ## Label Usage Type ST Offset Length
|
|
||||||
I (63) boot: 0 nvs WiFi data 01 02 00009000 00006000
|
|
||||||
I (70) boot: 1 phy_init RF data 01 01 0000f000 00001000
|
|
||||||
I (76) boot: 2 factory factory app 00 00 00010000 00400000
|
|
||||||
I (83) boot: 3 storage Unknown data 01 82 00410000 00200000
|
|
||||||
I (89) boot: End of partition table
|
|
||||||
I (92) esp_image: segment 0: paddr=00010020 vaddr=3c060020 size=78508h (492808) map
|
|
||||||
I (173) esp_image: segment 1: paddr=00088530 vaddr=3fc98600 size=03688h ( 13960) load
|
|
||||||
I (176) esp_image: segment 2: paddr=0008bbc0 vaddr=40374000 size=04458h ( 17496) load
|
|
||||||
I (180) esp_image: segment 3: paddr=00090020 vaddr=42000020 size=5c8ech (379116) map
|
|
||||||
I (241) esp_image: segment 4: paddr=000ec914 vaddr=40378458 size=1015ch ( 65884) load
|
|
||||||
I (253) esp_image: segment 5: paddr=000fca78 vaddr=600fe000 size=0001ch ( 28) load
|
|
||||||
I (262) boot: Loaded app from partition at offset 0x10000
|
|
||||||
I (262) boot: Disabling RNG early entropy source...
|
|
||||||
I (272) octal_psram: ECC is enabled
|
|
||||||
I (272) octal_psram: vendor id : 0x0d (AP)
|
|
||||||
I (272) octal_psram: dev id : 0x02 (generation 3)
|
|
||||||
I (273) octal_psram: density : 0x03 (64 Mbit)
|
|
||||||
I (277) octal_psram: good-die : 0x01 (Pass)
|
|
||||||
I (282) octal_psram: Latency : 0x01 (Fixed)
|
|
||||||
I (286) octal_psram: VCC : 0x01 (3V)
|
|
||||||
I (290) octal_psram: SRF : 0x01 (Fast Refresh)
|
|
||||||
I (295) octal_psram: BurstType : 0x00 ( Wrap)
|
|
||||||
I (299) octal_psram: BurstLen : 0x03 (1024 Byte)
|
|
||||||
I (304) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)
|
|
||||||
I (309) octal_psram: DriveStrength: 0x00 (1/1)
|
|
||||||
I (314) MSPI Timing: PSRAM timing tuning index: 5
|
|
||||||
I (318) esp_psram: Found 8MB PSRAM device
|
|
||||||
I (322) esp_psram: Speed: 80MHz
|
|
||||||
I (364) mmu_psram: Read only data copied and mapped to SPIRAM
|
|
||||||
I (395) mmu_psram: Instructions copied and mapped to SPIRAM
|
|
||||||
I (396) cpu_start: Multicore app
|
|
||||||
I (795) esp_psram: SPI SRAM memory test OK
|
|
||||||
I (803) cpu_start: Pro cpu start user code
|
|
||||||
I (803) cpu_start: cpu freq: 160000000 Hz
|
|
||||||
I (803) app_init: Application information:
|
|
||||||
I (804) app_init: Project name: program
|
|
||||||
I (807) app_init: App version: 1
|
|
||||||
I (811) app_init: Compile time: Feb 9 2026 10:07:49
|
|
||||||
I (816) app_init: ELF file SHA256: fe13bd2c7...
|
|
||||||
I (820) app_init: ESP-IDF: v5.4.2-dirty
|
|
||||||
I (824) efuse_init: Min chip rev: v0.0
|
|
||||||
I (828) efuse_init: Max chip rev: v0.99
|
|
||||||
I (832) efuse_init: Chip rev: v0.2
|
|
||||||
I (836) heap_init: Initializing. RAM available for dynamic allocation:
|
|
||||||
I (842) heap_init: At 3FCACCB0 len 0003CA60 (242 KiB): RAM
|
|
||||||
I (847) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
|
|
||||||
I (853) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
|
|
||||||
I (858) heap_init: At 600FE01C len 00001FCC (7 KiB): RTCRAM
|
|
||||||
I (863) esp_psram: Adding pool of 6784K of PSRAM memory to heap allocator
|
|
||||||
I (870) esp_psram: Adding pool of 30K of PSRAM memory gap generated due to end address alignment of drom to the heap allocator
|
|
||||||
I (881) spi_flash: detected chip: generic
|
|
||||||
I (884) spi_flash: flash io: qio
|
|
||||||
W (888) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
|
|
||||||
I (897) sleep_gpio: Configure to isolate all GPIO pins in sleep state
|
|
||||||
I (904) sleep_gpio: Enable automatic switching of GPIO sleep configuration
|
|
||||||
I (910) coexist: coex firmware version: 7b9a184
|
|
||||||
I (914) coexist: coexist rom version e7ae62f
|
|
||||||
I (919) main_task: Started on CPU0
|
|
||||||
I (929) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
|
|
||||||
I (929) main_task: Calling app_main()
|
|
||||||
I (929) MAIN: Starting system initialization...
|
|
||||||
I (939) MAIN: 1. Initializing I2C...
|
|
||||||
I (939) MAIN: I2C initialized successfully
|
|
||||||
I (949) MAIN: 2. Initializing NVS...
|
|
||||||
I (949) MAIN: NVS initialized successfully
|
|
||||||
I (949) MAIN: 3. Initializing LCD...
|
|
||||||
I (959) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
|
|
||||||
I (959) st77916: LCD panel create success, version: 1.0.1
|
|
||||||
W (1109) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence
|
|
||||||
I (1229) MAIN: LCD initialized successfully
|
|
||||||
I (1229) MAIN: 4. Initializing touch controller...
|
|
||||||
I (1229) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:2
|
|
||||||
I (1229) gpio: GPIO[6]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
|
|
||||||
I (1639) CST816S: IC id: 182
|
|
||||||
I (1639) LCD: Touch controller initialized successfully
|
|
||||||
I (1639) MAIN: Touch controller initialized
|
|
||||||
I (1639) MAIN: 5. Initializing LVGL...
|
|
||||||
I (1639) LVGL: Starting LVGL task
|
|
||||||
I (1639) LCD: LVGL buffer size: 21600 bytes (W: 360, Lines: 30)
|
|
||||||
I (1649) LCD: Touch controller added to LVGL
|
|
||||||
I (1649) MAIN: LVGL initialized successfully
|
|
||||||
I (1759) MAIN: LVGL task started
|
|
||||||
I (1759) MAIN: 6. Initializing FATFS...
|
|
||||||
I (1809) FATFS: SPIFFS: Total size: 1920401, Used: 78061
|
|
||||||
I (1809) MAIN: FATFS initialized successfully
|
|
||||||
I (1809) MAIN: 7. Initializing PWM backlight...
|
|
||||||
I (1809) MAIN: PWM backlight initialized successfully
|
|
||||||
I (1809) MAIN: 8. Processing SPIFFS...
|
|
||||||
I (1879) FATFS: 文件名: /spiflash/03.jpg,大小:8805
|
|
||||||
I (1879) FATFS: 文件名: /spiflash/02.jpg,大小:20498
|
|
||||||
I (1879) FATFS: 文件名: /spiflash/default.jpg,大小:47430
|
|
||||||
I (1909) MAIN: 9. Initializing SquareLine UI...
|
|
||||||
I (1969) MAIN: SquareLine UI initialized
|
|
||||||
I (1969) MAIN: 10. Waiting for UI rendering...
|
|
||||||
I (2039) MAIN: Rendering step 1 completed
|
|
||||||
I (2089) MAIN: Rendering step 2 completed
|
|
||||||
I (2139) MAIN: Rendering step 3 completed
|
|
||||||
I (2139) MAIN: UI rendering completed
|
|
||||||
I (2139) MAIN: System initialization finished successfully!
|
|
||||||
I (2139) main_task: Returned from app_main()
|
|
||||||
I (6789) LVGL: Touch detected: x=175, y=36, count=1
|
|
||||||
I (6819) LVGL: Touch detected: x=178, y=41, count=1
|
|
||||||
I (6849) LVGL: Touch detected: x=183, y=50, count=1
|
|
||||||
I (6879) LVGL: Touch detected: x=190, y=65, count=1
|
|
||||||
I (6929) LVGL: Touch detected: x=208, y=122, count=1
|
|
||||||
I (6959) LVGL: Touch detected: x=218, y=161, count=1
|
|
||||||
I (6989) LVGL: Touch detected: x=232, y=201, count=1
|
|
||||||
I (7019) LVGL: Touch detected: x=251, y=243, count=1
|
|
||||||
I (7049) LVGL: Touch detected: x=263, y=265, count=1
|
|
||||||
I (7829) LVGL: Touch detected: x=191, y=328, count=1
|
|
||||||
I (7859) LVGL: Touch detected: x=192, y=326, count=1
|
|
||||||
I (7889) LVGL: Touch detected: x=195, y=313, count=1
|
|
||||||
I (7919) LVGL: Touch detected: x=199, y=287, count=1
|
|
||||||
I (9389) LVGL: Touch detected: x=200, y=34, count=1
|
|
||||||
I (9419) LVGL: Touch detected: x=200, y=34, count=1
|
|
||||||
I (9449) LVGL: Touch detected: x=200, y=34, count=1
|
|
||||||
I (9479) LVGL: Touch detected: x=201, y=36, count=1
|
|
||||||
I (9509) LVGL: Touch detected: x=205, y=49, count=1
|
|
||||||
I (9539) LVGL: Touch detected: x=209, y=66, count=1
|
|
||||||
I (9579) LVGL: Touch detected: x=217, y=100, count=1
|
|
||||||
I (9609) LVGL: Touch detected: x=221, y=121, count=1
|
|
||||||
I (9639) LVGL: Touch detected: x=227, y=141, count=1
|
|
||||||
I (9669) LVGL: Touch detected: x=235, y=161, count=1
|
|
||||||
I (9699) LVGL: Touch detected: x=243, y=178, count=1
|
|
||||||
I (10509) LVGL: Touch detected: x=195, y=326, count=1
|
|
||||||
I (10539) LVGL: Touch detected: x=195, y=325, count=1
|
|
||||||
I (10569) LVGL: Touch detected: x=198, y=313, count=1
|
|
||||||
I (10599) LVGL: Touch detected: x=201, y=290, count=1
|
|
||||||
I (11409) LVGL: Touch detected: x=10, y=157, count=1
|
|
||||||
I (11439) LVGL: Touch detected: x=10, y=157, count=1
|
|
||||||
I (11469) LVGL: Touch detected: x=11, y=157, count=1
|
|
||||||
I (11499) LVGL: Touch detected: x=23, y=157, count=1
|
|
||||||
I (11529) LVGL: Touch detected: x=45, y=157, count=1
|
|
||||||
I (11559) LVGL: Touch detected: x=87, y=157, count=1
|
|
||||||
I (11589) LVGL: Touch detected: x=142, y=157, count=1
|
|
||||||
I (11619) LVGL: Touch detected: x=221, y=157, count=1
|
|
||||||
I (11649) LVGL: Touch detected: x=258, y=157, count=1
|
|
||||||
I (12189) LVGL: Touch detected: x=352, y=159, count=1
|
|
||||||
I (12219) LVGL: Touch detected: x=352, y=159, count=1
|
|
||||||
I (12249) LVGL: Touch detected: x=351, y=159, count=1
|
|
||||||
I (12279) LVGL: Touch detected: x=332, y=156, count=1
|
|
||||||
I (12309) LVGL: Touch detected: x=305, y=152, count=1
|
|
||||||
I (12339) LVGL: Touch detected: x=273, y=146, count=1
|
|
||||||
I (12369) LVGL: Touch detected: x=245, y=141, count=1
|
|
||||||
I (12399) LVGL: Touch detected: x=217, y=137, count=1
|
|
||||||
I (12429) LVGL: Touch detected: x=187, y=132, count=1
|
|
||||||
I (12969) LVGL: Touch detected: x=165, y=36, count=1
|
|
||||||
I (12999) LVGL: Touch detected: x=165, y=36, count=1
|
|
||||||
I (13029) LVGL: Touch detected: x=166, y=40, count=1
|
|
||||||
I (13059) LVGL: Touch detected: x=171, y=56, count=1
|
|
||||||
I (13089) LVGL: Touch detected: x=180, y=86, count=1
|
|
||||||
I (13139) LVGL: Touch detected: x=195, y=137, count=1
|
|
||||||
I (13169) LVGL: Touch detected: x=205, y=168, count=1
|
|
||||||
I (13199) LVGL: Touch detected: x=215, y=193, count=1
|
|
||||||
I (13709) LVGL: Touch detected: x=181, y=321, count=1
|
|
||||||
I (13739) LVGL: Touch detected: x=179, y=312, count=1
|
|
||||||
I (13769) LVGL: Touch detected: x=178, y=291, count=1
|
|
||||||
I (14309) LVGL: Touch detected: x=211, y=25, count=1
|
|
||||||
I (14339) LVGL: Touch detected: x=211, y=25, count=1
|
|
||||||
I (14369) LVGL: Touch detected: x=211, y=28, count=1
|
|
||||||
I (14399) LVGL: Touch detected: x=214, y=39, count=1
|
|
||||||
I (14429) LVGL: Touch detected: x=221, y=62, count=1
|
|
||||||
I (14469) LVGL: Touch detected: x=241, y=112, count=1
|
|
||||||
I (14499) LVGL: Touch detected: x=252, y=139, count=1
|
|
||||||
I (14529) LVGL: Touch detected: x=262, y=161, count=1
|
|
||||||
I (14559) LVGL: Touch detected: x=277, y=189, count=1
|
|
||||||
I (14589) LVGL: Touch detected: x=287, y=203, count=1
|
|
||||||
I (15279) LVGL: Touch detected: x=173, y=324, count=1
|
|
||||||
I (15309) LVGL: Touch detected: x=173, y=320, count=1
|
|
||||||
I (15339) LVGL: Touch detected: x=175, y=309, count=1
|
|
||||||
I (15369) LVGL: Touch detected: x=178, y=286, count=1
|
|
||||||
I (15879) LVGL: Touch detected: x=216, y=56, count=1
|
|
||||||
I (15909) LVGL: Touch detected: x=216, y=56, count=1
|
|
||||||
I (15939) LVGL: Touch detected: x=216, y=56, count=1
|
|
||||||
I (15969) LVGL: Touch detected: x=216, y=57, count=1
|
|
||||||
I (15999) LVGL: Touch detected: x=219, y=64, count=1
|
|
||||||
I (16029) LVGL: Touch detected: x=227, y=86, count=1
|
|
||||||
I (16079) LVGL: Touch detected: x=243, y=129, count=1
|
|
||||||
I (16109) LVGL: Touch detected: x=253, y=156, count=1
|
|
||||||
I (16139) LVGL: Touch detected: x=262, y=177, count=1
|
|
||||||
I (16709) LVGL: Touch detected: x=11, y=134, count=1
|
|
||||||
I (16739) LVGL: Touch detected: x=24, y=136, count=1
|
|
||||||
I (16769) LVGL: Touch detected: x=52, y=139, count=1
|
|
||||||
I (16799) LVGL: Touch detected: x=124, y=146, count=1
|
|
||||||
I (16829) LVGL: Touch detected: x=172, y=151, count=1
|
|
||||||
I (16859) LVGL: Touch detected: x=217, y=154, count=1
|
|
||||||
I (16889) LVGL: Touch detected: x=261, y=154, count=1
|
|
||||||
I (16919) LVGL: Touch detected: x=308, y=153, count=1
|
|
||||||
I (17699) LVGL: Touch detected: x=203, y=27, count=1
|
|
||||||
I (17729) LVGL: Touch detected: x=203, y=28, count=1
|
|
||||||
I (17759) LVGL: Touch detected: x=205, y=36, count=1
|
|
||||||
I (17789) LVGL: Touch detected: x=207, y=52, count=1
|
|
||||||
I (17819) LVGL: Touch detected: x=213, y=79, count=1
|
|
||||||
I (17849) LVGL: Touch detected: x=227, y=116, count=1
|
|
||||||
I (17879) LVGL: Touch detected: x=241, y=151, count=1
|
|
||||||
I (18419) LVGL: Touch detected: x=97, y=130, count=1
|
|
||||||
I (18449) LVGL: Touch detected: x=97, y=130, count=1
|
|
||||||
I (20399) LVGL: Touch detected: x=196, y=32, count=1
|
|
||||||
I (20429) LVGL: Touch detected: x=197, y=35, count=1
|
|
||||||
I (20459) LVGL: Touch detected: x=199, y=42, count=1
|
|
||||||
I (20489) LVGL: Touch detected: x=201, y=55, count=1
|
|
||||||
I (20519) LVGL: Touch detected: x=205, y=77, count=1
|
|
||||||
I (20549) LVGL: Touch detected: x=211, y=104, count=1
|
|
||||||
I (20579) LVGL: Touch detected: x=233, y=158, count=1
|
|
||||||
I (20999) LVGL: Touch detected: x=180, y=337, count=1
|
|
||||||
I (21029) LVGL: Touch detected: x=180, y=333, count=1
|
|
||||||
I (21059) LVGL: Touch detected: x=179, y=315, count=1
|
|
||||||
I (25709) LVGL: Touch detected: x=208, y=35, count=1
|
|
||||||
I (25739) LVGL: Touch detected: x=208, y=35, count=1
|
|
||||||
I (25769) LVGL: Touch detected: x=208, y=38, count=1
|
|
||||||
I (25799) LVGL: Touch detected: x=208, y=48, count=1
|
|
||||||
I (25829) LVGL: Touch detected: x=208, y=66, count=1
|
|
||||||
I (25869) LVGL: Touch detected: x=212, y=132, count=1
|
|
||||||
I (25899) LVGL: Touch detected: x=213, y=150, count=1
|
|
||||||
I (25929) LVGL: Touch detected: x=216, y=195, count=1
|
|
||||||
I (25959) LVGL: Touch detected: x=218, y=214, count=1
|
|
||||||
I (25989) LVGL: Touch detected: x=223, y=227, count=1
|
|
||||||
I (26529) LVGL: Touch detected: x=15, y=118, count=1
|
|
||||||
I (26559) LVGL: Touch detected: x=15, y=118, count=1
|
|
||||||
I (26589) LVGL: Touch detected: x=22, y=119, count=1
|
|
||||||
I (26619) LVGL: Touch detected: x=44, y=123, count=1
|
|
||||||
I (26649) LVGL: Touch detected: x=85, y=130, count=1
|
|
||||||
I (26679) LVGL: Touch detected: x=157, y=141, count=1
|
|
||||||
I (26709) LVGL: Touch detected: x=198, y=148, count=1
|
|
||||||
I (26739) LVGL: Touch detected: x=233, y=152, count=1
|
|
||||||
I (27189) LVGL: Touch detected: x=352, y=168, count=1
|
|
||||||
I (27219) LVGL: Touch detected: x=352, y=168, count=1
|
|
||||||
I (27249) LVGL: Touch detected: x=348, y=168, count=1
|
|
||||||
I (27279) LVGL: Touch detected: x=324, y=167, count=1
|
|
||||||
I (27309) LVGL: Touch detected: x=294, y=164, count=1
|
|
||||||
I (27339) LVGL: Touch detected: x=252, y=161, count=1
|
|
||||||
I (27369) LVGL: Touch detected: x=208, y=157, count=1
|
|
||||||
I (27399) LVGL: Touch detected: x=180, y=153, count=1
|
|
||||||
I (27429) LVGL: Touch detected: x=161, y=148, count=1
|
|
||||||
I (27909) LVGL: Touch detected: x=166, y=336, count=1
|
|
||||||
I (27939) LVGL: Touch detected: x=166, y=328, count=1
|
|
||||||
I (28479) LVGL: Touch detected: x=199, y=325, count=1
|
|
||||||
I (28509) LVGL: Touch detected: x=199, y=325, count=1
|
|
||||||
I (28539) LVGL: Touch detected: x=198, y=322, count=1
|
|
||||||
I (28569) LVGL: Touch detected: x=196, y=312, count=1
|
|
||||||
I (28599) LVGL: Touch detected: x=195, y=292, count=1
|
|
||||||
I (28629) LVGL: Touch detected: x=196, y=254, count=1
|
|
||||||
I (28659) LVGL: Touch detected: x=201, y=162, count=1
|
|
||||||
I (29139) LVGL: Touch detected: x=209, y=15, count=1
|
|
||||||
I (29169) LVGL: Touch detected: x=209, y=16, count=1
|
|
||||||
I (29199) LVGL: Touch detected: x=209, y=28, count=1
|
|
||||||
I (29229) LVGL: Touch detected: x=212, y=55, count=1
|
|
||||||
I (29279) LVGL: Touch detected: x=225, y=123, count=1
|
|
||||||
I (29309) LVGL: Touch detected: x=235, y=166, count=1
|
|
||||||
I (29339) LVGL: Touch detected: x=243, y=199, count=1
|
|
||||||
Loading…
x
Reference in New Issue
Block a user