当前位置: 首页 > news >正文

ARXML文件解析-2

目录

  • 1 摘要
  • 2 常见ARXML文件注意事项以及常见问题
    • 2.1 注意事项
    • 2.2 常见问题
    • 2.3 答疑
  • 3 ARXML解读/编辑指南
    • 3.1 解读ARXML文件的步骤
    • 3.2 编辑ARXML文件的方法
    • 3.3 验证与调试
  • 4 总结

1 摘要

本文主要对ARXML文件的注意事项、常见问题以及解读与编辑进行详细介绍。
上文回顾:
ARXML文件解析-1

2 常见ARXML文件注意事项以及常见问题

2.1 注意事项

  1. 语法规则

    • 起始符<?xml(严格小写,无空格)。
    • 属性顺序versionencodingstandalone(顺序不可调换)。
    • 引号:属性值必须用 ASCII双引号 " 包裹。
    • 结束符?>(无空格)
  2. ARXML文件的特殊要求

    • 工具链兼容性
      ARXML常用于汽车软件架构(如AUTOSAR),需确保工具链(如Vector PREEvision、ETAS ISOLAR)能解析该声明。
    • 编码一致性
      若文件含非英文字符(如中文注释),必须保存为UTF-8且声明匹配,否则会乱码。
    • 格式验证
      建议通过XML验证工具(如Notepad++ XML插件、在线校验器)检查语法。
  3. 工具链注意事项

    • 语言切换
      • 工具(如Vector PREEvision)会根据<LANGUAGE>显示默认语言的文本。
      • 若未找到匹配语言,可能回退到EN或显示空值。
    • 版本兼容性
      • AUTOSAR R4.0+ 强制要求 <ADMIN-DATA>,但部分旧工具可能忽略其内容。
    • 验证规则
      • <L-2> 中的语言代码必须在 <USED-LANGUAGES> 中声明,否则可能报错。
  4. 工具验证建议

    • XML语法检查
      • 使用 XMLSpyOxygen XML Editor 验证文件格式。
      • 在线工具:https://www.xmlvalidation.com/
    • 编码检测
      • 通过 Notepad++ → 「编码」菜单确认文件编码。
    • AUTOSAR工具链验证
      • 在Vector PREEvision或ETAS ISOLAR中导入文件,检查是否报错。
  5. TAG的命名规则

    • 大小写敏感
      • 所有TAG名称区分大小写(如<SHORT-NAME>不能写成<short-name>)。
    • 命名风格
      • 使用大写字母+连字符(如<ECUC-CONTAINER-VALUE>)。
    • 唯一性
      • 同一父元素下,<SHORT-NAME>必须唯一。
  6. 如何查看完整的TAG类型?

    • AUTOSAR官方XSD文件
      • 下载对应版本的XSD(如AUTOSAR_4-2-2.xsd),所有合法TAG均在其中定义。
    • 工具链文档
      • Vector PREEvision/ETAS ISOLAR的文档会列出支持的TAG类型。
    • 实例文件参考
      • 通过工具生成的ARXML文件学习实际用法。

提示:具体TAG类型需参考AUTOSAR版本对应的规范文档,不同版本(如R4.0 vs R21-11)可能有差异。

