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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

Collection与数据结构 链表与LinkedList(三):链表精选OJ例题(下)

1. 分割链表 OJ链接 class Solution {public ListNode partition(ListNode head, int x) {if(head null){return null;//空链表的情况}ListNode cur head;ListNode formerhead null;ListNode formerend null;ListNode latterhead null;ListNode latterend null;//定义…

计算机网络-HTTP相关知识-RSA和ECDHE及优化

HTTPS建立基本流程 客户端向服务器索要并验证服务器的公钥。通过密钥交换算法&#xff08;如RSA或ECDHE&#xff09;协商会话秘钥&#xff0c;这个过程被称为“握手”。双方采用会话秘钥进行加密通信。 RSA流程 RSA流程包括四次握手&#xff1a; 第一次握手&#xff1a;客户…

Python可视化之Matplotlib

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1、解决坐标轴刻度负号乱码2、解决中文乱码问题3、图形展现形式 一、图形绘制1.折线图plot2.散点图plot&scatter3.柱状图plt.bar&条形图plt.barh4.直方…

探索设计模式的魅力:简单工厂模式

个人主页: danci_ &#x1f525;系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;探索设计模式的魅力&#xff1a;简单工厂模式 简单工厂模式&#x…

Prometheus+grafana环境搭建MongoDB(docker+二进制两种方式安装)(五)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前四篇mongodb的exporter坑也挺多总结一下各种安装方式&#xff0c;方便后续考古。 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabb…

Redis面试题28道

1、什么是类加载器&#xff0c;类加载器有哪些&#xff1f; 1、什么是类加载器&#xff1f; 类加载器负责加载所有的类&#xff0c;其为所有被载入内存的类生成一个 java.lang.Class 实例对象。 2、类加载器有哪些&#xff1f; JVM 有三种类加载器&#xff1a; &#xff08…

软考--软件设计师(软件工程总结2)

目录 1.测试方法 2.软件项目管理 3.软件容错技术 4.软件复杂性度量 5.结构化分析方法&#xff08;一种面向数据流的开发方法&#xff09; 6.数据流图 1.测试方法 软件测试&#xff1a;静态测试&#xff08;被测程序采用人工检测&#xff0c;计算机辅助静态分析的手段&…

GraphSage

背景 大型图中节点的低维嵌入在各种预测任务中非常有用。GraphSage是一种通用的归纳框架&#xff0c;它利用节点特征信息&#xff08;例如&#xff0c;文本属性&#xff09;有效地为以前看不见的数据生成节点嵌入。相比于对每个节点训练单独的嵌入&#xff0c;GraphSage学习了一…

Hyper-v平台搭建pve系统之网络配置(双网卡、内外网分离)

现在我需要在我本地配置的PVE系统上配置双网卡&#xff0c;然后一个连接外部网络&#xff08;访问互联网&#xff09;&#xff0c;一个连接内部网络&#xff08;只能和宿主机之间互相访问&#xff09; 最终效果&#xff1a; 登录PVE平台&#xff0c;我可以正常访问外网&#…

用html写一个爱心

<!DOCTYPE html> <html lang"zh-CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><title>爱您</title><style>* {padding: 0;margin: 0;}body {background-color: pin…

铁山靠之数学建模-基础篇

小黑子的数模基础篇 一、什么是数学建模1.1 数学模型分类1.2 备战准备什么1.3 组队学习路线1.4 赛前准备1.5 赛题选择1.5.1 赛题类型1.5.2 ABC赛题建议 1.6 学会查询1.6.1 百度搜索技巧1.6.2 查文献1.6.3 数据预处理 1.7 建模全过程 二、数模论文2.1 论文排版2.2 标题怎么写2.3…

前端学习之BOM编程-window对象、history对象、navigator对象、location对象

window对象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>widnow对象</title><style>div{width: 2000px;height: 4000px;background-image: linear-gradient(to bottom right,red,blue…

JVM调优参数介绍

堆配置 -Xms:初始堆大小 -Xms&#xff1a;最大堆大小 -XX:NewSizen:设置年轻代大小 -XX:NewRation:设置年轻代和年老代的比值。如&#xff1a;为3表示年轻代和年老代比值为1&#xff1a;3&#xff0c;年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRation:年轻代中Eden区与…

计组第三版书例题

基础知识过一下 存储器与CPU的连接主要通过数据总线、地址总线和控制总线实现。CPU首先向存储器发送地址信号&#xff0c;然后发出读写控制信号&#xff0c;最后在数据总线上进行数据的读写操作 。这种连接方式确保了CPU能够正确地访问和控制存储器中的数据。 https://blog.cs…

ES6学习(五)-- Module 语法

文章目录 Module 语法1.1 痛点介绍(1) 异步加载(2) 私密(3) 重名(4) 依赖 1.2 解决方法(1) 解决异步加载问题(2) 解决私密问题(3) 重名解决方法(4) 解决依赖问题 1.3 模块化使用案例 Module 语法 之前js 出现的某些痛点&#xff1a; 在script 中引入的变量名不可以重复&#…

Day:003 | Python爬虫:高效数据抓取的编程技术(爬虫基础)

urllib发送get请求 在目前网络获取数据的方式有多种方式&#xff1a;GET方式大部分被传输到浏览器的html&#xff0c;images, js,css, … 都是通过GET 方法发出请求的。它是获取数据的主要方法 例如&#xff1a;www.baidu.com 搜索 Get请求的参数都是在Url中体现的,如果有中…

SQLAlchemy 建立数据库模型之间的关系

常见关系&#xff1a; 一对多关系多对一关系多对多关系一对一关系 一对多关系&#xff08;一个作者&#xff0c;多篇文章&#xff09; ## 一对多关系&#xff0c;单作者-多文章&#xff0c;外键不可少 ## 外键(ForeignKey)总在多的那边定义,关系(relationship)总在单的那边定…

12-项目部署_持续集成

项目部署_持续集成 1 今日内容介绍 1.1 什么是持续集成 持续集成&#xff08; Continuous integration &#xff0c; 简称 CI &#xff09;指的是&#xff0c;频繁地&#xff08;一天多次&#xff09;将代码集成到主干 持续集成的组成要素 一个自动构建过程&#xff0c; 从…

华为ensp中ospf多区域管理 原理及配置命令(详解)

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; ————前言———— OSPF 多区域的主要作用是缩小链路状态数据库和路由表的规模&#xff0c;减少路由更新的频率&#xff0c;提高网络的可扩展性&#xff0c;实现路由过滤和路由汇总&#xff0…