先楫HPM6800之HMI软件工具(三) : QD PLUS 快速上手

2024-12-16
浏览量:
475

1、核心优势:操作简便,快速上手

QD Plus(QuodiX) 工具提供了直观的界面和便捷的操作流程。UI 设计师只需导入设计好的图片(如PNG、JPG 等常见格式),通过拖拽和设置事件,即可快速完成界面的布局和动画效果。无需复杂的编程知识,即使是新手也可通过观看帮助视频后,1到2个小时内掌握基本的用法。


2、QD Plus工具界面介绍

(1)主界面介绍


(2)Application界面介绍


(3)Resource界面介绍


(4)Event Action界面介绍


3. QD Plus(QuodiX)的API使用简单

QD Plus 是一款非常简化的HMI工具,专为开发人员设计,使其能够快速、便捷地操作。该工具只提供2个API接口且开放C源码,其中常用的仅1个——`hmi_engine_set_object_info`,这极大地简化了操作过程。使用该API,开发人员可以控制界面上的几乎所有元素,如按钮、图片、动画、事件、多语言切换等。

通过这样简洁的API设计,开发者无需编写冗长复杂的代码,便可轻松完成显示和交互效果。


1:例如,仅需简单一行代码,就可以改变元素(例如:QD Plus中图片元素的名字是my_img)的显示属性:

hmi_engine_set_object_info(HMI_NEW_PAGE3, HMI_ACTIVE_PAGE_BIT);/*显示new_page3画面*/

hmi_engine_set_object_info(HMI_MY_IMG_X, 77);/*设置my_img的x坐标 77*/

hmi_engine_set_object_info(HMI_MY_IMG_Y, 99);/*设置my_img的y坐标99。*/

hmi_engine_set_object_info(HMI_MY_IMG_ALPHA, 200);/*设置my_img的整体Alpha透明度200。*/

例如:QD Plus中text元素的名字是my_text_1时,设置text中的字体颜色

hmi_engine_set_object_info(HMI_MY_TEXT _1_COLOR,0xffaabbcc/*argb8888*/);/* 设置my_text_1字符串的颜色*/


2:例如:触发QD Plus(QuodiX)中设计好的一个动画事件。

hmi_engine_set_object_info(HMI_MY_EVENT,HMI_SEND_EVENT_ON);/*my event事件出发后,这个动画就会持续的运行,直到结束*/

其中:HMI_MY_IMG_X(代表my_img元素的x坐标),HMI_MY_IMG_Y(代表my_img元素的y坐标),HMI_MY_IMG_ALPHA(代表my_img元素的alpha),HMI_MY_TEXT _1(代表my_text_1元素),

HMI_MY_TEXT _1_COLOR(代表my_text_1元素的颜色),HMI_MY_EVENT是QD Plus工具生成代码时,生成的枚举类型。我们通过这些元素的枚举类型去操作元素的属性和树状的包含关系。


3:设置显示多语言。

hmi_engine_set_object_info(HMI_LANGUAGE,HMI_ENGLISH);/*设置显示语言english*/
hmi_engine_set_object_info(HMI_LANGUAGE,HMI_CHINESE);/*设置显示语言chinese*/

其中HMI_ENGLISH,HMI_CHINESE是在QD Plus中设置的语言生成的对应的枚举类型。

4:例如:改变一个树中dyn_con节点的包含不同子树的关系。例如:用来切换主题

如上图,两个名为stc_con,stc1_con(静态容器,容器中可以放其它元素)都属于名为dyn_con(动态容器,类似多路开关,某一时刻只能连通子节点中的其中一路或全部关闭)节点的子节点,此时可以通过改变dyn_con容器的值决定dyn_con是连通st_con还是stc1_con.

hmi_engine_set_object_info(HMI_DYN_CON,HMI_STC_CON);/*dyn_con连通stc_con*/
hmi_engine_set_object_info(HMI_DYN_CON,HMI_STC1_CON);/*dyn_con连通stc1_con*/
hmi_engine_set_object_info(HMI_DYN_CON,HMI_DYN_CONTAINER_IS_NULL);/*dyn_con关闭.HMI_DYN_CONTAINER_IS_NULL是QD Plus定义好的宏*/

5:第二个API:hmi_engine_edit_text .唯一的用途就是改变text元素的字符串内容。

例如:QD Plus中text元素的名字是my_text_1时。下面设置my_text_1新的字符串内容

HMI_CHAR_STR speed[3]={'1','0',0/*字符串结束标记*/};/*使用GBK汉字编码*/

hmi_engine_edit_text(HMI_MY_TEXT _1,speed);


6:再写API时,我们不需要记忆每个元素的ID(例如:上面出现过的HMI_MY_IMG_X等),而是直接在QD Plus中,把要操作的元素的ID和对应的API复制到黏贴版中。然后再黏贴到代码里面。如下图。

下面是QD Plus API操作界面示例:

操作视频画面:

https://www.bilibili.com/video/BV1pm2EY2E6b/?share_source=copy_web&vd_source=7258d8aa5251054c1d4c51d8c4cc2a02(请手动跳转)

(1)获取控制图片的x坐标的ID和对应的API。

然后在编写代码的地方CTRL+V,黏贴如下(我们仅仅需要填入下面API的第二个参数):

hmi_engine_set_object_info(HMI_NEW_IMAGE7_X, );

(2) 获取控制图片的y坐标和对应的API。

然后在编写代码的地方CTRL+V,黏贴如下(我们仅仅需要填入下面API的第二个参数):

hmi_engine_set_object_info(HMI_NEW_IMAGE7_Y, );

(3) 获取控制图片的透明度值和对应的API。