2.2 常见问题

  • 错误1XML parsing failure: Invalid byte 1 of 1-byte UTF-8 sequence

    • 原因:文件实际编码与声明的encoding属性不一致。
  • 错误2XML declaration allowed only at the start of the document

    • 原因:XML声明前有空格、注释或其他内容。
  • 错误3Invalid content starting with 'AR-PACKAGE'

    • 原因:元素顺序不符合XSD要求(如AR-PACKAGE必须位于AR-PACKAGES内)。
  • 错误4Undefined UUID reference

    • 原因:引用的UUID未在文件中定义。
  • 错误5Encoding mismatch

    • 解决:确保文件实际编码与XML声明的encoding一致(推荐UTF-8无BOM)。
  • 错误6:Unbound namespace prefix 'xsi'

    • 原因:未声明xmlns:xsi命名空间。
    • 解决:添加 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  • 错误7:SchemaLocation Warning: No XSD found

    • 原因xsi:schemaLocation指定的XSD文件路径错误。
    • 解决:确保XSD文件存在,并修正路径(如使用绝对路径 C:\AUTOSAR\AUTOSAR_4-2-2.xsd)。
  • 错误8:Element not allowed in namespace

    • 原因:元素未在默认命名空间或指定命名空间中定义。
    • 解决:检查命名空间URI是否与AUTOSAR版本匹配。
  • 错误9:未定义的TAG

<!-- 错误示例 -->
<MY-CUSTOM-TAG> <!-- 非AUTOSAR标准TAG -->Value
</MY-CUSTOM-TAG>

后果:工具链报错(如Unknown element 'MY-CUSTOM-TAG')。

  • 错误10:TAG顺序错误
<!-- 错误示例 -->
<AR-PACKAGE><ELEMENTS>...</ELEMENTS> <!-- 必须在SHORT-NAME之后 --><SHORT-NAME>Com</SHORT-NAME>
</AR-PACKAGE>

解决:遵循XSD中定义的子元素顺序。

  • 其他错误表格示例:
错误现象原因分析解决方案
Invalid encoding declaration文件实际编码与声明不一致(如声明UTF-8但保存为ANSI)用文本编辑器(如Notepad++)将文件另存为UTF-8无BOM格式。
Malformed XML declaration使用全角引号或错误符号(如 <?xml替换全角符号为ASCII字符,确保 <?xml 格式正确。
XML declaration allowed only at the startXML声明前有空格、注释或其他内容确保XML声明为文件第一行,且无空行或注释。
Standalone document cannot have external referencesstandalone="yes" 但引用了外部XSD改为 standalone="no" 或移除外部依赖。

2.3 答疑

  • Q1: 能否省略<ADMIN-DATA>
    答案:不建议。AUTOSAR规范要求保留该节点(内容可为空),否则工具可能警告。

  • Q2: 如何添加自定义语言(如法语)?

<USED-LANGUAGES><L-2 L="FR" xml:space="default"/>  <!-- 新增法语 -->
</USED-LANGUAGES>
<DESC><L-2 L="FR" xml:space="default">Configuration Réseau</L-2>
</DESC>
  • Q3: xml:space="default" 能否省略?
    答案:可以省略(工具通常默认处理为default),但显式声明可提高可读性。

  • Q4: UUID是否可以手动指定?
    答案:可以,但需确保全局唯一性。推荐使用工具(如Vector PREEvision)自动生成。

  • Q5: <SHORT-NAME>能否重复?
    答案:同一父元素下不能重复,但不同包内可以同名(如两个<AR-PACKAGE>均可包含<SHORT-NAME>Comunication)。

  • Q6: 如何定义具体的转换链(Transformer Chain)?
    答案:需在另一个<AR-PACKAGE>中定义<TRANSFORMER-CHAIN>,并通过<TARGET-REF>引用其路径或UUID。

  • Q7: <L-10>能否嵌套其他标签?
    答案:通常不允许,其内容应为纯文本。若需结构化内容,应使用其他专用标签(如<DESC>中的<P>段落标签,需工具支持)。

  • Q8: 为什么工具不显示<L-10>的内容?
    可能原因

    1. 未在<USED-LANGUAGES>中声明对应语言。
    2. 工具未激活多语言切换功能。
    3. 标签名称不兼容(如工具期望<LONG-TEXT>而非<L-10>)。
  • Q9: 如何提取所有语言的<L-10>文本?
    方法
    使用XPath查询(示例):

    //L-10[@L='EN']/text()  <!-- 提取英文文本 -->
    //L-10[@L='CN']/text()  <!-- 提取中文文本 -->
    

3 ARXML解读/编辑指南

3.1 解读ARXML文件的步骤

步骤1:确定目标内容

  • 通信配置:查找EthernetFramePDUSignal相关标签。
  • 服务接口:搜索SERVICE-INTERFACEMETHODEVENT
  • ECU信息:定位ECU-INSTANCEETHERNET-INTERFACE

步骤2:理解元素属性

  • 关键属性示例
    • <SERVICE-ID>0x1234</SERVICE-ID>:服务唯一标识符(16进制)。
    • <METHOD-ID>0x01</METHOD-ID>:方法ID,与服务内唯一。
    • <START-BIT>0</START-BIT>:信号在PDU中的起始位。

步骤3:追踪引用关系

  • 通过<REF><TYPE-TREF>追踪跨元素的依赖:
    <SIGNAL-TO-PDU-MAPPING><I-SIGNAL-REF DEST="I-SIGNAL">/Signals/SpeedSignal</I-SIGNAL-REF>
    </SIGNAL-TO-PDU-MAPPING>
    

步骤4:验证逻辑一致性

  • 检查ID唯一性(如SERVICE-ID不可重复)。
  • 确认信号映射的位范围不重叠(如两个信号不能占用PDU的同一段比特位)。

3.2 编辑ARXML文件的方法

方法1:使用专业工具(推荐)

  • 工具示例
    • Vector PREEvision:图形化编辑通信矩阵和服务接口。
    • ETAS ISOLAR:AUTOSAR兼容的完整开发环境。
    • Elektrobit Tresos:专注于基础软件配置。
  • 优势:自动处理引用关系、语法验证和版本兼容性。

方法2:手动编辑(需谨慎)

  • 文本编辑器:使用VSCode、Notepad++等支持XML高亮和折叠的工具。
  • 注意事项
    1. 备份文件:编辑前复制原始文件以防错误。
    2. 修改属性:直接调整标签内的值(如更改<CYCLE-TIME>100</CYCLE-TIME>为200)。
    3. 添加元素:遵循现有结构插入新节点(如新增METHOD)。
    4. 处理引用:确保新元素的ID唯一,且引用路径正确。

示例:手动添加一个方法

<METHODS><CLIENT-SERVER-OPERATION><SHORT-NAME>NewMethod</SHORT-NAME><METHOD-ID>0x02</METHOD-ID><CALL-TYPE>FIRE_AND_FORGET</CALL-TYPE></CLIENT-SERVER-OPERATION>
</METHODS>

方法3:脚本自动化

  • Python + XML库:使用xml.etree.ElementTree解析和修改ARXML。
  • 示例脚本:批量修改服务端口号
    import xml.etree.ElementTree as ET
    tree = ET.parse('example.arxml')
    root = tree.getroot()
    for elem in root.findall(".//ENDPOINT-PORT"):elem.text = "30500"  # 修改所有端口为30500
    tree.write('modified.arxml')
    

3.3 验证与调试

验证工具

  • XML Schema验证:使用AUTOSAR提供的XSD文件检查语法。
    xmllint --schema AUTOSAR_4-2-2.xsd example.arxml
    
  • AUTOSAR工具链:如ISOLAR的完整性检查功能,检测逻辑错误。

常见错误处理

  • ID冲突:重复的SERVICE-IDMETHOD-ID导致通信失败。
  • 引用失效:删除被引用的元素后未更新相关引用。
  • 位映射错误:信号超出PDU长度或位重叠。

4 总结

ARXML文件通过分层包和元素描述汽车电子系统,解读需关注模块功能及引用关系,编辑推荐使用专业工具或谨慎手动调整,并始终验证文件正确性。本专题相关介绍有利于更好地理解ARXML文件。

相关文章:

ARXML文件解析-2

目录 1 摘要2 常见ARXML文件注意事项以及常见问题2.1 注意事项2.2 常见问题2.3 答疑 3 ARXML解读/编辑指南3.1 解读ARXML文件的步骤3.2 编辑ARXML文件的方法3.3 验证与调试 4 总结 1 摘要 本文主要对ARXML文件的注意事项、常见问题以及解读与编辑进行详细介绍。 上文回顾&…...

Docker设置代理

目录 前言创建代理文件重载守护进程并重启Docker检查代理验证 前言 拉取flowable/flowable-ui失败&#xff0c;用DaoCloud源也没拉下来&#xff0c;不知道是不是没同步。索性想用代理拉镜像。在此记录一下。 创建代理文件 创建docker代理配置 sudo mkdir -p /etc/systemd/s…...

ASP.NET Core Web API 参数传递方式

文章目录 前言一、参数传递方式路由参数&#xff08;Route Parameters&#xff09;查询字符串参数&#xff08;Query String Parameters&#xff09;请求体参数&#xff08;Request Body&#xff09;表单数据&#xff08;Form Data&#xff09;请求头参数&#xff08;Header Pa…...

火语言RPA--PgSQL-导入数据表格

【组件功能】&#xff1a;导入特定的表格数据到包含同样字段的数据表 将表格对象数据通过数据库操作对象导入到指定数据库。 配置预览 配置说明 源表格 表格来源有“来自表格对象”和“来自表达式”2种&#xff0c;表达式支持DataTable类型变量。 对象 对应来自表格对象&…...

Spring Cloud 网关及配置管理教学

一、课程目标 深入理解 Spring Cloud 中网关和配置管理的核心概念、原理及应用场景。熟练掌握 Spring Cloud Gateway 的配置与开发&#xff0c;能够实现请求路由、登录校验、用户信息传递等功能。学会使用 Nacos 进行配置管理&#xff0c;包括共享配置、配置热更新和动态路由的…...

202520 | 微服务

微服务 VS 单体架构 单体架构&#xff08;Monolithic Architecture&#xff09;和微服务架构&#xff08;Microservices Architecture&#xff09;是两种主流的软件设计模式&#xff0c;它们在开发、部署、扩展和维护等方面有显著差异。以下是两者的详细对比&#xff1a; 1. 定…...

32信号和槽_信号和槽存在的意义(2)

① 一个学生,可以选择多门课程来学习 一门课程,也可以被多个同学来选择 ② 张三这个同学,可以选 语文和数学 . 李四这个同学可以选 语文 和 英语 语文这门课程,既可以被张三选择,也可以被李四选择~~ ③ 引入第三张表作为关联表 ④一个信号,可以 connect 到多个槽函数上 一个槽…...

Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?

一、确定 MySQL 安装路径&#xff1a; 如果你是使用 Homebrew 安装的 MySQL&#xff0c;通常安装路径是 /usr/local/mysql/bin 。 如果你是通过官方 DMG 安装包安装的 MySQL&#xff0c;默认安装路径可能是 /usr/local/mysql/bin 。你可以在终端中使用以下命令来查找 MySQL 的…...

Django REST Framework系列教程(9)——过滤与排序

目录 前情回顾 方法一: 重写get_queryset方法 方法二: 使用django-filter 安装django-filter 自定义FilterSet类 方法三: 使用SearchFilter类 自定义SearchFilter类 排序OrderingFilter类 在前面的DRF系列教程中&#xff0c;我们以博客为例介绍了序列化器(Serializer),…...

工业级主题系统程序设计

一、架构优化方案 #mermaid-svg-gB72o6CBc2UMgkrv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gB72o6CBc2UMgkrv .error-icon{fill:#552222;}#mermaid-svg-gB72o6CBc2UMgkrv .error-text{fill:#552222;stroke:#5…...

Java 逐梦力扣之旅_[204. 计数质数]

题目: 204. 计数质数 给定整数 n &#xff0c;返回 所有小于非负整数 n 的质数的数量 。 示例 1&#xff1a; 输入&#xff1a;n 10 输出&#xff1a;4 解释&#xff1a;小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2&#xff1a; 输入&#xff1a;n 0 输出&…...

[3.3] 阻塞与非阻塞通信 理论+代码

文章目录 1. 阻塞通信的发生和解决2. 点对点通信应用程序案例 - 随机步行&#xff08;Random Walk&#xff09; 1. 阻塞通信的发生和解决 MPI的p2p中包括两种模式&#xff1a; a. 阻塞通信&#xff08;Blocking&#xff09; MPI_Send 和 MPI_Recv 在返回前&#xff0c;必须满…...

node_modules\deasync: Command failed.

运行&#xff1a;“yarn install” 时报错 PS D:\WebPro\hainan-mini-program> yarn install yarn install v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... warning " > babel-loader8.2.2" has un…...

二十种中药果实识别分类系统,Python/resnet18/pytorch

二十种中药果实识别分类系统,Python/resnet18/pytorch 基于pytorch训练, resnet18网络&#xff0c;可用于训练其他分类问题&#xff0c;也可自己重新训练 20类中药材具体包括&#xff1a;(1) 补骨脂&#xff0c;(2) 草豆蔻&#xff0c;(3) 川楝子&#xff0c;(4) 地肤子&…...

C++·异常

目录 概念 使用 异常的抛出和捕获 栈展开 catch匹配 继承体系例子 异常重新抛出 异常安全问题 例&#xff1a; 异常规范 小知识 概念 异常处理机制允许程序中独⽴开发的部分能够在运⾏时就出现的问题进⾏通信并做出相应的处理&#xff0c; 异常使得我们能够将问题的…...

C 语言高级编程指南:回调函数与设计模式

C 语言高级编程指南&#xff1a;回调函数与设计模式 目录 回调函数详解C语言中的设计模式高级回调函数应用内存管理与安全多线程环境下的设计模式 回调函数详解 1. 什么是回调函数&#xff1f; 回调函数&#xff08;Callback Function&#xff09;是一个通过函数指针调用的…...

SeaTunnel系列之:Apache SeaTunnel编译和安装

Apache SeaTunnel编译 Prepare编译克隆源代码本地安装子项目从源代码构建 SeaTunnel构建子模块安装 JetBrains IDEA Scala 插件安装 JetBrains IDEA Lombok 插件代码风格运行简单示例不仅如此 安装下载 SeaTunnel 发布包下载连接器插件从源代码构建 SeaTunnel 运行 SeaTunnel 在…...

zk基础—5.Curator的使用与剖析二

大纲 1.基于Curator进行基本的zk数据操作 2.基于Curator实现集群元数据管理 3.基于Curator实现HA主备自动切换 4.基于Curator实现Leader选举 5.基于Curator实现分布式Barrier 6.基于Curator实现分布式计数器 7.基于Curator实现zk的节点和子节点监听机制 8.基于Curator创…...

bge-m3+deepseek-v2-16b+离线语音能力实现离线文档向量化问答语音版

ollama run deepseek-v2:16b ollama pull bge-m3 1、离线听写效果的大幅度提升。50M 1.3G&#xff08;每次初始化都会很慢&#xff09;---优化到首次初始化使用0延迟响应。 2、文档问答历史问题处理与优化&#xff0c;文档问答离线策略讨论与参数暴露。 3、离线大模型答复中断…...

[leetcode]3123. 最短路径中的边(Dijkstra+反向搜索找边)

题目链接 题意 给定n个点的无向图 给定一个edges{u,v,w}数组 表示u到v有一条边权为w的无向边 返回一个bool数组ans&#xff0c;ans[i]1表示edges[i]在任意一条0到n-1的最短路中 思路 先Dijkstra找出最短路再从n-1出发 反向搜索 当前点i&#xff0c;邻接点j&#xff0c;边权…...

构建macOS命令速查手册:基于Flask的轻量级Web应用实践

构建macOS命令速查手册&#xff1a;基于Flask的轻量级Web应用实践 一、项目概述 本文介绍一个基于Flask框架开发的macOS命令速查Web应用。该应用通过结构化的命令数据存储和响应式前端设计&#xff0c;为用户提供便捷的命令查询体验&#xff0c;具备以下特点&#xff1a; 六…...

中国移动启动数字乡村“五新升级”:年底前,行政村5G覆盖达95%

大湾区经济网品牌观察报道&#xff0c;近日&#xff0c;在国家全面推进乡村振兴的战略背景下&#xff0c;中国移动近日发布数字乡村升级行动计划&#xff0c;以“AI大模型数智化平台”为核心引擎&#xff0c;围绕“五新升级”构建“两个新型”信息服务体系。 一、数字基建筑基&…...

借助mcpo在open-webui中使用mcp

open-webui前几天发布了0.6版本&#xff0c;我立即进行了升级。新版本中一个重要功能是通过mcpo方式支持了mcp server。本文将介绍mcpo是什么&#xff0c;以及如何在open-webui中使用它。同时&#xff0c;我也会分享几个在接入过程中遇到的问题及解决方案。 首先来介绍mcpo&…...

Mysql的备份还原

MySQL日志 日志类型 MySQL有几个不同的日志文件&#xff0c;可以帮助你找出mysqld内部发生的事情&#xff1a; 日志文件记入文件中的信息类型错误日志记录启动、运行或停止时出现的问题。查询日志记录建立的客户端连接和执行的语句。二进制日志记录所有更改数据的语句。主要用…...

测试:正交法设计测试用例

目录 一、什么是正交法 二、利用正交表设计测试用例 正交法设计测试用例的步骤 一、什么是正交法 正交法的目的是为了减少测试用例的数量&#xff0c;让尽可能少的用例覆盖两两组合。认识正交表。 最简单的正交表是L4(2^3)&#xff0c;含意如下&#xff1a; “L”代表正…...

zk基础—5.Curator的使用与剖析一

大纲 1.基于Curator进行基本的zk数据操作 2.基于Curator实现集群元数据管理 3.基于Curator实现HA主备自动切换 4.基于Curator实现Leader选举 5.基于Curator实现分布式Barrier 6.基于Curator实现分布式计数器 7.基于Curator实现zk的节点和子节点监听机制 8.基于Curator创…...

VSCode中结合DeepSeek使用Cline插件的感受

前言 听网上有传言说AI智能插件Cline非常的好用&#xff0c;而且相对Cursor而言还是免费的&#xff0c;捆绑的大模型选择也比较的广泛。所以&#xff0c;特意安装试用了一下。 我的采用IDE是VSCode&#xff0c;捆绑的大模型是最近比较火的DeepSeek。总体使用下来感觉非常的棒。…...

安卓开发工程师-Java 常用数据结构

1. Java 中的数组和集合有什么区别&#xff1f; 数组&#xff1a; 长度固定&#xff1a;一旦声明&#xff0c;长度不能改变。类型单一&#xff1a;只能存储相同类型的元素。存储效率高&#xff1a;底层是连续的内存空间&#xff0c;访问速度快。示例代码&#xff1a; int[] …...

thinkphp8.0上传图片到阿里云对象存储(oss)

1、开通oss,并获取accessKeyId、accessKeySecret <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><tit…...

Angular 2 模板语法详解

Angular 2 模板语法详解 引言 Angular 2 作为一款强大的前端框架,以其组件化的开发模式和高效的性能被众多开发者所青睐。模板语法是Angular 2中用于定义组件UI的关键部分。本文将详细介绍Angular 2的模板语法,帮助开发者更好地理解和运用这一功能。 模板语法概述 Angula…...

进行性核上性麻痹护理攻略:多维度守护健康

日常起居护理 保证患者居住环境安全&#xff0c;清除地面障碍物&#xff0c;避免患者跌倒。家具摆放固定且合理&#xff0c;方便患者活动。为患者准备宽松、舒适、易于穿脱的衣物&#xff0c;减轻穿衣时的困难。在饮食上&#xff0c;提供富含营养、易于吞咽的食物&#xff0c;…...

MessageQueue --- RabbitMQ WorkQueue

MessageQueue --- RabbitMQ WorkQueue 什么是WorkQueue如何分发RoundRobinFair dispatch (Prefetch) --- 能者多劳 什么是WorkQueue Work queues&#xff0c;任务模型。简单来说就是让多个消费者绑定到一个队列&#xff0c;共同消费队列中的消息。当消息处理比较耗时的时候&…...

Redis内存碎片详解!

目录 一、 什么是内存碎片&#xff1f;&#x1f914;二、 为什么 Redis 会有内存碎片呢&#xff1f;&#x1f937;‍♀️三、 如何查看 Redis 内存碎片的信息&#xff1f;&#x1f50d;四、 如何清理 Redis 内存碎片&#xff1f;&#x1f9f9;五、总结&#x1f4dd; &#x1f3…...

如何使用 Nginx 代理 Easysearch 服务

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器&#xff0c;广泛用于负载均衡、缓存、SSL 终端和服务代理等场景。本篇将尝试使用 Nginx 代理 Easysearch 服务&#xff0c;方法同样适用于 Elasticsearch 和 Opensearch。 测试环境 Easysearch 集群版本为 1.10.0&#xff…...

用python输出OLED字模库的符号

提示&#xff1a;博主是小白&#xff0c;如有不足&#xff0c;望海涵和指出 在单片机上练习使用OLED显示屏时&#xff0c;可以看到有个OLED字模库 本文用python将这些字符打印出来&#xff0c;代码如下&#xff08;本文只适用与128*64的OLED&#xff0c;如果是其它OLED&#xf…...

【java】Class.newInstance()

在 Java 中&#xff0c;Class.newInstance()是一个用于创建类的新实例的方法。它调用类的无参构造函数来创建对象。然而&#xff0c;从 Java 9 开始&#xff0c;Class.newInstance()方法已经被标记为废弃&#xff0c;推荐使用其他替代方法。 Class.newInstance()的使用 Class.…...

Apache Arrow 使用

下述操作参考 Building Arrow C — Apache Arrow v20.0.0.dev267 安装依赖组件 sudo apt-get install \build-essential \ninja-build \cmake 下载源码 git clone --recursive --shallow-submodules gitgithub.com:apache/arrow.git 配置 创建build目录并且进入 mkdir a…...

第二届图像处理与人工智能国际学术会议(ICIPAI2025)

重要信息 时间&#xff1a;2025年4月18日-20日 地点&#xff1a;吉林-长春&#xff08;线上线下结合&#xff09; 官网&#xff1a;www.icipai.org 简介&#xff08;部分&#xff09; 主题 其他 图像处理与人工智能&#xff08;Image Processing & Artificial Intell…...

Kafka 消息堆积的原因有哪些?

Kafka 产生消息堆积的本质原因是&#xff1a; ⚠️ “消费速度 < 生产速度”&#xff0c;也就是&#xff1a;写入太快&#xff0c;处理太慢。 下面我从实际场景出发&#xff0c;帮你梳理出常见的几种堆积情况&#xff0c;结合原因和例子&#xff0c;便于你对号入座排查问题 …...

解决cline等免费使用deepseek模型的问题

OpenAI、OpenRouter、Claude等都无法在国内免费正常使用&#xff0c;cline作为在vscode中应对cursor比较好的替代方案&#xff0c;怎么使用免费Deepseek&#xff0c;最核心的是在点击模型名称打开配置以下几项&#xff1a; 1、打开VSCode左侧的Cline\Roo Cline插件面板 2、点…...

ROS多设备交互

ROS多设备连接同一个Master&#xff1a;ROS Master多设备连接-CSDN博客 在多个PC端连接同一个ROS Master后&#xff0c;接下来就可以实现不同设备之间的话题交流&#xff0c;Master主机端启动不同PC端的功能包等功能了 尽管多个PC端拥有不同的ROS工作空间&#xff0c;但是只要…...

浅谈 MVVM 模式

MVVM&#xff08;Model-View-ViewModel&#xff09; 是一种软件架构设计模式&#xff0c;旨在将用户界面&#xff08;UI&#xff09;与业务逻辑分离&#xff0c;从而提高代码的可维护性和可测试性。它在现代前端开发和桌面应用开发中得到了广泛应用&#xff0c;尤其是在构建复杂…...

flutter点击事件教程

在 Flutter 中&#xff0c;处理点击事件是非常常见的操作。Flutter 提供了多种方式来实现用户交互&#xff0c;比如按钮点击、手势检测等。下面是一个详细的教程&#xff0c;帮助你理解如何在 Flutter 中实现点击事件。 一、使用 onPressed 实现按钮点击事件 Flutter 提供了 E…...

[SAP SD] 常用事务码

在SAP系统中&#xff0c;事务码(Transaction Code)是一个具有特定功能的代码标识符&#xff0c;用于快速调用和执行SAP系统内的各种业务模块的功能 /NT-code: 关闭当前业务窗口&#xff0c;退回到SAP初始界面&#xff0c;进入对应的T-Code窗口 /OT-code: 新建SAP GUI窗口&…...

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的未来:从微服务到云原生的演进

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、引子&…...

保留格式地一键翻译英文ppt

我手头上有一个贝叶斯推断的英文ppt&#xff0c;假如我想翻译成中文&#xff0c;整合起来进行pre&#xff0c;你会怎么做&#xff1f; 1&#xff0c;复制粘贴型&#xff1a; 在翻译软件与源文件ppt之间不断流转&#xff0c;效率太低 2&#xff0c;office ppt自带翻译插入整合…...

晶晨S905L3S/S905L3SB_安卓9.0_10秒开机_通刷-线刷固件包

晶晨S905L3S&#xff0f;S905L3SB_安卓9.0_10秒开机_通刷-线刷固件包 线刷方法&#xff1a;&#xff08;新手参考借鉴一下&#xff09; 使用晶晨刷机工具USB_Burning_Tool进行刷机&#xff1b;请使用Amlogic USB Burning Tool v2.2.5或v2.2.7&#xff08;晶晨线刷烧录工具v2.2…...

Android Transition转场动效使用全解析

Transition的使用和原理 项目效果 1. 简述 Android 4.4.2 中引入了 Transition 过渡动画&#xff0c;不过功能比较简单。在 Android 5.0 的 Material Design 中引入更完整和强大的 Transition 框架。通过Transition可以实现&#xff1a; 同一个页面中的场景过渡动画Activit…...

第九章Python语言高阶加强-面向对象篇

目录 一.初始对象 二.成员方法 1.成员变量和成员方法 三.类和对象 四.构造方法 五.其他内置方法&#xff08;魔术方法&#xff09; 1.__str__字符串方法 2.__lt__小于符号比较方法 3.__le__小于等于比较符号方法 4.__eq__比较运算符实现方法 六.封装 七.继承 1.继承…...

AI重构SEO关键词智能布局

内容概要 随着人工智能技术在搜索引擎优化领域的深入发展&#xff0c;AI驱动的关键词智能布局正在重塑传统SEO策略的核心逻辑。通过整合自然语言处理、深度学习与语义分析技术&#xff0c;现代SEO系统已形成包含智能分词、意图解码、动态优化的三维技术框架&#xff0c;使关键…...