当前位置: 首页 > news >正文

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

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)创建。

相关文章:

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

SWM341系列之上位机应用 1、分级图像和PNG、JPG的应用 现象&#xff1a;客户使用SWM34SVET6HMI_0.4.1版本上位机进行UI界面布局&#xff0c;反馈在模拟运行时&#xff08;PC端&#xff09;流畅&#xff0c;在Demo平台&#xff08;设备端&#xff09;运行卡顿。 分析及解决&…...

【软件工程】详细设计(一)

1. 引言 1.1 编写目的 该文档的目的是描述《学生成绩管理系统》项目的详细设计&#xff0c;其主要内容包括&#xff1a; 系统功能简介 系统详细设计简述 各个模块的实现逻辑 最小模块组件的伪代码 本文档的预期的读者是&#xff1a; 开发人员 项目管理人员 测试人员 …...

【AIGC】如何在Windows/Linux上部署stable diffusion

文章目录 整体安装步骤windows10安装stable diffusion环境要求安装步骤注意事项参考博客其他事项安装显卡驱动安装cuda卸载cuda安装对应版本pytorch安装git上的python包Q&A linux安装stable diffusion安装anaconda安装cudagit 加速配置虚拟环境挂载oss&#xff08;optional…...

基于java实现的弹幕视频网站

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…...

【大数据存储】实验4 NoSQL数据库

实验4 NoSQL数据库 NoSQL数据库的安装和使用实验环境&#xff1a; Ubuntu 22.04.3 Jdk 1.8.0_341 Hadoop 3.2.3 Hbase 2.4.17 Redis 6.0.6 mongdb 6.0.12 mogosh 2.1.0 Redis 安装redis完成 新建终端启动redisredis-server新建一个终端redis-cli 建表操作 尝…...

从零学算法80

80. 删除有序数组中的重复项 II 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外…...

Jupyter notebook文件默认存储路径以及更改方法

初次使用Jupyter Notebook&#xff0c;确实好用啊&#xff01;但安装Anaconda后&#xff0c;打开Jupyter Notebook 的时候&#xff0c;新建文件的默认存储路径一般在C系统盘下面的XXX目录&#xff0c;那么路径是什么呢&#xff1f;我想把文件保存到其他的文件夹下应该怎么做呢&…...

WPF中通过自定义Panel实现控件拖动

背景 看到趋时软件的公众号文章&#xff08;WPF自定义Panel&#xff1a;让拖拽变得更简单&#xff09;&#xff0c;发现可以不通过Drag的方法来实现ListBox控件的拖动&#xff0c;而是通过对控件的坐标相加减去实现控件的位移等判断&#xff0c;因此根据文章里面的代码,边理解边…...

Centos7安装Docker与Docker-compose【图文教程】

个人记录 查看一下系统是否已经安装了Docker yum list installed | grep docker如下图代表没有安装Docker 卸载已有Docker yum remove docker docker-common docker-selinux docker-engine切换目录 cd /etc/yum.repos.d/查看当前目录所有的镜像源 ll安装yum-util与devi…...

mac电脑maven配置环境变量

1、下载maven https://maven.apache.org 2、配置环境变量 vim .bash_profile JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home PATH$JAVA_HOME/bin:$PATH export JAVA_HOME export PATH#maven export MAVEN_HOME/Users/haines/desktop/work/java/a…...

后端返还二进制excl表格数据时候,如何实现在前端下载表格功能及出现表格打开失败的异常处理。

背景&#xff1a; 后端返还一个二进制流的excl表格数据&#xff0c;前端需要对其解析&#xff0c;然后可提供给客户进行下载。 思路&#xff1a;把二进制流数据转换给blob对象&#xff0c;然后利用a标签进行前端下载。 代码&#xff1a; 后端返还 类似如下的数据 前端代码…...

搞学术研究好用免费的学术版ChatGPT网站-学术AI

学术版ChatGPThttps://chat.uaskgpt.com/mobile/?user_sn88&channelcsdn&scenelogin 推荐一个非常适合中国本科硕士博士等学生老师使用的学术版ChatGPT&#xff0c; 对接了超大型学术模型&#xff0c;利用AI技术实现学术润色、中英文翻译&#xff0c;学术纠错&#…...

vue3从精通到入门9:计算属性computed

在 Vue 3 中&#xff0c;computed 是一个用于创建计算属性的工具&#xff0c;它基于组件的响应式依赖进行复杂的计算&#xff0c;并返回一个新的响应式引用。计算属性是 Vue 的一个核心概念&#xff0c;它提供了一种声明式的方式来执行基于其依赖的响应式数据的计算。 compute…...

kafka面试常见问题

1、如何判断kafka某个主题消息堆积&#xff1f; 要判断Kafka中某个主题的消息是否堆积&#xff0c;可以通过查看该主题的生产者和消费者的偏移量&#xff08;offset&#xff09;差异来实现。Kafka中的每条消息在主题的分区内都有一个唯一的偏移量&#xff0c;生产者每发送一条…...

深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN

这里写目录标题 01HDFS02Yarn03Hive04HBase1&#xff0e;特点2&#xff0e;存储 05Spark及Spark Streaming关于作者&#xff1a;推荐理由&#xff1a;作者直播推荐&#xff1a; 一篇讲明白 Hadoop 生态的三大部件 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向…...

【chatGPT】我:在Cadence Genus软件中,出现如下问题:......【1】

我 在Cadence Genus中&#xff0c;出现如下问题&#xff1a;Error&#xff1a;A command argument did not match any of the acceptable command option. [TUI-170] [set_db] :‘/’ is not a legal option for the command. 该如何解决 ChatGPT Cadence Genus的错误消息 “…...

面试题:JVM 调优

一、JVM 参数设置 1. tomcat 的设置 vm 参数 修改 TOMCAT_HOME/bin/catalina.sh 文件&#xff0c;如下图 JAVA_OPTS"-Xms512m -Xmx1024m" 2. springboot 项目 jar 文件启动 通常在linux系统下直接加参数启动springboot项目 nohup java -Xms512m -Xmx1024m -jar…...

PS从入门到精通视频各类教程整理全集,包含素材、作业等(8)

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 B站-PS异闻录&#xff1a;萌新系统入门课课程视频 …...

VSCode安装及Python、Jupyter插件安装使用

VSCode 介绍 Visual Studio Code&#xff08;简称VSCode&#xff09;是一个由微软开发的免费、开源的代码编辑器。VSCode是一个轻量级但是非常强大的代码编辑器&#xff0c;它支持多种编程语言&#xff08;如C,C#&#xff0c;Java&#xff0c;Python&#xff0c;PHP&#xff0…...

JMeter+Grafana+influxdb 配置出现transaction无数据情况解决办法

JMeterGrafanainfluxdb 配置出现transaction无数据情况解决办法 一、问题描述二、解决方法 一、问题描述 如下图所示出现application有数据但是transaction无数据情况 二、解决方法 需要做如下设置 打开变量设置如下图打开两个选项 然后再进行后端监听器的设置 如下图所…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...