【Python工具开发】k3q_arxml 简单但是非常好用的arxml编辑器,可以称为arxml杀手包

k3q_arxml

介绍

仓库地址1
仓库地址2

极简的arxml编辑库,纯python实现

用法

from pprint import pp # 可以美化打印对象,不然全打印在一行
import k3q_arxml
# 加载arxml文件
io_arxml = k3q_arxml.IOArxml(filepaths=['test/model_merge.arxml'])# 打印arxml字符串绑定的python arxml实例
io_arxml.print(print_filepath='model_merge.txt')# 刷新ref缓存数据,因为ref/ar/ref_to_ref/locate_filename访问的都是缓存数据,如果修改了数据后,影响到了ref,就需要主动刷新
io_arxml.scan_ref()# 增/改
io_arxml.ref(('Implementations', 'HWIO')).resource_consumption = k3q_arxml.autosar.ResourceConsumption(short_name=k3q_arxml.autosar.Identifier(value='resourceConsumption'))# 删
del io_arxml.ref(('Implementations', 'HWIO')).resource_consumption
io_arxml.ref(('Implementations', 'HWIO')).resource_consumption = None# 查
## 根据ref查arxml实例
io_arxml.ref(('Implementations', 'HWIO'))
## 根据ref查哪些arxml实例用到了该ref
io_arxml.ref_to_ref(('Implementations', 'HWIO'))
## 根据标签查arxml实例(该需要带有short_name属性)
io_arxml.ar(clazz=k3q_arxml.autosar.ResourceConsumption)
## 根据标签查arxml实例,但限定ref路径下查找(该需要带有short_name属性)
io_arxml.ar(clazz=k3q_arxml.autosar.ResourceConsumption, ref_prefix=('Implementations',))# 辅助函数
## 控制台打印uuid到ref的映射关系,能通过uuid快速定位ref路径,辅助编码
io_arxml.scan_ref(debug_uuid=True)
## 获取路径在那个arxml文件里
io_arxml.locate_filename(ref=('Implementations',))# 切换autosar_00052版本,默认为autosar_00048
from autosar import autosar_00052
k3q_arxml.autosar = autosar_00052# 回写到文件
io_arxml.flush_to_file()

技巧

  1. 手动添加完成后的arxml和原始arxml,都通过io_arxml.print函数打印在文件里
  2. 通过对比软件对比源arxml和打印的arxml,找出需要修改的arxml内容
  3. 该内容就是对象的定义代码,可以复制出来粘贴到代码里

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

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

相关文章

【CSS-8】深入理解CSS选择器权重:掌握样式优先级的关键

CSS选择器权重是前端开发中一个基础但极其重要的概念,它决定了当多个CSS规则应用于同一个元素时,哪条规则最终会被浏览器采用。理解权重机制可以帮助开发者更高效地编写和维护CSS代码,避免样式冲突带来的困扰。 1. 什么是CSS选择器权重&…

大语言模型原理与书生大模型提示词工程实践-学习笔记

📘 第五期书生葡语实战营讲座总结 🎙 主讲人:王明(东部大学 数据挖掘实验室 博士生) 一、大语言模型的生成原理 架构基础:采用 Transformer(Decoder-only)架构,如 GPT …

李沐 《动手学深度学习》 | 实战Kaggle比赛:预测房价

文章目录 1.下载和缓存数据集2.数据预处理读取样本预处理样本数值型特征处理特征标准化的好处离散值处理转换为张量表示 训练K折交叉验证模型选择最终模型确认及结果预测代码总结提交到Kaggle 房价预测比赛链接:https://www.kaggle.com/c/house-prices-advanced-reg…

一键部署Prometheus+Grafana+alertmanager对网站状态进行监控

在建设监控体系的过程中,针对一个系统的监控是多维度的,除了服务器资源状态、中间件状态、应用状态外,对系统访问状态的监控也是很有必要,可以在系统访问出现异常时第一时间通知到我们。本文介绍使用 Docker-compose 方式一键部署…

康谋方案 | 高精LiDAR+神经渲染3DGS的完美融合实践

目录 一、从点云到高精地图的重建 1、数据采集 2、点云聚合 3、高精地图建模 4、三维建模与装饰 二、颠覆性革新:NeRF 与 3DGS 重建 1、仅需数日,完成街景重建 2、进一步消除 Domain gap,场景逼真如实地拍摄 3、降本增效&#xff0c…

MySQL-事务(TRANSACTION-ACID)管理

目录 一、什么是事务? 1.1.事务的定义 1.2.事务的基本语句 1.3.事务的四大特性(ACID) 二、数据库的并发控制 2.1.什么是并发及并发操作带来的影响? 2.2.并发操作带来的隔离级别 三、使用事务的场景 3.1.银行转账场景示例 3.2.模拟…

