ViCANdo新版本发布(PART4)| QML集成

大家好,疫情肆虐,首先企盼早日云开雾散。此时此刻响应号召,就安静地看一看文章,为不久后马力全开的工作,积蓄更多的技术储备。

这一篇我们介绍一下如何在我们的智能驾驶开发、测试平台上面方便快捷地自定义功能。大家也可以借此机会学习了解一下QML。

QML模块界面

当我们在做任何的测试开发的工作的时候,我们都需要将各类数据采集下来,然后针对我们要做的测试或者开发对数据进行分析和使用,然而对于人类而言,枯燥的数字总难以直观方便的表现出我们想要获取的信息,诚然,在现实条件限制下,人们有极大的能动性可以去习得这个能力,正如黑客帝国中的数据终端一样,直接从数字符号中读取信息。然而如果我们可以简单高效的实现数据的信息化转换与呈现,又有什么样的理由去为难自己呢。

What is QML

首先简单说一下什么是QML,在维基百科的QML英文界面称作Qt Modeling Language,貌似曾经的名称是Qt Meta Language,我们姑且兼而用之吧,毕竟在www.qt.io网站上没有找到对于QML语言的明确定义(也可能是因为没有仔细的去找)。

QML是一种声明式语言(declarative language),它通过用户界面的可视组件以及它们之间的相互交互和关联的关系来描述用户界面。它是一种高度可读的语言,旨在使组件能够以动态方式互连,并且允许在用户界面中轻松重用和自定义组件。QML基于JavaScript,属于QtQuick的一部分。在QML文档中描述了一个关于QML元素的对象树,Qt附带的QML元素有一组复杂的基础构建模块(如矩形、图像)和行为(如状态、过渡、动画等)构成。

使用QtQuick模块,通过QML元素的组合,设计人员和开发人员可以轻松地在QML中构建从简单按钮、滑块到完全支持Internet功能的复杂程序。

而这也是为什么我们选择在ViCANdo中集成QML的原因。通过QtQuick模块任何人都可以很方便的实现自定义的用户界面的开发。如下面的截图展示了一个通过QML实现的CAN报文发送界面。

Hello World

在ViCANdo中加在QML模块非常的容易,一个简单的QML模块代码展示如下:

有兴趣的读者可以将上面的代码拷贝到一个文本文档中,然后保存成扩展名qml的文件,然后打开ViCANdo创建一个工程,在软件的Presentation菜单中,选择QML Quick 2.x presenter,然后在弹出的对话框中选择刚刚保存的QML文件。

在ViCANdo的主窗口中就会呈现出来刚刚添加的QML模块:Hello World。

Hello World is easy,但是现在你已经有能力在ViCANdo内创建任何需要的QML组件了。

细心的读者有可能已经发现截图的软件窗口和菜单和你们正在使用的有所不同,是的当前使用的是MAC版的ViCANdo软件,ViCANdo不仅仅支持Windows、Linux操作系统,也同样的支持苹果的macOS,即便是最新的Catalina。抓紧拿出手里的电脑,下载软件尝试一下吧。(下载地址:www.zuragon.com)

VideoView

在智能驾驶相关的功能测试中,视频、摄像头数据是非常重要的一环,因此能够在ViCANdo的界面针对视频数据进行处理操作是必要且必须的,比如如下的截图所展示的。我们同时监控两个摄像头数据,并在视频显示窗口叠加显示标尺,标尺可以根据需要任意调整。这在典型的测距、间距检测应用中是十分方便的(这里没有显示视频的数据,因为想要给大家保留第一次显示出视频时的惊喜)。

对于这样的界面显示实现是非常简单的。首先我们在Qt中建立一个工程,通过拖拽控件的方式建立如下图所示的界面(或者任意想要的界面形式)。

然后我们在代码编辑界面对刚才创建的工程的代码进行简单的完善,如下图所示,保存之后的qml文件就可以如hello world的例子一样加载进入ViCANdo工程中了。

“ 篇幅关系,我们没有附上所有的代码,如果有需要可以在公众号留言并留下邮箱我们会提供本例子中的完整代码给大家。”

其他的数据源

除了刚刚提到的视频数据,我们更多接触到的是总线上传输的各种信号,同样的在ViCANdo的QML功能中,我们可以方便的处理各种需要的信号。

如下的实例中我们创建了一个展示车辆各种信息的组件。可以方便的显示当前的车辆状态、速度等。

