Python调用CANoe发诊断请求和接收请求的方法

Python调用CANoe发诊断请求和接收请求的方法

一、需求

    当我使用Python调用CANoe进行自动化测试的时候,那么我们就没有办法绕过诊断测试了,当然我们也不需要绕过诊断测试,因为我们的接口中是支持调用诊断模块的,这样就非常方便我们直接使用接口来进行诊断的测试了,惊不惊喜意不意外?当然随着越来越多的工具库的集成,我们需要更多地掌握使用的方法,而不需要自己造轮子,这是一个大趋势,我们也需要跟随这个大趋势来不断完善自己,提升自己,从而来提高工作效率。

二、构架和主要思路
  • 集成CANoe接口函数的Python文件;
  • 新建自己的测试Python文件;
  • 根据自己需求封装提供的接口函数到自己的接口中;
  • 写测试用例的脚本代码。
三、具体实现
1. 集成接口文件到工程目录下

接口文件canoe_application .py详见:https://blog.csdn.net/wsq119/article/details/129994822

2. 自定接口
  • 发送诊断ID请求
def send_dia_req(canoe_app, req_id)
	diag_str = str(req_id)
	canoe_app.send_diag_request(diag_str, stream_flag=True)
	time.sleep(0.5)
	
  • 接收诊断ID且checking
def rev_dia_res(canoe_app)
	did_resp = canoe_app.check_diag_response()
	if did_resp != "NO RESPONSE":
		print("未响应,请查看是否是连接和通道问题")
	else:
		print("收到响应:", did_resp)
		# 也可以根据自己的需求对收到的响应提取并验证,这里就不多做举例了
		# ...
  • 具体的使用
import csv, time
from canoe_application import *

if __name__ == '__main__':

    try:
        app = Canoe()
        canoe_cfg_path = "./L2_DID_Check_canoe_part/L2_ZIC_DID_Test.cfg"
        network = "CHCAN1"
        diagmode = 'MyECU'
        #
        # 加载CANoe配置工程
        app.load_configuration(canoe_cfg_path)
        # 启动CANoe软件
        app.start()
        # 运行CANoe软件
        app.start_measurement()
        time.sleep(2)
        # 初始化诊断参数
        app.init_service(canoe_cfg_path, network, diagmode)
        time.sleep(2)
        # 进入拓展会话
        response=app.send_diag_request("1003", stream_flag=True)
        print('Diagnostic response is:',response)
        time.sleep(1)

		# 发送请求
        diag_str = '14FFFFFF'
        send_dia_req(app, diag_str)

        # 回读ECU的DID请求答复
        rev_dia_res(app)

        time.sleep(2)
        app.stop_measurement()

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_长风_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值