centos系统docker配置milvus教程

本人使用的是京东云服务器配置milvus 参考教程:https://blog.csdn.net/withme977/article/details/137270087 首先确保安装了docker 、docker compose docker -- version docker-compose --version创建milvus工作目录 mkdir milvus # 进入到新建的目录 cd milvu…

什么是JSON ?从核心语法到编辑器

一、什么是JSON ? JSON,即 JavaScript 对象表示法,是一种轻量级、跨语言、纯文本的数据交换格式 。它诞生于 JavaScript 生态,但如今已成为所有编程语言通用的 “数据普通话”—— 无论前端、后端,还是 Python、Java&…

计算机网络(7)——物理层

1.数据通信基础 1.1 物理层基本概念 物理层(Physical Layer)是所有网络通信的物理基础,它定义了在物理介质上传输原始比特流(0和1)所需的机械、电气、功能、过程和规程特性 1.2 数据通信系统模型 信源:生成原始数据的终端设备,常见形态包括…

深度学习基础知识总结

1.BatchNorm2d 加速收敛:Batch Normalization 可以使每层的输入保持较稳定的分布(接近标准正态分布),减少梯度更新时的震荡问题,从而加快模型训练速度。 减轻过拟合:批归一化引入了轻微的正则化效果&#…

iOS 抖音首页头部滑动标签的实现

抖音首页的头部滑动标签(通常称为"Segmented Control"或"Tab Bar")是一个常见的UI组件,可以通过以下几种方式实现: 1. 使用UISegmentedControl 最简单的实现方式是使用系统自带的UISegmentedControl: let segmentedCo…

ThreadLocal实现原理

ThreadLocal 是 Java 中实现线程封闭(Thread Confinement)的核心机制,它通过为每个线程创建变量的独立副本来解决多线程环境下的线程安全问题。 Thread └── ThreadLocalMap (threadLocals) // 每个线程持有的专属Map├── Entry[] tab…

【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境

如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境? 在 Python 开发中,为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具,能高效创建不同 Python 版本的 Poetry 虚拟环境,接下来…

defineAsyncComponent

下面,我们来系统的梳理关于 defineAsyncComponent 懒加载 的基本知识点: 一、异步组件核心概念 1.1 什么是异步组件? 异步组件是 Vue 中一种按需加载组件的机制,允许将组件代码拆分为独立的 chunk,在需要时再从服务器加载。这种技术能显著提升应用初始加载速度。 1.2 为…

ANeko v1.0.3 | 在手机里养只宠物猫 实时互动 动画细腻

ANeko是一款专为喜欢猫咪的用户设计的互动养宠应用。它让你在手机屏幕上拥有一只可爱的猫咪动画,这只猫咪会实时跟随你的手指触摸轨迹,带来生动有趣的互动体验。该应用不仅保留了用户熟悉的交互式猫动画,还结合了现代高清图形技术&#xff0c…

人工智能AI

AI 简介 AI 使我们能够生成可以改进卫生保健的出色软件,让人能够克服生理上的不便,改进智能基础结构,创造令人惊叹的娱乐体验,甚至拯救地球! 什么是 AI? 简而言之,AI 就是一种模仿人类行为和能力的软件。 关键工作负载包括: 机器学习 - 它通常是 AI 系统的基础,也是…

Vue 中 data 选项:对象 vs 函数

Vue 中 data 选项&#xff1a;对象 vs 函数 在 Vue 开发中&#xff0c;data 选项可以使用对象或函数形式&#xff0c;了解它们的使用场景非常重要。下面我将通过一个直观的示例来展示两者的区别和适用场景。 <!DOCTYPE html> <html lang"zh-CN"> <h…

python打卡第49天

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 CBAM 注意力模块介绍 从 SE 到 CBAM&#xff1a;注意力机制的演进 之前我们介绍了 SE&#xff08;Squeeze-and-Excitation&#xff09;通道注意力模块&#xff0c;其本质是对特征进行增强处理。现在&#…

iOS和桌面双端抓包实战经验总结:Sniffmaster与常见工具组合解析

近几年&#xff0c;移动端和桌面端的网络调试工作变得越来越“棘手”。过去一个代理证书搞定的场景&#xff0c;现在常常被HTTPS加密、双向验证、App安全策略给难住。特别是涉及到iOS平台时&#xff0c;很多传统抓包方案都不再适用。作为一名在多个平台开发和测试的程序员&…

cloudstudio腾讯云:matplotlib 设置中文字体

检查可用字体&#xff1a; import matplotlib.font_manager as fm fonts [f.name for f in fm.fontManager.ttflist] print(fonts) # 查看系统中可用的字体列表# 列出所有中文字体文件 !fc-list :langzh没有中文字体&#xff0c;需要下载 !sudo apt-get install fonts-wqy-m…