如下的实例中:

我们可以以前视、俯视、侧视等不同的角度显示传感器的识别信息和视频信息(前视)。

好了,关于ViCANdo的QML集成功能就给大家介绍到这里了,更多的有意思的功能大家可以自己去探索一下。

QML插件是ViCANdo二次开发的一个强大的功能,而对于更加复杂的、随心所欲的实现任意的功能的方式,就不能囿于QML,我们还提供开放的SDK可以更灵活的实现各种定制的功能。

ViCANdo

ViCANdo Suite是针对智能驾驶功能的开发和测试平台,能够同步的采集所需的各类数据,同时工具集成OpenCV,工程师可以直接使用OpenCV的相关函数来进行开发。

ViCANdo具有一个开放的SDK,允许创建自定义接口,还允许将正在开发中的算法用作ViCANdo本身的一部分,以非常高的性能执行。通过使用ViCANSim中的 Matlab/Simulink扩展,或者利用内置仿真引擎进行网络仿真或视频算法开发

ViCANdo Suite直接支持的数据源

•  示例应用:

在VICANdo内实时车道线识别与实时显示,通过在ViCANdo内部直接集成车道线识别算法,方便直观的展示车道线识别算法的识别情况,并利用ViCANdo的扩展功能将识别的车道线、航向等信息与视频叠加展示,可以方便的进行算法的调试。

在上图的工程中,我们添加了一路摄像头采集道路信息,同时用两路CAN通道采集车辆信息,通过图像提取车道线信息,同时结合车辆的状态信息,在图像上实时叠加显示识别的车道线信息和车辆的航线信息。

•  示例应用:

环视摄像头拼接与实时显示,首先通过ViCANdo对LVDS摄像头的支持,可以直接将一般的车载摄像头的视频数据接入到平台中,对于开发的工程师而言不必要再去投入精力到不必要的驱动开发等工作中,在ViCANdo中直接集成基于OpenCV的视频拼接算法,并将拼接结果直接的展示在ViCANdo界面中。

在上图的工程中,我们通过LVDS板卡实时采集四路车载摄像头的视频信息(非后装摄像头,可以保证算法应用的参数即为原车摄像头的参数),在软件中加载图像拼接算法,并在软件窗口中直接显示,同时显示车载鱼眼摄像头的原始图像。

ViCANdo Suite 产品介绍

ViCANdo Suite是针对智能驾驶功能的开发和测试平台软件套装。

软件包含如下组件:

•  ViCANdo:

ViCANdo是一款跨平台的,针对AD/ADAS开发的数据记录和分析工具,支持运行在Windows、Linux、MacOS等操作系统,支持X86、ARM等平台。

•  ViCANlog:

设计用于车端路试采集的软件,可以运行在任何基于linux的硬件设备上,无人值守采集数据。除了一般计算机外,也支持Nvidia TX-2、Xavier,Nexcom等设备。

•  ViCANdroid:

安卓端的APP,可以采集CAN总线和视频、音频、GPS等数据,内建FTP服务,可以自动的上传数据到服务器。便于方便的对数据进行处理分析。

•  ViCANsim:

通过与OpenCV和Matlab/Simulink™等的集成,方便用户部署自己的算法在ViCANsim上,于此同时也具有与Matlab/Simulink™的接口。

•  ViCANbedded:

ViCANbedded的目标是应用于嵌入式环境,与ViCANdo 相同。它旨在轻松地将源代码从 PC 平台移植到到嵌入式环境。目前,它可支持 QTEmbedded 4.X及更高版本、QNX、Velocity、VxWorks等。

更多ViCANdo相关功能内容,将在后续的文章中发布,敬请关注微信公众号。

经纬恒润
北京市海淀区知春路7号致真大厦D座6层
邮箱:[email protected]
网址:www.hirain.com

原文地址:https://www.cnblogs.com/hirain123/p/12401375.html

时间: 2024-10-19 11:30:42

ViCANdo新版本发布(PART4)| QML集成的相关文章

代码快速“检”“修”不是梦,阿里云MaxCompute Studio 2.9.0 新版本发布

