SWM341系列应用(上位机应用)

news2025/3/11 7:06:28

SWM341系列之上位机应用

1、分级图像和PNG、JPG的应用
现象:客户使用SWM34SVET6+HMI_0.4.1版本上位机进行UI界面布局,反馈在模拟运行时(PC端)流畅,在Demo平台(设备端)运行卡顿。
分析及解决:经过交流得知,客户在分级图像中应用了大量带有透明度的png图片,而SWM34S需要做大量的混 合运算消耗大量的性能,以及客户还将两个分级图形重叠,导致性能更加受损。解决方案是告知用户调整UI布局,使用不带透明度的jpg格式的图片源。在后续评估客户素材时,需注意应用分级图像时图片源是否带有透明度,且避免分级图像的叠加应用。
客户应用UI界面如下图:

2、SWM34S系列之上位机应用      
现象:客户使用符号字体,HMI0.4.1之后已经增加对转义字符\u的支持,询问如何在代码中更换显示的字符。
分析与解决:HMI0.4.1之后已经增加对转义字符\u的支持,只需在上位机中\u <UCS16>来索引字体,代码中也可以通过此方式来改变字符。

3、UICreator 与 360工具软件兼容         
现象:客户使用的是SWM34SRE,客户反馈HMI上位机出现闪退的现象,其中装360安全卫士的打开会闪退,装360杀毒的能正常打开
分析与解决:装360安全卫士需把HMI上位机加入白名单,可以解决闪退的问题
4、UICreator 多控件的应用            
现象:客户使用SWM34SRE做越野电摩的,使用Synwit_UI_creator,目前面临装车测试遇到了以下问题。
1)控件多的界面,运行时间长之后,会有明显的卡顿。
2)开机默认休眠,休眠3~5分钟后无法唤醒。
分析与解决:
问题1,经过现场排查,发现是客户在界面定时器里面反复初始化lv_style,导致画面的内存一直在泄露          内存,后面让客户初始化style一次即可,这样解决了泄露内存的问题。
问题2,开机默认把休眠位置放在frework_ready函数接口,此时lvgl已经开始运行,由于客户复用SFC的CS脚做唤醒脚,导致GUI搬运素材时可能取指失败导致hardfault,demo板上测试,换个唤醒IO是没有问题的。所以目前建议客户在Onboot的接口,在进去LVGL初始化之前再进行休眠,客户测试后问题解决。

5、图片尺寸过小引起的图片被覆盖现象   
现象:客户多普力反馈再使用上位机控件“艺术字”时,在代码框架中修改艺术字的文本,文本直接覆盖到原来的文本上,而非更新文本。在客户提供的素材中可以100%复现。(即有对应的艺术纸没法清除旧的显示数据。) 现象如下图所示:

分析:上位机设计 协助排查发现,客户布局中有大量的控件堆叠,且有一张图片大小小于控件的最低限制16px,导致控件大小要大于实际图片大小,这样LVGL在刷新过程中可能没刷新剩余部分导致文本覆盖。
解决方法:是让客户微调控件位置,将两个控件拉远,或者将静态部分元素做在底图中。控件堆叠情况如下:

6、UI Creator 对SPI接口TFTLCD应用的支持     
现象:客户使用UICreator1.2.1版本,客户说目前屏幕没有对应画面刷新,只能刷底色,目前排除发现底层disp_flush接口有问题,只能驱动MPU和RGB,需要再Display_mode里加上SPI的判断。如下图所示。

分析与解决:需要更新到1.3.0以上版本 

7、多次执行hidden和 load scr引起的花屏     
现象:协助客户分析寄过来的板子,发现客户很多地方进行反复的hidden和load_scr,导致客户会花屏。
分析与解决:目前让客户修改逻辑,实际操作只执行hidden和load_scr一次,不要反复执行。目前客户在极高画质下已经稳定运行,没有花屏现象。

8、非法ID 引起系统的崩溃死机     
现象:客户(SWM34SRET6)在使用上位机获取控件对象指针的API时(synwit_ui_find_lv_obj)传入了非法ID,即上位机工程中并不存在的控件ID,因此返回NULL,继而在调用原生LVGL的API操作这个指针导致系统崩溃死机。
分析与解决:在传入时查表判断是否为合法ID,合法则传入;非法则退出函数。

9、图片UI素材需要注意点   
现象:恩平沃电;客户反馈上位机0.42版本仿真会出现有紫色的边框,和原图有很大差异;
分析解决:是客户的图片源出现问题,是图片的底层有边框,把背景颜色改成黑色,问题解决;

10、34S-上位机使用的定时任务不准        
问题:客户使用上位机界面定时任务事件不准确(上位机的定时任务和lvgl定时任务没有区别)  
分析和解决:好多客户都喜欢把定时任务设置很小,5ms,10ms等。Lvgl中的conf设置屏幕刷新是33ms,所以设置lvgl刷新任务再小也没用,反而使效率更低。实测如果在lvgl定时任务中设置屏幕刷新任务,时间很小的话会不准,应该使和lvgl内部任务冲突。如果在定时任务用写其他程序(比如检测ADC,IO状态)缺不影响。  

