01.传统车辆开发测试
一直以来,电气与电子设备的开发都是车辆工程与制造领域的一大挑战。
车辆在运行过程中面临着恶劣的路面环境:不断变化的温度、湿度,凹凸不平的路面带来的振动,嘈杂的市区噪音等等,都冲击着车辆的各个部件。为了使车辆在各种各样的恶劣环境下都能安全、可靠地高速行驶,车辆内部的许多部件必须持续相互作用,底盘内部通信尤为重要。开发人员需要尽早发现设计缺陷和限制,以便在早期开发过程中完成修正——如果等原型车上路时才发现问题,带来的时间、成本损失将不可估量。
传统的车辆开发测试主要依赖于台架测试,以及原型车上路后的道路测试。这是两类检验汽车耐久性与可靠性的基本试验方法。

▲吉利杭州湾研发中心的整车试验中心:24通道轴耦合道路模拟耐久测试
台架测试可以理解为零部件的耐久疲劳加剧试验,即通过模拟汽车发动机运转环境,对发动机,以及汽油、机油、柴油、齿轮油等质量进行测试。台架测试能够在开发设计阶段短时间内验证部件强度是否达到要求,还能验证现存问题的解决方案是否有效。
台架可以早于原型机对车辆进行测试,有利于加快新车型开发的速度,一度被认为实现了开发过程的测试“左移”。然而,尽管相较于原型车,台架制造成本相对较低,但其造价本身还是十分高昂的。除此之外,还有一个需要直面的问题:像电流过大等可能会损坏台架本身的故障,是较难被注入的,而需要数月甚至更久制造时间的汽车定制芯片对应的bug也就无法被发现,存在巨大安全隐患的同时影响开发进度。

开发人员需要一种更灵活的方法来实现安全高效的测试“左移”。
02.虚拟样机&ECU
构建汽车电子系统的虚拟样机,在虚拟样机中进行测试,成为了科技发展日臻完善的必然产物。虚拟样机指在真实的电脑中安装一个软件,用软件模拟汽车的各个部件。用软件对系统进行仿真,并进行验证和测试,是适用于任何芯片的强有力的方法。
虚拟样机具备以下优点:
可以不受原型限制进行故障注入,验证国际标准ISO 26262《道路车辆功能安全》规定的纠正措施;
虚拟样机性价比极高,节能环保,能够在更早的开发阶段投入使用,更早地开始测试;
虚拟样机可以快速实现分布式部署,支持更多的开发人员实时查看运行状态。

▲图源网络
虚拟样机的使用为开发人员带来了极大的便利,国际金融业界大拿摩根士丹利(Morgan Stanley)公司的研究报告显示,汽车软件所带来的价值增长将从现今的10%增长到60%。
在庞大的汽车电子系统中,没有什么比汽车电子控制单元(Electronic Control Unit,ECU)更为复杂、更有开发难度的了。ECU又称“行车电脑”、“车载电脑”,是汽车专用微机控制器,通过各种底盘传感器、总线数据采集与交换,判断汽车的行驶状态并反馈给驾驶人,并根据驾驶人的意图,通过一系列的执行器来控制汽车,从而实现汽车的各种功能。
传统的传感器包括测量空气流量、空气温度、冷却液温度、歧管压力、节气门位置和车速的传感器,而传统的执行器控制发动机的混合气(燃料与空气的混合物)、点火正时、怠速和其他参数。
高级驾驶辅助系统 (Advanced Driving Assistance System,ADAS) 和自动驾驶汽车的出现,大大提升了ECU的应用,现在的ECU不仅能从自动驾驶的三大传感器系统:摄像头、雷达和激光雷达传感器收集数据,还可以控制车辆操作的各个方面,包括加速、制动和转向等。

▲图源网络
03.基于SkyEye的虚拟ECU仿真
虚拟ECU是汽车电子系统硬件和嵌入式软件对虚拟样机进行建模和测试的关键部分。
迪捷软件作为汽车等安全关键领域产品与解决方案提供商,通过涵盖基于模型的系统工程(Model Based System Engineering,MBSE)的整个生命周期的全系列产品,为汽车电子系统开发提供完整的解决方案,支持虚拟ECU和从系统到软件的车辆虚拟样机设计。

SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,指通过应用软件仿真技术,逼真地模拟出被测软件运行的物理环境,并通过动态执行被测软件来进行的软件确认与验证活动。SkyEye可以作为虚拟ECU开发与测试平台,将开发过程从台架转移到个人计算机(PC)上,实现ECU软件的快速高效迭代开发。
借助SkyEye,工程师可以通过可视化图形的硬件建模方式,快速搭建模拟TriCore,PowerPC等架构处理器的虚拟ECU,作为真实硬件单元的软件执行模型。SkyEye可以与汽车工具生态系统相关的所有部分提供广泛的连接,进行集成测试。开发人员可以不加修改,在SkyEye仿真系统上运行与真实车辆中完全相同的实际二进制文件,使用相同的工具链、库、操作系统,避免跨平台编译产生的错误。

▲SkyEye产品矩阵
绝大多数传统的汽车电子设备的虚拟原型都需要在Windows PC上运行,而SkyEye还同时支持Linux,开发人员可以在Linux工作站上编写代码,实现虚拟ECU的构建,进行运行测试和调试,不必在Windows和Linux之间来回切换,从而实现周转时间更短、更为紧凑的交互式循环仿真。
SkyEye还提供系统级测试与覆盖率测试,支持自动化测试。开发人员可以通过单步、断点、堆栈信息查看等方式,快速找出问题的确切位置和原因。除此之外,开发人员还可以搭建持续集成环境,只需将新的代码提交至仓库,通过WebHook(一种Web接口机制)触发持续集成,SkyEye就会不舍昼夜地完成自动化测试并输出报告。
虚拟ECU使测试可以更早地实现于开发流程中,形成更快的反馈循环,用更低的成本使开发团队具备更高的可扩展性。虚拟ECU是开发复杂车辆电子系统的重要组成部分。
参考文献
https://semiengineering.com/shifting-vehicle-system-development-left-with-virtual-ecus/
原文链接: https://mp.weixin.qq.com/s/aEmPCrcnSmEjYSvhXDtciQ
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc