【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
繁體地址,請注明出處:http://hk.pswp.cn/news/909076.shtml
英文地址,請注明出處:http://en.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…