11、上位机应用蒙版控制之透明度消失现象      --Liuzc    2023-11
现象:技术支持过程中,客户想通过蒙版控制速度变化,但是上位机新建的控件,跟上位机的图像控件的存储信息不完全一致,所以lvgl用lv_obj控件拷贝控件信息时,拷贝信息不完全,导致会有透明度消失的现象。
分析与解决:建议客户使用lv_obj_set_parent接口来解决,不用新建对象来操作。由于图片控件改成了父节点后,之后如果删除父节点,需要注意一下,那会导致图片控件也被连带删除,这样会出问题的。建议用下面的代码流程:
1、在切换图片父节点前,先通过lv_obj_get_parent()接口把旧的父节点保存到一个全局变量内
2、创建临时对象,调用lv_obj_set_parent()切换父节点
3、在界面stop回调中,同样通过lv_obj_set_parent()将图片原本的父节点恢复,然后删除临时对象

12、按键操作模式的上位机应用      --Liuzc    2023-11
现象:技术支持过程中,客户需要外部按键控制label事件,需要获取按键的event。
分析与解决:需要客户在事件回调判断if(e=LV_EVENT_KEY) 并进行(uint32_t*)lv_event_get_data(); 进行取值。

13、UI Creator中“图像”控件与原生LVGL差异      --WuT    2023-11
现象:客户吾小药(SWM34SxET6)使用UI Creator中创建图像控件,并调用在synwit_ui.h提供的synwit_ui_load_image_file(const char* path)加载图片,此时可以调用lv_img_set_zoom()来缩放图片的大小,但是采用LVGL原生API【lv_img_create()】,同样调用synwit_ui_load_image_file(const char* path)加载图片,此时图片可以正常显示,但无法通过调用lv_img_set_zoom()来缩放图片的大小。
分析和解决:询问SAE得知上位机创建的图像控件为“增强版”的图片控件,具有更多的属性,且在调用synwit_ui_load_image_file(const char* path)加载图片时仅是把jpg的图片加载到SDRAM,并未完成解码的动作,在UI Creator_v1.6.0之前的版本,建议客户通过在上位机中创建控件的方式来使用,在UI Creator_v1.6.0版本及之后的版本,可调用声明在widgets/imgex.h中的lv_imgex_create(lv_obj_t* par, const lv_obj_t* copy)创建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1569116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Object类与内部类

废话不多说&#xff0c;直接进入正题。 目录 一、Object类 1.介绍Object类 2.toString方法 3.equals方法 4.hashCode方法 二、内部类 1.静态内部类 2.实例内部类 3.匿名内部类 4.局部内部类 一、Object类 1.介绍Object类 &#xff08;1&#xff09;Object类就是所有…

算法学习——LeetCode力扣补充篇6(132. 分割回文串 II、673. 最长递增子序列的个数、841. 钥匙和房间、463. 岛屿的周长)

算法学习——LeetCode力扣补充篇6 132. 分割回文串 II 132. 分割回文串 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。 返回符合要求的 最少分割次数 。 示例 示例 1&#…

一文了解低功耗蓝牙BLE

低功耗蓝牙技术可以构建两种类型的设备:双模设备和单模设备。双模设备既支持经典蓝牙又支持低功耗蓝牙。单模设备只支持低功耗蓝牙。还有仅支持经典蓝牙的设备。 在链路层,设备被分为广播者、扫描者、从设备和主设备。广播者是传输数据包的设备,扫描者是接收广播者的数据包…

ids工业相机与电控位移台同步控制及数据采集

通过VS2017和OpenCV,实现ids工业相机与电控位移台同步控制及数据采集 目录项目环境配置代码流程及思路项目架构项目开发运行效果开发关键ids相机配置位移台环境配置相机头文件相机参数设置保存图像函数设置电控位移台头文件电控位移台设置参数最后就是通过main函数进行调用和控…

美易官方:华尔街分析师最青睐的股票过去五年表现怎么样

华尔街分析师一直被视为金融市场的风向标&#xff0c;他们的推荐和预测往往能影响投资者的决策。然而&#xff0c;分析师的预测并不总是准确无误的&#xff0c;特别是在变幻莫测的股市中。那么&#xff0c;我们不禁要问&#xff0c;华尔街分析师最青睐的股票在过去五年中的表现…

OpenHarmony实战:小型系统移植概述

驱动主要包含两部分&#xff0c;平台驱动和器件驱动。平台驱动主要包括通常在SOC内的GPIO、I2C、SPI等&#xff1b;器件驱动则主要包含通常在SOC外的器件&#xff0c;如 LCD、TP、WLAN等 图1 OpenHarmony 驱动分类 HDF驱动被设计为可以跨OS使用的驱动程序&#xff0c;HDF驱动框…

单总线及DS18B20

目录 单总线 单总线介绍 单总线的电路规范 单总线时序结构 初始化 代码理解 发送一位 代码理解 接收一位 代码理解 发送一个字节 代码理解 接收一个字节 代码理解 DS18B20 DS18B20介绍 引脚及应用电路 内部结构 存储器结构 DS18B20操作流程 ROM指令 功能…

