文章目录

  • 一、 API调用运行环境
  • 二、ET API帮助文档
  • 三、如何导入ET API
  • 四、 ET常用接口
    • 1、 创建用于添加测试步骤的Package
    • 2、 在Package的TestStep中添加precondition块
    • 3、 在Package的TestStep中添加Block块
    • 4、在Package的TestStep中添加PostconditionBlock块
    • 5、 在Package的TestStep中调用其他package
    • 6、 创建联合仿真工具的JOB
    • 7、 创建Calculation计算模块
    • 8、 创建信号的GlobalMapping
    • 9、 创建SignalRecording模块
    • 10、 创建Wait时间延迟模块
    • 11、 VERISTAND信号读
    • 12、 VERISTAND信号写
    • 13、 ECU TEST TestStep函数

提示:以下是本篇文章正文内容,下面案例可供参考

一、 API调用运行环境

1、 安装python 3.6 及以上

二、ET API帮助文档

1、进入ET HELP文档

2、进入API HELP

3、根据需求选择API类型



三、如何导入ET API

1、 获取ET API路径
注意:调用ET的API之前需要将API路径添加至搜索路径中,这样才能成功调用API:

方法1:通过注册表获取API路径

reg = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\TraceTronic\ECU-TEST 2022.1') #打开注册表;
etDir = winreg.QueryValueEx(reg, 'Path')[0] #查询ET Path的值;
reg.Close() #关闭注册表;
ApiClientPath = os.path.join(etDir, r'Templates\ApiClient') #路径连接;#注:根据版本更改ECU-TEST 2022.1值

方法2:在安装目录下找到API文件夹(根据安装位置)

ApiClientPath = os.path.join(r'C:\Program Files\ECU-TEST 2022.1\Templates\ApiClient')

2、将ApiClient路径添加至python搜索路径

sys.path.append(ApiClientPath)

3、导入ApiClient库

from ApiClient import ApiClient

4、API实例化

self.api = ApiClient()

四、 ET常用接口

1、 创建用于添加测试步骤的Package

1)pkghandle = self.api.PackageApi.CreatePackage()

2、 在Package的TestStep中添加precondition块

注意:要先创建pkg才能添加precondition,pkghandle是创建pkg返回的句柄;

1)    precondition = self.api.PackageApi.TestStepApi.CreateTsPreconditionBlock() #创建PreconditionBlock;2)pkghandle.AppendTestStep(precondition) #将block添加到pkg的TestStep中;

3、 在Package的TestStep中添加Block块


注意:要先创建pkg才能添加Block,pkghandle是创建pkg返回的句柄;

3) actionBlock = self.api.PackageApi.TestStepApi.CreateTsBlock() #创建Block块4) actionBlock.SetActionColumnText('Action') #设置block的名称;5) pkghandle.AppendTestStep(actionBlock) #将block添加到pkg的TestStep中;

4、在Package的TestStep中添加PostconditionBlock块



注意:要先创建pkg才能添加Postcondition,pkghandle是创建pkg返回的句柄;

1)   postcondition = self.api.PackageApi.TestStepApi.CreateTsPostconditionBlock() #创建PostconditionBlock;2) pkghandle.AppendTestStep(postcondition)  #将block添加到pkg的TestStep中;

5、 在Package的TestStep中调用其他package

1)Tspkg = self.api.PackageApi.TestStepApi.CreateTsPackage(pkgPath) #创建引用包的调用句柄;

2)Tspkg.SetPackageParameter(paramName,paramValue) #设置被调用package的形参值;3)block.AppendTestStep(Tspkg) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块;

6、 创建联合仿真工具的JOB

1)    mappingitem = self.api.PackageApi.MappingApi.CreateJobMappingItem(toolID, JobName, portId=None, checkTarget=True)  #创建工具模型的mappingitem,需要填写ToolID、JobName;

toolID:


JobName:

注意:创建Job之前,需要确保工具的Job MappIngItem已经创建,如上所示;

2)    TsJob = self.api.PackageApi.TestStepApi.CreateTsJob(mappingitem,generateInterface=True) #创建TsJob之前mappingitem需要提前创建;

3)    TsJob.SetParameter(name, Value) #设置Job的参数名称与值;4) block.AppendTestStep(Tsjob) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块

7、 创建Calculation计算模块

1)    TsCal = self.api.PackageApi.TestStepApi.CreateTsCalculation() #创建Calculation模块;

2)    TsCal.SetFormula(Formula) #设置Calculation模块的公式

3)    TsCal.SetExpectationExpression(ExpectationExpression) #添加期望结果表达式;4) block.AppendTestStep(TsCal) #将Job添加到Block/PostconditionBlock/PreconditionBlock模块;

