基于Python DoIPClient库的DoIP上位机开发手顺

news2024/9/21 8:47:48

代码

address, announcement = DoIPClient.await_vehicle_announcement()

logical_address = announcement.logical_address

ip, port = address

print(ip, port, logical_address)

效果

代码

address, announcement = DoIPClient.get_entity(ecu_ip_address=sIp, protocol_version=3, eid=None, vin=None)#请求ECU的车辆识别响应消息。
logical_address = announcement.logical_address
ip, port = address
sIp = ip
sLA = logical_address

效果

可以发出DOIP请求,之所以显示超时未等到回应

是因为,目标Port和实际上的诊断仪port不一致

为了实现指定Tester端口,避免随机端口,重写这个方法get_entity()

def get_entity(

cls, ecu_ip_address="255.255.255.255", protocol_version=0x02, eid=None, vin=None, local_port=8080

):

DoIPClient对象的创建

可见该类创建后,不会请求车辆识别(UDP),所以DoIPClient的对象创建要在车辆声明/车辆ID识别之后,使用获取到的LA+IP等进行TCP通信,创建DoIPClient后会自动进行TCP的三次握手,为了使用固定端口进行通信,这里对DoIPClient这个类进行了重写。

新增了client_port这个参数,注意port = 0表示使用随机端口。

DoIPClient执行TCP三次握手成功之后会调用路由激活!

封装后的自动连接函数

代码

try:
	#Get the DoIP Entity Information
	address, announcement = DoIPClient.get_entity(ecu_ip_address=sIp, protocol_version=3, eid=None, vin=None, local_port=cPrt)#请求ECU的车辆识别响应消息。
	logical_address = announcement.logical_address
	ip, port = address
	sIp = ip
	sLA = logical_address
	#Creat DoIP TCP connection
	doIPConn = DoIPClient(sIp, int(sLA), tcp_port=13400, udp_port=13400,activation_type=0, protocol_version=3,client_logical_address=int(cLA), client_port = int(cPrt),client_ip_address=cIp, use_secure=False,auto_reconnect_tcp=False)
except Exception as e:
	window['-CONSOLE-'].update(e)

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VitualBox】VitualBox的网络模式+网络配置

VirtualBox 1. 简介 VirtualBox 是一款开源虚拟机软件,使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统。 2. 六种网络接入模式 VirtualBox提供了多种网络接入模式,他们各有优缺点&#xf…

Setting Design Properties

设置设计属性 接下来,在设计上设置配置模式。这是导致物理 约束,在这种情况下是设计的属性,而不是单元的属性。首先,列出所有 当前设计的特性。 1.在Tcl控制台中列出设计的属性: list_property [current_design] 此命…

本地安装MySQL并配置环境变量

MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 本地安装MySQL 提供了 MySQ…

mysql笔记8(多表查询)

文章目录 1. union联合查询可能会用到去重操作 2. inner join 内连接3. left join 左连接4. right join 右连接5. cross join 交叉连接6. natural join 自然连接natural left join 自然左连接natural right join 自然右连接自然连接的两张表没有同名字段怎么办? 7. …

LLMs之SWIFT:SWIFT的简介、安装和使用方法、案例应用之详细攻略

LLMs之SWIFT:SWIFT的简介、安装和使用方法、案例应用之详细攻略 目录 SWIFT的简介 新闻 🛠️ 安装 🚀 快速开始 Web-UI 训练 训练脚本 支持的训练过程 单卡训练 模型并行训练 数据并行训练 Deepspeed训练 多机多卡 阿里云-DLC多…

棋盘格角点检测-libcbdetect

libcbdetect libcbdetect 是一个用于自动子像素级别的棋盘格(checkerboard)、棋盘(chessboard)以及 Deltille 图案检测的库。它主要由 C 编写,旨在提供高精度、高鲁棒性的角点检测和图案组合功能,是一种基…

数据中心可视化管理平台:提升运维效率

通过图扑可视化平台实时监控设备状态、能耗和网络流量,帮助运维团队快速识别和处理异常,提高运营效率,确保系统稳定与可靠性。

在 Dify 中高效利用 SiliconCloud API