然后在编写代码的地方CTRL+V:黏贴如下(我们仅仅需要填入下面API的第二个参数):

hmi_engine_set_object_info(HMI_NEW_IMAGE7_ALPHA, );

(4) 获取控制图片的旋转角度和对应的API。

然后在编写代码的地方CTRL+V:黏贴如下(我们仅仅需要填入下面API的第二个参数):

hmi_engine_set_object_info(HMI_NEW_IMAGE7_ANGEL,HMI_F32_TO_U32(0/*angle*/) );


API的学习成本极低,即使是没有太多编程经验的初学者,也能在短短5分钟内掌握API的使用方式,极大缩短了开发时间。对于需要快速响应的UI设计项目,QD Plus 的API设计无疑提高了效率。看到这里,恭喜你,你已经掌握了QD Plus的全部API。


教学视频下载链接:

(1)QD Plus培训教程

https://www.bilibili.com/video/BV15pWJeAEYn/

(2)QD Plus插件培训

https://www.bilibili.com/video/BV19WWJeaESC/

帮助文档下载链接:

http://www.qd-plus.cn/wp-content/uploads/2024/05/QD-Plus-版详细介绍_2024_1_04.docx

http://www.qd-plus.cn/wp-content/uploads/2024/05/custom_lib_2024_0408.docx

观看QD Plus的显示效果,微信视频号搜索:QD做图工具


4:QD Plus(QuodiX)工具的操作

所有的操作,都可以归结为在对应的节点上点击鼠标右键,然后在弹出的菜单里面,选择想要的操作。熟悉后,可以直接用快捷键。

(1) 新建一张page(快捷键为F9)。page就是一个画面,可以包含很多子节点。

(2)在该page下新建一个container(快捷键为F5)

(3)新添加一张图片(快捷键为F7)

(4) 新添加一个fill(快捷键为F8)

(5) 添加一个spline(快捷键为F12)

还有很多添加元素操与上述图中操作步骤相同,也可直接在根节点添加对应的元素如下图:


5:QDPlus(QuodiX)动画模拟播放

如下图是已经做好了的一个动画,选中该动画点击由下图红框中的标记:

点击Run Action便会弹出下图,Select Element选择框,先点击红色选择page(就是一个画面),便可看到绿框中的所有page,选择要播放的Page后,点击ok即可播放。因为一个动画的可能被多个page包含,所以需要选择在哪个page里面播放动画。

模拟播放动画动作的画面。例如,一张图片沿着Bezier曲线运动。

(1)QD Plus(QuodiX)一张图片沿bezier曲线运动

https://www.bilibili.com/video/BV1cX2EYVEL3

(2)模拟播放动图片的透明度,沿着Bezier的Y变化的动画。

https://www.bilibili.com/video/BV1Mr2nYbELL


6、更多内容

提供VS 2015的模拟项目,可以让客户没有硬件的情况下,在这个里面编写代码,QD Plus的资源也生成到指定的目录下,调试。后期可以无缝复制到有硬件的项目里面。


QD Plus的API框架是一个HMI线程,周期性的运行(一般情况下60次/秒),每调用一次就会自动调用hmi_user_process(HMI_TIME dt, TOUCH_BUTTON_STR *pbutton)函数,用户可以在这里调用控制显示API.

其中HMI_TIME dt是上次调用到本次调用经过的多少秒。


TOUCH_BUTTON_STR *pbutton是返回的触摸屏消息。pbutton有2个元素在hmi_user_interface.c文件中的void hmi_user_process(HMI_TIME dt, TOUCH_BUTTON_STR *pbutton)函数里添加以下UI控制代码,即可实现播放。

橙色字体为该动画动作的ID,直接在QD Plus工具中可以获取,选中动画,操作和获取图片ID步骤一致也可使用快捷键(shift+i)。然后再黏贴到 hmi_user_process()里面。

hmi_engine_set_object_info(HMI_LEFT_MOTION_ACTION_ENTRY,HMI_ACTION_RUN );


模拟器显示的视频动画:QD Plus(QuodiX) 电脑模拟显示

https://www.bilibili.com/video/BV1UzxCexEVH/?share_source=copy_web&vd_source=7258d8aa5251054c1d4c51d8c4cc2a02

QD Plus

上海驻利电子成立于2011年10月成立,位于上海松江。主要业务范围:汽车仪表,座舱系统的显示软件开发以及开发QDPlus 界面设计工具。目前公司三十余人,其中研发人员90%,核心人员都是在汽车显示行业拥有10年以上软件开发经验。利用QD Plus工具为客户开发仪表、座舱显示软件。根据客户需求增加和改善QD Plus相关功能,以更好的满足客户使用工具的需求,加快工具开发效率。


先楫半导体

“先楫半导体”(HPMicro)是一家致力于高性能嵌入式解决方案的半导体公司,产品覆盖微控制器、微处理器和周边芯片,以及配套的开发工具和生态系统。公司成立于2020年6月,总部坐落于上海市浦东软件园区,并在天津、苏州、深圳和杭州均设立分公司。核心研发团队来自世界知名半导体公司团队,具有15年以上、超过20个SoC的丰富的开发及量产经验。市场及销售团队来自全球领先半导体分销公司,管理近10亿美金的半导体元器件年销售额,服务超过5000家中国区客户。先楫半导体以产品质量为本,所有产品均通过严格的可靠性测试。目前已经量产6大系列高性能通用MCU产品,产品性能及通用性领先国际同类产品并通过AEC-Q100认证。公司已完成ISO9001质量管理和ISO 26262/IEC61508功能安全管理体系双认证,全力服务中国乃至全球的工业、汽车和能源市场。更多信息,请访问 https://hpmicro.com/