8、 创建信号的GlobalMapping

1)mappingfile = self.api.GlobalMappingApi.CreateMapping() #创建GlobalMapping文件;

2)    mappingItem = self.api.PackageApi.MappingApi.CreateModelMappingItem(systemIdentifier,
targetPath,variableType=None,isSignal=False,referenceName=MappingName,checkTarget=True)
#需要配置systemIdentifier一般为Plant model(TCF中可以修改名称),targetPath是需要Mapping的信号路径,referenceName是Mapping的名称;3) mappingfile.AddItem(mappingItem)  #添加GlobalMapping对象到Mappingfile;

4)mappingfile.Save(filename=””) #保存Mapping文件;

9、 创建SignalRecording模块

1) SGroupHandle =self.api.PackageApi.SignalRecordingApi.CreateSignalGroup(name='',description='') #创建信号录制组别;2) pkghandle.AppendSignalGroup(SGroupHandle, defaultRecordingGroup=None, allowNewName=False) #将信号组添加到pkg;3) RecordingGroup = SGroupHandle.GetRecordingGroups() #获取所有信号组,返回的RecordingGroup是列表;

4)for RG in RecordingGroup:  #因为RecordingGroup是列表,返回了多个录制组;RG.SetRecordingMode(RG.RECORDING_MODE_AUTO) #将每个组切换自动录制模式

5)SGroupHandle.AppendMappingItem(MappingItem) #需要先创建GlobalMapping,才能将信号添加至信号录制组;

10、 创建Wait时间延迟模块

1)    TsWait= self.api.PackageApi.TestStepApi.CreateTsWait() #创建时间延时模块;2)  TsWait.SetDelay(value, unit)  #创建延迟时间3)  block.AppendTestStep(TsWait)  #将TsWait添加到Block/PostconditionBlock/PreconditionBlock模块

11、 VERISTAND信号读

注意这里使用的Mapping和GlobalMapping不一样

1)    mappingItem = self.api.PackageApi.MappingApi.CreateGenericMappingItem(referenceName=referenceName) #创建需要读取值的信号Mappingitem;2) TsRead = self.api.PackageApi.TestStepApi.CreateTsRead(mappingItem) #添加MappingItem到读取步骤;3) TsRead.SetExpectationExpression(expectation) #添加期望结果;4)  block.AppendTestStep(TsRead)  #将TsRead添加到Block/PostconditionBlock/PreconditionBlock模块

12、 VERISTAND信号写

1)   MappingItem = self.api.PackageApi.MappingApi.CreateGenericMappingItem(referenceName=referenceName)
#创建需要写入值的信号GenericMappingitem;2)    testStep = self.api.PackageApi.TestStepApi.CreateTsWrite(MappingItem) #添加MappingItem到写入步骤;3)    testStep.SetValue(value) #设置写入值;

13、 ECU TEST TestStep函数

创建IF语句

1)Tsif = self.api.PackageApi.TestStepApi.CreateTsIfThenElse()  # 创建if..else函数2)block.AppendTestStep(Tsif) # 添加if函数到block块3)Tsif.SetCondition(condition)  # 添加if..else条件4)ThenNode = Tsif.GetThenNode()  # 获取Then节点5)ElseNode = Tsif.GetElseNode()  # 获取Else节点6)ThenNode.AppendTestStep()/ElseNode.AppendTestStep() #添加TestStep到Then或Else节点;

创建LOOP语句

1)Tsloop = self.api.PackageApi.TestStepApi.CreateTsLoop()  #创建Loop函数2)block.AppendTestStep(Tsloop)  # 添加Loop函数到block块3)Tsloop.SetStartCondition(loopcondition)  # 设置Loop执行条件4)Tsloop.SetLoopCountExpression(looptimes)  # 设置Loop执行次数5)Tsloop.SetSaveInVariableName(LoopCounter) # 设置Save counter in的变量

创建SWITCH CASE语句

1)Tsswitch_case = self.api.PackageApi.TestStepApi.CreateTsSwitchCase() #创建SwitchCase函数;2)block.AppendTestStep(Tsswitch_case) #添加SwitchCase到block块;3)Tsswitch_case.SetSwitchValue(switchcondition) #添加SwitchCase的进入条件;

4)SwitchNode = Tsswitch_case.CreateCaseNode(caseValue='0', insPos=None) #创建Case节点;5)SwitchNode.AppendTestStep() #Case节点添加步骤;

6)GetDefaultNode = Tsswitch_case.GetCaseNode() #获取Default节点7)GetDefaultNode.AppendTestStep() #Default节点添加步骤;

以上,例举了一些自动化常用的API;

