VSPS_SOVD_DEMO 的示例项目,该项目演示了如何使用SOVD(Service-Oriented Vehicle Diagnostics,面向服务的车辆诊断)来访问诊断服务。

这部分首先概述了该示例应用的功能,旨在展示:
- 如何配置一个只读的DID(数据标识符)。
- 如何配置一个可读/写的DID。
- 如何配置一个DTC(诊断故障码)并设置其状态。
- 如何配置SOVD服务器。
- 如何通过SOVD发现组件和子组件。
- 如何通过SOVD处理数据和故障。
接着,介绍了该自适应应用(Adaptive Application)的具体工作逻辑:
- DID 0xEE48:这是一个只读的数据,它会读取一个8位计数器的值,该计数器每次被读取时都会自增。
- DID 0xEE49:这是一个可读/写的数据,用于读取和写入一个8位的值。
- DTC 0x4D2:定义了一个ID为 0x4D2 的诊断故障码。
- 诊断监视器:有一个诊断监视器会每2秒钟检查一次DID 0xEE49 的值。
- 如果该值小于或等于2,DTC 0x4D2 的测试将报告通过 (pass)。
- 如果该值大于2,DTC 0x4D2 的测试将报告失败 (fail)。
- DTC的状态字节会相应更新,并可由应用程序读取。
4.2.2 在目标ECU上构建和部署 (Building and deploying on a Target ECU)
这部分给出了构建和部署该示例应用的具体指令。用户需要打开一个命令终端,并执行以下命令:
rvbuild -d VSPS_SOVD_DEMO 20
这个命令会自动完成以下工作:
- 生成配置文件和源代码。
- 构建应用程序项目。
- 将其部署到ID为20的机器上(一个Linux x86目标环境)。
4.2.3 与SOVD服务器交互 (Interaction with the SOVD server)
为了与SOVD服务器进行交互,入门套件(Starter Kit)提供了一个名为 Bruno 的开源工具,它可以通过调用REST API与服务器通信。
- 加载Bruno配置:
- VSPS_SOVD_DEMO 项目中已包含一个名为 bruno_sovd_config 的文件夹,里面有预设好的Bruno配置。
- 用户只需在Bruno工具中打开这个配置文件夹,即可加载一个名为 sovd_test 的API集合。
- 预配置的SOVD API:
- 加载配置后,用户可以看到一系列预设好的API请求,这些请求被组织在不同的文件夹中(如Misc, Components, Data, Faults, Operations)。
- 这些API涵盖了版本信息获取、组件发现、数据读写、故障处理和操作执行等多种功能。
- 数据和故障处理流程:
- 文档详细演示了一个测试数据和故障处理的步骤:
- 读取只读数据DID 0xEE48(其值为QEMU机器的CPU负载)。
- 读取故障列表(初始为空)。
- 读取读/写数据DID 0xEE49(初始值为0)。
- 向DID 0xEE49 写入值5。
- 再次读取DID 0xEE49,确认其值已变为5。
- 再次读取故障列表,此时因为值大于2,DTC 0x4D2 测试失败,列表中会出现一个活动 (active) 的故障。
- 向DID 0xEE49 写回值0。
- 再次读取故障列表,此时因为值小于2,DTC测试通过,故障变为非活动 (passive)。
- 删除所有故障,再次读取,故障列表变为空。
- 文档详细演示了一个测试数据和故障处理的步骤:
- 操作 (Operations) 测试:
- 演示了如何调用一个测试操作(Routine),包括获取操作详情、启动执行、查询执行状态、终止执行等一系列流程。
- 请求返回错误:
- 演示了两种会触发错误的请求:
- 尝试写入一个只读数据,会返回404 Not Found错误。
- 尝试向一个8位的数据写入超出范围的值(如256),会返回400 Bad Request错误。
- 演示了两种会触发错误的请求:
4.2.4 支持的目标ECU (Supported Target ECUs)
这部分说明 VSPS_SOVD_DEMO 示例应用支持在QNX和Linux目标ECU上运行。同时提醒,预设的Bruno配置仅适用于ID为20的Linux机器,如果要在其他机器上测试,需要相应地修改API请求中的IP地址。
总而言之,第4.2章通过一个具体的动手示例,全面地指导了用户如何构建、部署一个基于SOVD的诊断应用,并如何使用API工具与其进行交互,以理解和测试SOVD的核心功能。

363

被折叠的 条评论
为什么被折叠?