引言 SiliconCloud 以其丰富的模型库和卓越的处理速度,在 Dify 平台上实现高效工作流和智能代理变得轻而易举。本文将指导您如何在 Dify 中集成 SiliconCloud 的强大功能。 集成 SiliconCloud 模型 步骤一:设置 SiliconCloud 账户 首先,您…

SHT30温湿度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理 三、程序设计 main.c文件 sht30.h文件 sht30.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 SHT30是一种常见的温湿度传感器,是一款完全校准的线性化的温湿度数字传感器&#xff0…

8.1 溪降技术:横渡绳

目录 8.1 横渡绳将其置于上下文中:观看视频课程电子书:横渡绳一级横渡绳:识别使用横渡绳固定到横渡绳V7提示:保持张力中间点通过横渡绳上的中间点固定到锚点总结 8.1 横渡绳 绳上移动 横渡绳是一条水平安全绳,探险者可…

vue3 自定义el-tree树形结构样式

这里样式设置主要用到了 windcss 实现效果 模拟数据 这里也可以用模拟的数据,下面用的是后端请求的真实数据 [{"id": 5,"rule_id": 0,"status": 1,"create_time": "2019-08-11 13:36:09","update_time": "…

集团门户网站设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装集团门户网站软件来发挥其高效地信息处理的作用&#xff0c…

深度学习之线性代数预备知识点

概念定义公式/案例标量(Scalar)一个单独的数值,表示单一的量。例如:5, 3.14, -2向量 (Vector)一维数组,表示具有方向和大小的量。 ,表示三维空间中的向量 模(Magnitude)向量的长度,也称为范数(通常为L2范数…

【论文阅读】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning

Abstract 在这篇论文中,我们研究了使基于视觉的机器人操纵系统能够泛化到新任务的问题,这是机器人学习中的一个长期挑战。我们从模仿学习的角度来应对这一挑战,旨在研究如何扩展和扩大收集的数据来促进这种泛化。为此,我们开发了…

掌握回流与重绘面试回答:优化网页加载与响应速度

认识回流reflow和重绘repaint 理解回流reflow:(也可以称之为重排) 第一次确定节点的大小和位置,称之为布局(layout)。 之后对节点的大小、位置修改重新计算称之为回流 什么情况下引起回流呢? 比如DOM结构发生改变(添加新的节点或者移除节…

Cortex-A7的GIC(通用中断控制器):边沿触发和电平触发中断的区别

0 资料 ARM Generic Interrupt Controller Architecture version 2.0 Architecture Specification1 边沿触发和电平触发中断的区别 1.1 边沿触发和电平触发中断官方解释 边沿触发(Edge-triggered) This is an interrupt that is asserted on detectio…

架构设计——概念和基础

🏠1 架构基础 想要搞清楚架构到底指什么,架构与框架的区别,就需要了解梳理系统、子系统、模块、组件、框架和架构 1.1系统与子系统 1.1.1系统 wiki:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元…

无限制使用OpenAI最新o1-mini、o1-preview模型:经济高效的AI推理模型

OpenAI 最新推出的 o1 模型是该公司推理模型家族的首位成员,它通过创新的“思维链”训练模式,显著提升了逻辑推理和问题解决的能力。o1 模型在编程竞赛问题、数学奥林匹克资格赛以及物理、生物和化学问题的基准测试中表现出色,甚至在某些领域…

数据爬虫中遇到验证码的解决方法

在数据爬虫中遇到验证码是一个常见且复杂的问题,验证码的存在主要是为了阻止自动化工具(如爬虫)对网站进行过度访问或数据抓取,以保护网站的安全性和数据的准确性。 一、验证码的基本概念与类型 验证码(CAPTCHA&…

PointNet++改进策略 :模块改进 | LFA | RandLA-Net,通过随机采样与局部特征聚合提升大规模3D点云处理效率

论文题目:RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds发布期刊:CVPR作者地址:1牛津大学、2中山大学、3国防科学技术大学代码地址:https://github.com/QingyongHu/RandLA-Net介绍 这篇论文题为《RandLA-Net: Efficient Semantic Segmentatio…