自动驾驶仿真:ECU TEST自动化测试常用API调用相关推荐

  1. 自动驾驶仿真类初创企业信息梳理

    引言 对于高阶自动驾驶来说,虚拟仿真测试是研发及测试验证过程中不可缺少的一个关键环节.并且虚拟仿真测试所占的比重也越来越大,虚拟仿真测试技术的发展进步,将直接影响到高阶自动驾驶技术商业化落地的时间. ...

  2. python仿真智能驾驶_自动驾驶仿真工程师

    禁止私自转载,转载请联系作者. 想要做一个自动驾驶仿真工程师,我们要学的还远远不够. 对自动驾驶仿真工程师这个岗位,相关介绍还是少了些.有些公司是直接把它纳入到基础架构组里,有些是单独招聘这个岗位,还 ...

  3. 自动驾驶仿真测试标准ASAM OpenX简介

    声明:偶尔转载的文章出于非商业性的教育和科研目的,并不意味着支持其观点或证实其内容的实行,欢迎大家评论发表自己的意见.版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们,我们会予以更改或删除相关 ...

  4. Airsim+UnrealEngine4 搭建无人车/无人机自动驾驶仿真环境

    文章目录 1. Airsim 概述 2. Unreal Engine 概述 3. 在Linux下环境搭建 3.1. 手动 编译安装 UnrealEngine 3.2 编译airsim 插件 3.3 使 ...

  5. 介绍一款开源的自动驾驶仿真模拟器-Carla

    大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...

  6. 对自动驾驶仿真软件研发方向的看法

    快毕业了,计划入职的公司的产品经理,让我写一下关于使用Carla的使用心得,所以就简单得写了一下,我个人对自动驾驶仿真软件的看法. 对自动驾驶软件的个人看法 在介绍Carla的基本功能前,我想先说一下 ...

  7. 北京内推 | 华为诺亚方舟实验室招聘自动驾驶仿真实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 诺亚方舟实验室(Noah's Ark Lab)是华为公司从事人工智能 ...

  8. 自动驾驶仿真(六)—— SIL软件在环仿真测试

    自动驾驶仿真六-- SIL软件在环仿真测试 1. 在环仿真测试 2. SIL软件在环仿真测试 2.1 模型配置参数 2.2 S function生成实现 2.3 结果对比 3. 参考学习的书目教材 博 ...

  9. 回顾:鲍世强,讲述51VR自动驾驶仿真平台从0-1的开发与构建

    L3及其以上级别自动驾驶车辆的开发,在系统复杂程度.使用环境复杂程度方面均急剧增加.传统开发ADAS算法的仿真工具已无法完美解决当前更高级别的自动驾驶开发问题.仿真平台便成为自动驾驶企业的刚性需求. ...

最新文章

  1. typescript索引类型_TypeScript类型声明书写详解
  2. “编码 5 分钟,命名 2 小时”,这道题究竟怎么解? | 问题征集
  3. Cocos2dx学习笔记(1) Ref类型数据 垃圾回收机制
  4. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
  5. cmd 将文件夹下文件剪切到另外一个文件_手把手教你运行第一个 Java 程序,看不懂你来骂我!...
  6. 小白python语言基础
  7. ubuntu 14.04 将用户目录下中文目录修改为英文目录
  8. 学生成绩互帮互助分组C语言,C语言实现—学生成绩管理系统(Linux下运行)
  9. 去年的今天我们举行了婚礼
  10. 北斗导航 | RAIM算法之奇偶矢量法(原理讲解,附代码链接:可用性判定)
  11. 使用pip报错error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:
  12. 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
  13. 2021最新的NVIDIA显卡排行榜前十
  14. 大龄程序员的4年生涯
  15. 手机卫星定位系统_北斗三号最后一颗卫星发射成功完成组网!为何手机上还显示GPS?...
  16. 判断任意时刻、位置是白昼?黑夜?
  17. YUV图片查看器以及测试文件(YUV420)
  18. 13种MongoDB的GUI简介
  19. 让word从第二页开始标记页脚
  20. 支持DoH的DNS服务器,谷歌公共 DNS 服务器正式支持 DoH 加密

热门文章

  1. 易源数据_易源数据-备案查询【最新版】_数据API_数据应用_电商-云市场-阿里云...
  2. vue 的两种路由模式
  3. Struts2 开发 编码问题汇总
  4. autocad 2014菜单栏没了 怎么调出来 ?
  5. 英特尔12代酷睿处理器正式发布,驱动人生助力相关驱动下载升级
  6. QGIS开发入门知识
  7. 用Excel制作不一样的百分比信息图表(3)
  8. 贝加莱 C语言编程,贝加莱可编程计算机控制器PCC系列
  9. 数学史上你认为最丑陋的公式是什么?
  10. snprintf用法解析