CN109189520A - 一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 - Google Patents
一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 Download PDFInfo
- Publication number
- CN109189520A CN109189520A CN201810845264.5A CN201810845264A CN109189520A CN 109189520 A CN109189520 A CN 109189520A CN 201810845264 A CN201810845264 A CN 201810845264A CN 109189520 A CN109189520 A CN 109189520A
- Authority
- CN
- China
- Prior art keywords
- car speed
- qml
- pointer
- initial position
- animation attributes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于QML动画属性实现汽车仪表指针平滑转动的方法及系统,该方法包括步骤:S11.接收CAN总线上获得的当前汽车速度;S12.判断所述当前汽车速度与上一次接收的汽车速度是否发生变化,若是,跳到步骤S13;S13.根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;S14.将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;S15.驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。本发明利用QML动画属性来实现指针的实时平滑转动,使得汽车速度发生变化后,只需发送一次emit信号,占用资源极少,即使在资源占用率高的情况下,也可以让指针的实时性和平滑性得到保障。
Description
技术领域
本发明涉及仪表指针显示技术领域,尤其涉及一种基于QML动画属性实现汽车仪表指针平滑转动的方法及系统。
背景技术
仪表指针,是指用于仪表上指示数据的零部件。指针的功能就是以比较客观直接的方式指示复杂的数据结构。汽车仪表指针就是指示汽车行驶速度的仪表指针。
目前,现有技术中对指针平滑处理并不理想,现有技术中对指针实时平滑处理是基于C++来实现,将指针指向的起始位置和终止位置将起始位置和终止位置在一段时间内等分移动来解决指针实时平滑的问题,这种情况在资源充足的情况下,完全是没有问题的,比如QT程序在电脑中模拟运行时,指针的转动非常平滑,也很及时,但是当我们把程序放在IMX6D上运行时,尤其在开机的过程中,由于要加载主题以及有开机动画的展示,此时的资源占用率极高,这种情况下,指针实时性非常差,总是滞后实际数值数秒钟,例如在使用分辨率为1440*540的界面时,由于界面的图层较多加载需要一定的时间,而且刚开机时,由于有复杂的动画展示,导致了资源占用率极高,QML没有及时响应C++中的emit信号。由于C++逻辑处理是等分起始位置和终止位置,这里从串口接受到的数值变化一次,需要启动数百次定时器和发送数百次emit信号通知QML来不断的刷新界面或则更多次,由于处于开机过程中,资源很紧张,所以来不及响应emit信号,就会导致界面数值与实际数值不符的情况。
公开号为CN 106357176A的专利公开了一种智能农机仪表指针转动的平滑处理方法,包括以下步骤:S01:农机智能仪表PWM脉宽调制模快的第一定时器、第二定时器、占空比设定单元、比较器和使能控制位完成初始化,完成PCA时钟源选择和中断工作方式确定,设定PWM使能和占空比;本申请可以通过改变减速点使指针的移动速度平滑地从上个位置移动到当前数据指向的位置,越趋近移动越缓慢,减小指针由于惯性摆动的问题。本申请采用软件驱动PWM脉宽调制模块对模拟信号电平进行数字编码控制PWM脉冲的占空比改变步进电机的平均电流来改变旋转速度变化量,成本低、容易升级兼容性强。虽然该方法可以使得指针转动平滑,但是该方法无法保证指针转动的实时性。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种基于QML动画属性实现汽车仪表指针平滑转动的方法及系统,主要解决在资源占用率较高的情况下指针实时性差,指针指示数值总是滞后实际数值的问题。
为了实现以上目的,本发明采用以下技术方案:
一种基于QML动画属性实现汽车仪表指针平滑转动的方法,包括步骤:
S1.接收CAN总线上获得的当前汽车速度;
S2.判断所述当前汽车速度与上一次接收的汽车速度是否发生变化,若是,跳到步骤S3;
S3.根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
S4.将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
S5.驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
进一步的,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的。
进一步的,所述预设倍数为100倍。
进一步的,所述预设个数为1000。
进一步的,所述预设时间段为100ms。
相应的,还提供一种基于QML动画属性实现汽车仪表指针平滑转动的系统,包括:
接收模块,用于接收CAN总线上获得的当前汽车速度;
判断模块,用于判断所述当前汽车速度与上一次接收的汽车速度是否发生变化;
确定模块,用于在所述当前汽车速度与上一次接收的汽车速度发生变化时根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
等分模块,用于将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
驱动模块,用于驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
进一步的,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的。
进一步的,所述预设倍数为100倍。
进一步的,所述预设个数为1000。
进一步的,所述预设时间段为100ms。
与现有技术相比,本发明利用QML动画属性来实现指针的实时平滑转动,使得汽车速度发生变化后,只需发送一次emit信号,占用资源极少,即使在资源占用率高的情况下,也可以让指针的实时性和平滑性得到保障。
附图说明
图1是实施例一提供的一种基于QML动画属性实现汽车仪表指针平滑转动的方法流程图;
图2是实施例二提供的一种基于QML动画属性实现汽车仪表指针平滑转动的系统结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
实施例一
本实施例提供一种基于QML动画属性实现汽车仪表指针平滑转动的方法,如图1所示,包括步骤:
S11.接收CAN总线上获得的当前汽车速度;
S12.判断所述当前汽车速度与上一次接收的汽车速度是否发生变化,若是,跳到步骤S13;
S13.根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
S14.将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
S15.驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
本实施例的一种基于QML动画属性实现汽车仪表指针平滑转动的方法的执行主体为汽车仪表内控制指针转动的图形处理单元GPU,所述GPU通过烧入QML脚本语言实现对指针转动的控制。本发明就时利用所述QML的动画属性实现仪表指针的实时平滑转动,摒弃了复杂的C++逻辑算法。
需要说明的是,其中QML是Qt推出的Qt Quick技术的一部分,是一种新增的简便易学的语言。QML是一种陈述性语言,用来描述一个程序的用户界面:无论是什么样子,以及它如何表现,在QML,一个用户界面被指定为具有属性的对象树。
需要说明的是,其中GPU是图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。在本发明中就是利用GPU将汽车控制系统中获取的汽车行驶速度进行显示。
在本实施例中,首先,GPU会接收CAN总线上获得的当前汽车速度,然后将当前的汽车速度与上一次接收的汽车速度进行对比,判断汽车速度是否发生变化。
其中,CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,在本实施例中国的汽车就是使用CAN总线为汽车的汽车计算机控制系统和嵌入式工业控制局域网的标准总线
具体的,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的,所述的预设倍数为100倍,因为在汽车行驶过程中,有时候速度的变化是非常小的,而通过扩大一定的倍数,这样就可以很明显判断出速度的变化。需要说明的是,由于GPU从CAN总线上获得汽车速度时,汽车速度已经被扩大了10倍,所以这里实际速度是扩大了1000倍。
若当前汽车速度与上一次接收的汽车速度发生变化后,则根据当前的汽车速度和上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置,即上一次接收的汽车速度为指针指向的起始位置,当前汽车速度为指针指向的终止位置。然后将该起始位置和终止位置中间的区域等分成预设个数的起始位置和终止位置,所述的预设个数为1000,例如,速度0-1000变化,那么就分成起始位置和终止位置分别为[0,1]、[1,2]、[2,3]……[998,999]、[999,1000]这1000个起始位置和终止位置,需要说明的是,这里的起始数值是上次从CAN总线接收到速度数值,终止位置是当前从CAN总线接收到的速度数值。然后在QML动画里面,进行int类型的变化,也就是逐渐加一或减一变化,每变化一次,GPU会根据坐标位置重新绘制。由于绘制很快,所以看起来是进行旋转运动,可以保证指针转动的平滑性,并且整个过程只需要发送一次emit信号,而并不需要分成1000段而发送1000次emit信号,占用资源极少,即使在资源占用率高的情况下,也可以让指针的实时性和平滑性得到保障。
需要说明的是,emit信号是一个发射信号,在本实施例中主要是用来触发指针的转动。
作为一种优选的实施例,可以通过以下代码来实现本实施例:
其中HtCarStatus.speed是真实速度,也就是仪表上指针将要指向的速度,property int speedA:HtCarStatus.speed*100这里的speedA是一个变量来保存HtCarStatus.speed*100这个值得,如果HtCarStatus.speed这个发生了变化,那么speedA这个值也就发生了变化,当speedA这个值发生了变化onSpeedAChanged这个槽函数就要执行(即相当于给onSpeedAChanged这个槽函数发送一次emit信号)。这里的property intspeedA:HtCarStatus.speed*100也可以写成property int speedA:HtCarStatus.speed,speedA这个变量其实就是起到一个检测HtCarStatus.speed这个值发生变化的作用。
speedT这个变量是个中间变化过程的临时变量,比如0-1000变化,speedT这个值会从0,1,2,3,4……998,999,1000变化。这要做目的就是自己规定其间隔大小,好在对资源效率和平滑效果上均衡把握。
实施例二
本实施例提供一种基于QML动画属性实现汽车仪表指针平滑转动的系统,与实施例一提供的一种基于QML动画属性实现汽车仪表指针平滑转动的方法一一对应,如图2所示,包括:
接收模块11,用于接收can总线上获得的当前汽车速度;
判断模块12,用于判断所述当前汽车速度与上一次接收的汽车速度是否发生变化;
确定模块13,用于在所述当前汽车速度与上一次接收的汽车速度发生变化时根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
等分模块14,用于将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
驱动模块15,用于驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
具体的,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的。
具体的,所述预设倍数为100倍。
具体的,所述预设个数为1000。
具体的,所述预设时间段为100ms。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于QML动画属性实现汽车仪表指针平滑转动的方法,其特征在于,包括步骤:
S1.接收CAN总线上获得的当前汽车速度;
S2.判断所述当前汽车速度与上一次接收的汽车速度是否发生变化,若是,跳到步骤S3;
S3.根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
S4.将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
S5.驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
2.根据权利要求1所述的一种基于QML动画属性实现汽车仪表指针平滑转动的方法,其特征在于,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的。
3.根据权利要求2所述的一种基于QML动画属性实现汽车仪表指针平滑转动的方法,其特征在于,所述预设倍数为100倍。
4.根据权利要求1所述的一种基于QML动画属性实现汽车仪表指针平滑转动的方法,其特征在于,所述预设个数为1000。
5.根据权利要求1所述的一种基于QML动画属性实现汽车仪表指针平滑转动的方法,其特征在于,所述预设时间段为100ms。
6.一种基于QML动画属性实现汽车仪表指针平滑转动的系统,其特征在于,包括:
接收模块,用于接收CAN总线上获得的当前汽车速度;
判断模块,用于判断所述当前汽车速度与上一次接收的汽车速度是否发生变化;
确定模块,用于在所述当前汽车速度与上一次接收的汽车速度发生变化时根据所述当前汽车速度以及所述上一次接收的汽车速度来确定仪表指针指向的起始位置和终止位置;
等分模块,用于将所述起始位置和终止位置等分成预设个数的起始位置和终止位置;
驱动模块,用于驱动仪表指针在预设时间段内按所述等分成预设个数的起始位置和终止位置的顺序进行转动。
7.根据权利要求6所述的一种基于QML动画属性实现汽车仪表指针平滑转动的系统,其特征在于,所述判断所述当前汽车速度与上一次接收的汽车速度是否发生变化是通过将当前汽车速度与上一次接收的汽车速度同时扩大预设倍数来进行判断的。
8.根据权利要求7所述的一种基于QML动画属性实现汽车仪表指针平滑转动的系统,其特征在于,所述预设倍数为100倍。
9.根据权利要求6所述的一种基于QML动画属性实现汽车仪表指针平滑转动的系统,其特征在于,所述预设个数为1000。
10.根据权利要求6所述的一种基于QML动画属性实现汽车仪表指针平滑转动的系统,其特征在于,所述预设时间段为100ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845264.5A CN109189520A (zh) | 2018-07-27 | 2018-07-27 | 一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845264.5A CN109189520A (zh) | 2018-07-27 | 2018-07-27 | 一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109189520A true CN109189520A (zh) | 2019-01-11 |
Family
ID=64937358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810845264.5A Pending CN109189520A (zh) | 2018-07-27 | 2018-07-27 | 一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189520A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188539A (zh) * | 1996-04-11 | 1998-07-22 | 日本精机株式会社 | 步进电动机式计量仪的驱动装置 |
JP2004325155A (ja) * | 2003-04-23 | 2004-11-18 | Calsonic Kansei Corp | 車両計器装置の検査方法および検査装置並びに車両計器装置用検査プログラム |
CN102843082A (zh) * | 2012-09-06 | 2012-12-26 | 山东省科学院自动化研究所 | 一种步进电机式汽车仪表指针自适应控制算法 |
CN103134941A (zh) * | 2013-01-31 | 2013-06-05 | 中国航空无线电电子研究所 | 显示仪表盘指针转动的平滑处理方法 |
JP2015215283A (ja) * | 2014-05-13 | 2015-12-03 | 日本精機株式会社 | 車両用表示装置 |
CN106357176A (zh) * | 2016-09-28 | 2017-01-25 | 上海雷尼威尔技术有限公司 | 智能农机仪表指针转动的平滑处理方法 |
CN106406360A (zh) * | 2016-08-31 | 2017-02-15 | 惠州华阳通用电子有限公司 | 一种虚拟仪表指针旋转控制方法及装置 |
CN107797840A (zh) * | 2017-11-08 | 2018-03-13 | 苏州蓝博控制技术有限公司 | 同界面多表盘指针平滑转动控制方法及系统 |
-
2018
- 2018-07-27 CN CN201810845264.5A patent/CN109189520A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188539A (zh) * | 1996-04-11 | 1998-07-22 | 日本精机株式会社 | 步进电动机式计量仪的驱动装置 |
JP2004325155A (ja) * | 2003-04-23 | 2004-11-18 | Calsonic Kansei Corp | 車両計器装置の検査方法および検査装置並びに車両計器装置用検査プログラム |
CN102843082A (zh) * | 2012-09-06 | 2012-12-26 | 山东省科学院自动化研究所 | 一种步进电机式汽车仪表指针自适应控制算法 |
CN103134941A (zh) * | 2013-01-31 | 2013-06-05 | 中国航空无线电电子研究所 | 显示仪表盘指针转动的平滑处理方法 |
JP2015215283A (ja) * | 2014-05-13 | 2015-12-03 | 日本精機株式会社 | 車両用表示装置 |
CN106406360A (zh) * | 2016-08-31 | 2017-02-15 | 惠州华阳通用电子有限公司 | 一种虚拟仪表指针旋转控制方法及装置 |
CN106357176A (zh) * | 2016-09-28 | 2017-01-25 | 上海雷尼威尔技术有限公司 | 智能农机仪表指针转动的平滑处理方法 |
CN107797840A (zh) * | 2017-11-08 | 2018-03-13 | 苏州蓝博控制技术有限公司 | 同界面多表盘指针平滑转动控制方法及系统 |
Non-Patent Citations (1)
Title |
---|
王璐: ""基于CAN总线的嵌入式汽车仪表设计", 《微型机与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662557B (zh) | 移动终端和解锁方法 | |
CN105353936B (zh) | 一种显示方法及电子设备 | |
CN109388467A (zh) | 地图信息显示方法、装置、计算机设备及存储介质 | |
CN106600521A (zh) | 一种图像处理方法及终端设备 | |
CN109213607B (zh) | 一种多线程渲染的方法和装置 | |
CN105867727A (zh) | 多应用界面的显示方法和装置 | |
CN110689862B (zh) | 一种屏幕亮度调节方法及移动终端 | |
WO2024041328A1 (zh) | 资源分配的方法、装置和运载工具 | |
CN108268197A (zh) | 反向控制方法、移动设备、车载显示设备及系统 | |
CN110825467A (zh) | 渲染方法、装置、硬件装置和计算机可读存储介质 | |
CN109189520A (zh) | 一种基于qml动画属性实现汽车仪表指针平滑转动的方法及系统 | |
CN105739936B (zh) | 一种用户终端控制方法及用户终端 | |
CN109649261A (zh) | 车辆转向灯的控制方法及装置、处理器 | |
CN103823651B (zh) | 一种信息处理的方法及电子设备 | |
CN108279956B (zh) | 进度指示方法及进度指示装置、存储介质、电子设备 | |
CN108614661B (zh) | 基于智能终端的可交互对象显示控制方法及智能终端 | |
CN111785229B (zh) | 一种显示方法、装置及系统 | |
CN114780012B (zh) | 电子设备的锁屏壁纸的显示方法和相关装置 | |
CN109189537B (zh) | 页面信息的动态显示方法、计算设备及计算机存储介质 | |
CN116521111A (zh) | 车机屏幕的多屏显示方法、装置、车辆及存储介质 | |
CN106648623A (zh) | 一种安卓系统中字符的显示方法及装置 | |
CN110503702A (zh) | 一种全液晶数字仪表硬件图层分层处理方法及装置 | |
CN109398362A (zh) | 驾驶意图的识别方法及系统 | |
CN105160697A (zh) | 一种信息处理方法及电子设备 | |
US9950270B2 (en) | Electronic device and method for controlling toy using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |
|
RJ01 | Rejection of invention patent application after publication |