Uds诊断自动化(CANoe.diva应用)

CANoe.Diva可以通过导入cdd或odx文件,自动生成全面的测试用例;再在CANoe中导入用例执行测试即可生成测试报告;主要用于测试CAN的诊断功能。

1、新建Diva工程,生成测试用例

        (1)打开CANoe.Diva软件,并新建Diva工程。

(2)设置工程名和保存位置;在"Specification file"导入cdd文件。点击"Open"

(3)等待DIva工程的生成;生成后的界面如下,在”Security Access”中导入安全算法dll文件。注意安全算法DLL文件要与对应cdd文件所需安全算法一致。

(4)接下来是修改Diva工程选项,如下图点击Test Configuration->Test Timings;在这里进行测试用例时间参数的设置,如用例间的时间间隔、复位等待时间等。

(5)在Test Configuration->Test选项页,选择是否测试功能寻址

(6) 测试TP层需要在Test Configuration->Test选项页勾选,并根据项目需求,修改Bs和Cr时间

注:如果CANFD通讯项目,需要diva版本为13以上,才可以进行Tp层自动化测试

(7)其他配置选择可以保持默认(一般情况下,DTC以及31服务、下载服务需要另外测试)。点击Generate,即可生成测试用例。

2、在CANoe中导入Diva工程

(1)在CANoe中导入前面生成的Diva工程(.diva后缀文件)。操作步骤如下

(2)点击Test->Test Setup->双击Diva工程名,即可打开导入的测试工程。

(3)测试案例打开后的界面如下,可以对要进行测试的案例进行勾选,接上ECU,运行CANoe,再点击框2中的三角符号,运行测试用例

(4)等待测试完毕(可查看下角的进度条)后;等待测试报告生成;点击下图中的"open Test Report",打开生成的测试报告

### 关于CANoeDIVA软件版本兼容性和依赖关系 在汽车电子开发领域,CANoeDIVA都是广泛使用的工具。为了确保这两个工具之间能够顺利协作并满足特定需求,理解其版本兼容性和依赖关系至关重要。 #### 版本兼容性概述 CANoe是一款由Vector公司开发的强大网络分析工具,支持多种总线系统的仿真、监测与调试工作。而DIVA则是专门针对车辆诊断应用设计的一款软件包,主要用于创建自定义的诊断应用程序和服务脚本[^1]。 对于不同版本之间的兼容性: - **CANoe**:通常情况下,较新版本的CANoe可以读取早期版本生成的配置文件(.cnf),但是反过来则不一定适用。因此,在团队合作环境中建议所有成员使用相同的主要版本号。 - **DIVA**:DIVA插件需要安装到具体的IDE环境内才能正常运作,比如Microsoft Visual Studio。当涉及到与CANoe集成时,应当确认所选用的DIVA版本是否被当前CANoe版本官方声明支持。例如,某些高级特性可能仅限于最新发布的CANoe版本中可用[^2]。 #### 依赖关系说明 除了考虑各自独立更新所带来的影响外,还需要注意到两者间可能存在的一些间接关联因素: - 如果计划利用DIVA提供的API接口来进行更深层次的功能扩展,则需保证这些API能够在目标平台上稳定执行。这往往意味着要遵循制造商给出的最佳实践指南,并定期检查是否有新的补丁发布以修复潜在的安全漏洞或其他问题。 - 对于像UDS这样的标准化通信协议的支持程度也会影响整体解决方案的选择。由于ISO 14229-1正在逐步替代其他老旧标准成为主流选项,所以推荐优先选择那些已经充分实现了这一规范的产品组合。 综上所述,虽然理论上大多数现代版次都应该具备良好的互操作能力,但在实际部署前仍有必要查阅具体文档资料来验证预期行为是否符合实际情况。 ```python # 示例代码展示如何查询已安装程序及其版本信息 import winreg as reg def get_installed_software(): software_list = [] key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") i=0 while True: try: subkey_name = reg.EnumKey(key,i) subkey = reg.OpenKey(key,subkey_name) value = reg.QueryValueEx(subkey,"DisplayName")[0] version = reg.QueryValueEx(subkey,"DisplayVersion")[0] if "DisplayVersion" in [name for name,_ in reg.QueryInfoKey(subkey)] else 'Unknown' software_list.append((value,version)) i+=1 except WindowsError: break return software_list if __name__ == "__main__": installed_softwares = get_installed_software() print(installed_softwares) ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值