大厂面试之【Redis持久化机制】 - RDB和AOF概述及应用配置

文章目录 Redis持久化1. RDB(Redis DataBase)1.1 概述1.2 配置应用 2. AOF(Append Only File)2.1 概述2.2 配置应用 Redis持久化 先上结论&#xff1a;Redis持久化操作分为rdb以及aof&#xff0c;但是前者已经够用 1. RDB(Redis DataBase) 1.1 概述 rdb保存的是dump.rdb文件在指…

基于springboot实现校园资料分享平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园资料分享平台演示 摘要 随着信息互联网购物的飞速发展&#xff0c;国内放开了自媒体的政策&#xff0c;一般企业都开始开发属于自己内容分发平台的网站。本文介绍了校园资料分享平台的开发全过程。通过分析企业对于校园资料分享平台的需求&#xff0c;创…

C++ 11是如何封装Thread库的?

引言 C11 标准引入了一个重要的特性&#xff0c;即原生线程支持&#xff0c;这标志着C语言在并发编程领域迈出了坚实的步伐。在此之前&#xff0c;开发人员在进行跨平台的多线程编程时&#xff0c;不得不依赖于操作系统提供的特定API&#xff0c;如Windows API或POSIX Threads…

开发环境->生产环境

1、数据迁移 不涉及docker # 以数据库用户导出数据 mysqldump -h 192.168.1.168 -P 3307 -u abragent -pabragebb17 abragent > abragent.sql# 以root用户导出数据 mysqldump -h 192.168.1.168 -P 3307 -u root -p8d3Ba1b abragent > abragent.sql 涉及docker …

Android12 简单的共享内存驱动实现 参考Ashmem

Android12 共享内存驱动实现 SOC&#xff1a;RK3568 system&#xff1a;Android12 概述&#xff1a; 1. 概述 Ashmem&#xff08;Anonymous Shared Memory&#xff0c;Android 匿名共享内存&#xff09;&#xff0c;它基于 mmap 系统调用&#xff0c;可以让不同进程将同一段…

数据恢复工具哪个成功率高?十大数据恢复软件榜单

数据恢复软件可以恢复损坏或删除的数据。使用数据恢复软件恢复存储在安全位置的剩余信息。您可能会因意外删除文件、文件系统逻辑损坏甚至存储故障等各种原因而丢失数据。执行查看、复制、扫描、识别或提取存储设备中已删除扇区的数据等操作。恢复虚拟存储在任何设备&#xff0…

【算法练习】27:冒泡排序学习笔记

一、冒泡排序的算法思想 原理&#xff1a;以升序为例&#xff0c;冒泡排序通过从左往右连续比较相邻元素&#xff0c;当发现左边比右边大就交换元素。从左往右依次比较完称为“一轮”&#xff0c;每轮结束之后就会固定一个元素。 时间复杂度&#xff1a;2层循环&#xff0c;所以…

windows安装Openssl

openssl官网:[ Downloads ] - /source/index.html Windows 安装方法 OpenSSL 官网没有提供 Windows 版本的安装包&#xff0c;可以选择其他开源平台提供的工具 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 等待下载完成 捐不起 配置环境变量 ope…

Maven依赖管理项目构建工具

一 Maven简介 1.1、Maven是一个依赖管理工具 1.1.1 jar 包的规模 随着我们使用越来越多的框架&#xff0c;或者框架封装程度越来越高&#xff0c;项目中使用的jar包也越来越多。项目中&#xff0c;一个模块里面用到上百个jar包是非常正常的。 比如下面的例子&#xff0c;我…

内存管理机制SLAB

1. 为什么需要内存分配管理&#xff1f;为什么需要SLAB&#xff1f; 在学习c语言时&#xff0c;我们常常会使用到malloc()去申请一块内存空间&#xff0c;用于存放我们的数据&#xff0c;这是代码层面的语言 如果我们想要关心malloc这个命令向系统发出后&#xff0c;系统会做什…

HTMLCSSJS

HTML基本结构 <html><head><title>标题</title></head><body>页面内容</body> </html> html是一棵DOM树, html是根标签, head和body是兄弟标签, body包括内容相关, head包含对内容的编写相关, title 与标题有关.类似html这种…

cdp集群扩容节点磁盘挂载失败原因和解决办法

问题说明 之前在对cdp集群扩容节点环境配置时 按照文档挂载磁盘 在最后一步挂载时&#xff0c;发现有块磁盘没挂载上去 可以看到本该挂载到/data5目录的磁盘sdf1被挂到了/data1上面 查看挂载点文件 vim /etc/fstab问题分析&#xff1a; 发现之前在设置挂载点的时候挂载目录…

gpt4.0中文版

我愿把这个网站成为全球最强AI网站&#xff01;弄100多个AI伺候你&#xff1f;&#xff1f; 家人们&#xff0c;你们猜我发现了什么牛逼的AI网站&#xff1f;&#xff1f; 直接上图&#xff1a; 编辑 这个网站&#xff0c;聚合了国内外100多个顶尖的AI&#xff0c;包括了Op…