摘要: 阿里云MaxCompute Studio 2.9.0 新版本发布,此次发布的新版本,在原有功能的基础上增加了新功能,分别是支持代码检查和快速修复:支持graph开发及调试. 近日,阿里云大数据计算服务 MaxCompute动作频频,在美国东部1(弗吉尼亚)节点开服售卖,用户可在国际站.中文站.日本站购买美东节点资源,在控制台按需求开通project. 除此之外,对于使用MaxCompute的开发者,数据分析师来说,还有一大福音,阿里云MaxCompute Studio 2.9.0 新版本

TarsGo新版本发布,支持protobuf,zipkin和自定义插件

本文作者:陈明杰(sandyskies)Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架,目前支持C++,Java,PHP,Nodejs,Golang语言.该框架为用户提供了涉及到开发.运维.以及测试的一整套解决方案,帮助一个产品或者服务快速开发.部署.测试.上线. 它集可扩展协议编解码.高性能RPC通信框架.名字路由与发现.发布监控.日志统计.配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理.目前该框架在腾讯内部,各大核

无惧战疫,不畏挑战,iS-RPA新版本发布啦!

天晴了,花开了,疫情得到控制了 一切都朝着好的方向发展着 在这雨水节气里 艺赛旗乍响起一阵春雷 提前进入惊蛰 将又又又再再再迎来一次版本更新发布 加了无数的班  熬了无数的夜 感谢程序员小哥哥辛苦的付出 我们决定将发布 2020 年的第一个版本 iS-RPA 10.4 iS-RPA 2020.1.0 ! 从 2020 年开始 我们将使用年份和版本来标记我们版本 不再使用单一叠加的版本号码 例如 2020 年的第一个版本(对,就是这个版本) 叫 2020.1.0 后续叫 2020.2.0 以此类推

Qunee for HTML5 V1.7新版本发布

经过连日奋战,Qunee for HTML5 V1.7 新版本终于发布了,丰富了更多细节和功能,在线演示改版,全面支持retina屏幕,欢迎访问和升级: http://demo.qunee.com 支持SVG图标 更多的图片支持,更好的渲染效果,更快的运行效率 增加子网功能 基于jQuery的拓扑图插件 只需几行代码,就可以配置一个拓扑图编辑器, http://demo.qunee.com/editor/1.7/

jQuery 2.2 和 1.12 新版本发布

新年新气象,jQuery 团队于昨日发布了两个新版本:1.12 和 2.2.这两个版本都包含了大量的Bug修正和功能改进.基本上这会是3.0之前最后一次发布.不过由于3.0不做向下兼容,所以届时 jQuery 团队仍然会继续维护这两个版本,当然肯定只做Bug修正.关于3.0的消息将在不久之后公布. 那么新版本都有些什么变化呢? 性能提升 此版本缩短了 Sizzle 的引用路径,这样当原生 querySelectorAll 和 matchesSelector 无法使用时,可以带来性能提升.在生产环

Keycloak 2.2.0.Final 发布,SSO 集成解决方案

Keycloak 2.2.0.Final 发布了,Keycloak 是一个为浏览器和 RESTful Web 服务提供 SSO 的集成(入门教程qkxue.net).基于 OAuth 2.0 和 JSON Web Token(JWT) 规范.最开始是面向 JBoss 和 Wildfly 通讯,但已经计划为其他诸如 Tomcat.Jetty.Node.js.Rails.Grails 等环境提供解决方案(腾云科技ty300.com). 该版本主要是落定2.2.0.CR1版本中更新的内容: OpenI

利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境

一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新版本war包位置 生产环境服务器:192.168.13.51 /home/app/api-tomcat/webapps/api.war为生产环境war包位置     /home/app/api-tomcat/webapps/api为生产环境项目位置 /home/app/tomcat.bak/api/

跨平台网络通信与服务器框架(acl) 新版本发布

acl 3.1.0 版本发布了,acl 是 one advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台:整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能).lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现).lib_acl_cpp(基于 lib_acl 及 lib

纯前端表格控件SpreadJS V11.2新版本发布,全面支持React和Vue

SpreadJS是一款基于 HTML5 的纯 Java 电子表格和网格功能控件,在外观.功能和操作上都与 Excel 高度类似,在表格数据处理上比 Grid 类控件更为优秀,被开发人员誉为"可嵌入系统开发的在线Excel". 近日,纯前端表格控件 SpreadJS V11.2 正式推出,全面支持 React 和Vue,并提供了工作表区域偏移和 CSS 自定义分组等功能. 本次更新的主要内容有: SpreadJS 全面支持 React 和 Vue SpreadJS 现在支持与 React