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

汽车诊断开发入门以及OBD检测

一、OBD 概述

  1. 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。
  2. 设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步,其功能从单纯的排放监控扩展到对车辆各项性能指标的实时监控和故障诊断。

二、OBD 工作原理

  1. 核心组件 - ECU:ECU(电子控制单元)是 OBD 系统的核心,如同系统的 “大脑”。它接收来自各类传感器(如氧气传感器、温度传感器、压力传感器等)的数据,进而实时监测和调节车辆的运行状态。同时,根据传感器信息,ECU 控制不同执行器(如燃油喷射器、点火系统、刹车系统等),以优化车辆性能。例如,发动机控制单元(ECM)会依据氧气传感器的数据,精准调节燃油喷射量。
  2. 传感器的作用:传感器负责实时收集车辆各个部件的数据,这些数据涵盖发动机温度、氧气浓度、燃油压力、空气流量等。通过对这些参数的持续监控,系统能够判断车辆是否存在故障,或者是否需要对某些部件进行调整。常见的 OBD 传感器包括:
    • 氧气传感器:监测排气中的氧气浓度,辅助发动机控制单元(ECU)调节燃油喷射量,提高燃油效率并降低排放。
    • 温度传感器:包含发动机冷却液温度传感器和排气温度传感器等,用于监控发动机和排气系统的温度,确保发动机维持在最佳工作温度范围。
    • 压力传感器:像油压传感器、气压传感器等,检测系统中的压力变化,保障汽车各个部件正常工作。
    • 速度传感器:测量车辆的行驶速度,并将信息提供给 ECU,用于控制换挡、油门响应等。
    • 位置传感器:如曲轴位置传感器和凸轮轴位置传感器,监测发动机内部组件的位置,助力 ECU 确定最佳点火时机。
    • 质量空气流量传感器(MAF):测量进入发动机的空气流量,以便调整燃油喷射量,实现最佳燃烧效果。
  3. 执行器的功能:执行器响应 ECU 的指令,调节车辆各部件的工作状态。通过改变物理参数,确保车辆运行在理想状态。常见的 OBD 执行器如下:
    • 燃油喷射器:按照 ECU 指令,精确控制燃油喷射量,保证燃烧室内燃油和空气达到最佳混合比,提升发动机燃烧效率。
    • 点火线圈:执行点火系统操作,依据 ECU 信号点燃空气燃油混合物,启动发动机运转。
    • 节气门:根据驾驶员的油门输入信号,调节发动机进气量,间接控制发动机功率输出。
    • EGR 阀(废气再循环阀):控制废气再循环系统,将部分排气气体引入进气系统,降低燃烧温度,减少氮氧化物排放。
    • 空调压缩机:由 ECU 控制,调节车内空调的温度和湿度,营造舒适的车内环境。
  4. 检查引擎指示灯(MIL):车辆的检查引擎指示灯,又称故障指示灯(MIL, Malfunction Indicator Light),是 OBD 系统的重要部分。当系统检测到任何异常或故障时,MIL 会亮起,提醒车主车辆可能存在问题。车主可根据 MIL 提示,尽早关注潜在故障,并及时进行检查和修复。
  5. 诊断链接连接器(DLC):OBD 系统借助诊断链接连接器(DLC, Diagnostic Link Connector)与外部诊断设备相连,进行故障诊断。DLC 接口一般位于驾驶员座椅下方,位置固定,方便维修人员或车主连接诊断工具。通过 DLC 连接的设备能够读取 ECU 传输的故障码,有助于快速识别故障原因。

三、OBD 发展历程

  1. OBD - I(20 世纪 80 年代):初代车载诊断系统,主要用于监控与排放相关的汽车部件,减少污染。该系统依靠车载传感器反馈,监测发动机运行状态和排放标准达标情况。但 OBD - I 系统使用不同品牌和车型专用的诊断接口和协议,维修人员读取和诊断故障时,需使用不同设备和工具。尽管它为现代汽车电子控制系统奠定了基础,但因缺乏统一标准和接口,使用不便,且只能提供有限故障信息。
  2. OBD - II(20 世纪 90 年代):1991 年,汽车工程师协会(SAE)和国际标准化组织(ISO)联合发布 OBD - II 标准,规范 OBD 系统的接口和通信协议。这一标准化协议对全球汽车行业影响深远,推动了 OBD - II 的普及。OBD - II 于 1994 年首次在部分车型应用,1996 年成为美国市场所有新车的强制要求。其最大特点是统一的接口(SAE J1962),支持多种标准化通信协议(如 ISO 9141、ISO 14230、ISO 15765 等),大大提高了诊断工具的兼容性,使维修和检测更高效、可靠。

四、OBD 系统关键组成部分

  1. ECU(电子控制单元)
    • 控制功能:监控和调节各种传感器信号,并据此调整执行器工作。
    • 数据处理:接收并处理来自各个传感器的数据,通过分析判断系统是否正常工作。异常时触发故障指示灯(如 “检查引擎” 灯)或故障代码(DTC)。
    • 故障诊断:汽车出现问题时,存储故障码,并通过 DLC 接口传输给外部诊断工具,帮助技术人员或车主快速定位故障源。
    • 协调各系统:在现代汽车中,多个 ECU 协同工作。例如动力系统的 ECU(如发动机 ECU)与车身系统的 ECU(如安全气囊 ECU)共享数据,必要时进行系统调节,保障汽车整体安全性和性能。
  2. 传感器:如前文所述,负责监测和采集车辆各个重要参数的数据,为 ECU 提供判断车辆工作状态及调整系统的依据。
  3. 执行器:根据 ECU 指令调节车辆各部件工作状态,确保车辆运行在理想状态。
  4. DLC 接口(诊断连接接口)
    • 故障诊断:维修人员通过 DLC 接口连接 OBD - II 扫描工具,读取故障代码(DTC),诊断车辆故障原因,如发动机故障、排放问题等。
    • 实时数据监控:用户可通过此接口查看 ECU 实时数据,如发动机转速、车速、油温、氧气传感器数据等,评估车辆整体性能。
    • 系统测试与调整:维修人员利用 DLC 接口进行系统测试,测试发动机、传动系统或排放系统等部件工作状态。此接口还支持部分 ECU 的重置、编程和校准功能。
    • 远程监控:随着智能车载系统发展,DLC 接口可与远程监控平台连接,便于车队管理者实时监控车辆状态,提前发现潜在故障。

五、OBD - 汽车的 “黑匣子”

  1. 扩展功能:早期 OBD 系统主要监控排放系统,随着技术进步,OBD - II 系统功能不断拓展,不仅是车辆故障诊断核心工具,还能记录多种行驶数据,对车主、车队管理者及保险公司等意义重大。
  2. 车辆行驶数据记录
    • 行驶速度:实时记录和监控车辆速度,用于分析驾驶行为。
    • 行驶里程:记录车辆累计行驶里程,辅助规划维护周期。
    • 加速与急刹车情况:监控油门加速和急刹车发生频率,评估驾驶员驾驶习惯。
    • 驾驶习惯:综合油门加速、刹车、转弯等数据,为车主提供驾驶行为反馈,助力改善驾驶习惯。
    • 行车电脑状态:读取车载电脑实时状态,包括发动机温度、油压、燃油效率等重要数据。
  3. 安全性与故障预警:OBD 系统具备故障诊断能力,检测到车辆故障或异常时,通过故障码(DTC,Diagnostic Trouble Code)指示故障类型,帮助维修人员快速定位问题。尤其在发动机管理系统和排放控制系统方面,故障预警可降低维修成本,提高行车安全。
  4. OBD 接口位置:为便于连接诊断工具,OBD 接口设计在易于接触位置。常见位置如下:
    • 驾驶员左脚位置上方:最为常见,接近驾驶员座位,方便连接诊断工具。
    • 刹车上方:部分车辆的 OBD 接口位于刹车踏板上方。
    • 油门上方:少数车型将 OBD 接口安装在油门踏板上方区域。
    • 换挡杆前方的烟灰缸下方:某些车型的 OBD 接口靠近烟灰缸,通常在换挡杆前方或旁边。
    • 副驾驶储物箱下方:车内设计特殊的车型,可能将 OBD 接口安装在此处,如出租车或共享车辆,避免驾驶员频繁接触。
    • 中央扶手箱附近或里面:部分高端车型将 OBD 接口安装在中央扶手箱内侧或旁边,这种设计较为少见。

六、OBD - II 接口:DLC 标准连接器

  1. DLC 标准连接器概述:诊断链接连接器(DLC)是 OBD - II 系统最重要的物理接口之一,位于驾驶员座位下方,方便维修人员和车主连接 OBD - II 扫描工具或诊断仪器。其标准化使不同品牌和型号车辆可使用相同诊断工具,简化故障诊断和维修过程。
  2. DLC 标准连接器的 PIN 脚定义:OBD - II 的 DLC 接口通常有 16 个 PIN,各 PIN 功能如下:
    • PIN1:接地(Ground)
    • PIN2:J1850 Bus +(美国标准总线)
    • PIN3:发送数据(Data In)
    • PIN4:接地(Ground)
    • PIN5:信号地(Signal Ground)
    • PIN6:CAN 高电平(CAN High)
    • PIN7:K 线(ISO 9141 - 2)
    • PIN8:未使用(Not Used)
    • PIN9:未使用(Not Used)
    • PIN10:J1850 Bus -(美国标准总线)
    • PIN11:未使用(Not Used)
    • PIN12:未使用(Not Used)
    • PIN13:未使用(Not Used)
    • PIN14:CAN 低电平(CAN Low)
    • PIN15:L 线(ISO 9141 - 2)
    • PIN16:电池电源(Battery Positive)
      这些 PIN 用于连接诊断工具、ECU 或其他车载电子设备。不同通信协议(如 CAN、K - Line、J1850)通过这些接口传输数据,使 OBD - II 工具能读取车辆实时数据和故障码。

七、CAN 总线技术:OBD - II 的核心通信协议

  1. 总线速率与类型:CAN 总线根据通信速率不同分为多种类型,具体如下:
    • 高速 CAN(HS CAN):速率高达 1 Mbps,主要应用于发动机、变速箱等高优先级系统。
    • 中速 CAN(MS CAN):速率在 125 kbps 至 500 kbps 之间,用于车身电子、门控制系统等。
    • 低速 CAN(LS CAN):速率为 10 kbps 至 125 kbps,主要用于车内低优先级电子设备。
    • J1939:速率 250 kbps,主要用于卡车、重型车辆等。
  2. 总线的演变与趋势:随着 OBD - II 和车辆电子化普及,CAN 总线(尤其是 HS CAN)逐渐取代传统低速总线(如 ISO、J1850 等)。CAN 总线优势在于高传输速率和可靠性,契合现代汽车复杂电子系统需求。其中高速 CAN(HS CAN)和中速 CAN(MS CAN)成为车辆内部系统间数据交换的主要通信方式。而 J1939 是基于 HS CAN 的扩展,主要应用于商用车、卡车、重型机械等领域,在数据传输速率和协议上进行了定制化优化,以满足工业车辆需求。

八、OBD - II 工作原理与技术细节

  1. 电子控制单元(ECU):作为 OBD - II 系统核心部件,接收传感器输入信号并发出相应控制指令,通过控制燃油喷射、空气流量、点火系统等确保发动机处于最佳运行状态。车辆不同系统通常由多个 ECU 协同工作。
  2. 传感器与数据采集:OBD - II 系统依靠各类传感器收集车辆运行数据,并传输至 ECU。常见传感器已在前面详细介绍。
  3. 诊断与故障代码(DTC):当系统监测到故障或异常行为时,OBD - II 生成故障诊断代码(DTC)。故障码遵循标准化格式,方便维修技师快速诊断问题来源。故障码分为五大类:
    • P 类代码(Powertrain):与动力传动系统相关,如发动机、变速箱等。
    • B 类代码(Body):与车身系统相关,如空调、安全气囊等。
    • C 类代码(Chassis):与底盘系统相关,如刹车、悬挂等。
    • U 类代码(Network):与车载网络系统相关,如 CAN 总线、ECU 通信等。
  4. 诊断接口与通信协议:OBD - II 系统通过 SAE J1962 接口与外部诊断工具(如 OBD - II 扫描仪)连接,该接口位于驾驶员座位下方,便于接入。常见的 OBD - II 通信协议有:
    • ISO 9141/14230:早期车辆使用的协议,在欧洲市场较为流行。
    • CAN(Controller Area Network):现代车辆广泛采用的高效总线协议,支持高速数据传输。
    • ISO 15765 - 4(CAN 协议):全球最常见的协议,适用于现代车载系统。

九、OBD常见故障码的含义和解读方法

1.OBD 故障码的含义

  • 故障码结构:OBD 故障码通常由一个字母和四个数字组成。
    • 第一位字母:表示故障类型,常见的有 “P”(动力系统)、“B”(车身系统)、“C”(底盘系统)、“U”(网络系统)。
    • 第二位数字:表示故障的具体分类。以 “P” 开头的故障码为例,“0” 表示通用故障码,由汽车工程师协会(SAE)制定统一标准;“1” 表示制造商自定义故障码。
    • 第三、四位数字:具体指出故障的位置或性质。不同的数字组合代表不同的故障内容,例如 “P0101” 中,“01” 通常表示与空气流量传感器相关的故障,“01” 后面的 “01” 则进一步说明是空气流量传感器的性能问题。

2.OBD 故障码的解读方法

  • 使用专业诊断设备:通过将专业的 OBD 诊断仪连接到车辆的 OBD 接口上,读取故障码。诊断仪通常会显示故障码的具体内容和相关的故障描述,有些高级的诊断仪还能提供故障的可能原因和解决方案。
  • 查阅维修手册:每款车型都有对应的维修手册,其中包含了详细的 OBD 故障码列表和解读说明。根据故障码在维修手册中查找相关信息,了解故障的具体含义、可能原因和维修方法。
  • 在线资源查询:一些汽车维修网站和论坛也提供 OBD 故障码的查询服务。可以输入故障码或车辆信息,在这些网站上查找其他用户或专业维修人员对该故障码的解读和处理经验。

     最后,作为现代汽车的“健康管家”,OBD系统不仅是维修检测的基础工具,更是车联网、智能驾驶的数据枢纽,持续推动汽车产业向高效、环保、智能化升级。

相关文章:

汽车诊断开发入门以及OBD检测

一、OBD 概述 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步…...

高速PCB设计过孔不添乱,乐趣少一半

高速先生成员--姜杰 高速先生最近写了不少介绍高速信号仿真的文章(文章链接汇总,看这篇就够了《聊聊100G信号的仿真》)。雷豹逐一研读后感觉获益匪浅,甚至一度觉得自己强的可怕,不过,在得知即将负责一个11…...

人工智能在医疗领域的前沿应用与挑战

在当今数字化时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活,其中医疗领域无疑是受益最为显著的行业之一。从疾病诊断、治疗方案制定到患者护理,AI的应用不仅提高了医疗服务的效率和质量,还为医…...

怎么实现实时无延迟的体育电竞动画直播

要实现真正的实时无延迟动画直播,需要考虑以下几个关键方面: 一、技术方案选择 1.WebRTC技术 点对点(P2P)传输协议,延迟可低至100-500ms 适用于互动性强的应用场景 开源且被主流浏览器支持 2.低延迟HLS/CMAF 可将延迟控制在1-3秒 兼容…...

VLAN、QinQ、VXLAN的区别

1、技术本质与封装方式 技术OSI层级封装原理标识位长度拓展性VLAN数据链路层L2在以太网帧头插入802.1Q Tag(单层VLAN标签)12位(4094个)有限,仅支持单一网络域内隔离QinQ数据链路层L2在原始VLAN标签外再封装一层802.1Q…...

使用大语言模型进行Python图表可视化

Python使用matplotlib进行可视化一直有2个问题,一是代码繁琐,二是默认模板比较丑。因此发展出seaborn等在matplotlib上二次开发,以更少的代码进行画图的和美化的库,但是这也带来了定制化不足的问题。在大模型时代,这个…...

Mac电脑(M芯片)安装ubuntu22.04

一、下载VMware虚拟机 VMware官网下载VMware Fusion 二、下载ubuntu镜像 M系列的Mac电脑要下载arm架构的镜像 方法一:官网下载 方法二:清华源下载 清华源镜像 点击获取下载链接 选择Ubuntu,下载22.04.5(arm64,Server) 三、创建虚拟机 …...

【linux】管理磁盘——RAID10(含备份)与逻辑卷管理

RAID概念 当今CPU性能每年可提升30%-50%但硬盘仅提升7%硬盘在服务器中需要持续、频繁、大量的I/O操作,故障机率较大,则需要对硬盘进行技术改造,提 升读写性能、可靠性1988年,加利福尼亚大学伯克利分校首次提出并定义了RAID技术概…...

Day3 蓝桥杯省赛冲刺精炼刷题 —— 排序算法与贪心思维

一、0实现插入排序 - 蓝桥云课 算法代码&#xff1a; #include <stdio.h>const int N 10000; // 定义数组的最大大小int arr[N 10], temp[N 10]; // arr为待排序的数组&#xff0c;temp为辅助数组// 合并操作&#xff1a;将两个已经排好序的子数组合并为一个有序数…...

查看iphone手机的使用记录-克魔实战

如何查看 iOS 设备近期的详细使用数据 在日常使用手机时&#xff0c;了解设备的运行状态和各项硬件的使用情况可以帮助分析耗电情况、优化应用使用方式。iOS 设备提供了一些数据记录&#xff0c;能够显示应用的启动和关闭时间、后台运行情况&#xff0c;以及应用在使用过程中调…...

Tcp——客户端服务器

Tcp——客户端服务器 目录 一、基本概念 二、代码 2.1 ser服务器 2.2 cil客户端 一、基本概念 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP模型中&#xff0c;TCP位于IP层之上&#xff0c;应用层之下&#x…...

《HarmonyOS Next开发进阶:打造功能完备的Todo应用华章》

章节 6&#xff1a;日期选择器与日期处理 目标 学习如何使用DatePicker组件。理解日期格式化和日期计算。 内容 日期选择器基础 使用DatePicker组件。处理日期选择事件。 日期格式化 格式化日期为友好的文本。 日期计算 判断日期是否过期或即将到期。 代码示例 Entry Com…...

化学方程式配平 第33次CCF-CSP计算机软件能力认证

很经典的大模拟题目 但是还不算难 大模拟题最需要注意的就是细节 写代码一定要考虑全面 并且要细心多debug 多打断点STL库的熟练使用 istringstream真的处理字符串非常好用 注意解耦合思想 这样改代码debug更加清晰 https://www.acwing.com/problem/content/5724/ #includ…...

数据结构【链表】

链表 1.单链表1.1概念与结构1.1.1结点1.1.2链表的性质1.1.3链表的打印 1.2实现单链表1.3链表的分类 2.双向链表2.1概念与结构2.2实现双链表 3.顺序表与链表的分析 1.单链表 1.1概念与结构 概念&#xff1a;链表是⼀种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据…...

AIP-210 Unicode

编号210原文链接AIP-210: Unicode状态批准创建日期2018-06-28更新日期2018-06-28 API在处理&#xff08;解释、限制长度、计费&#xff09;字符串值和字符串编码时&#xff0c;应当保持一致&#xff0c;范围从理解上的歧义&#xff08;如域“限制为1024个字符”&#xff09;到…...

WiFi(无线局域网)技术的多种工作模式

WiFi&#xff08;无线局域网&#xff09;技术支持多种工作模式&#xff0c;以满足不同的网络需求和应用场景。以下是主要的WiFi工作模式及其详细说明&#xff1a; 1. 基础设施模式&#xff08;Infrastructure Mode&#xff09; [无线接入点 (AP)]/ | \ [客户端…...

游戏引擎学习第198天

回顾并为今天的内容设定 今天我们有一些代码需要处理。昨天我们进行了一些调试界面的整合工作&#xff0c;之前我们做了一些临时的、粗糙的操作&#xff0c;将一些东西读进来并放到调试界面中。今天&#xff0c;我们并不打算进行大规模的工作&#xff0c;更多的是对之前的代码…...

git命令简陋版本

git push git pull 临时仓库暂存区 ##############创建提交################ git init #创建git地址 git config --global user.name "***YQ1007" git config --global user.email "***gmail.com" git remote…...

MySQL 进阶 面经级

会用数据库&#xff0c;找大厂工作是远远不够的。 本人2025美团暑期AI面试好几个MySQL场景问题不会答&#xff0c;已脏面评。遂在此整理学习&#xff01; 文章目录 美团AI面1.数据库分片sharding的概念&#xff0c;它有什么优势和挑战?优势Sharding 挑战 2. 分库分表的常见策…...

JavaScript数组Array的使用:添加、删除、排序、遍历、互转

1、数组的概述 数组是存储于一个连续空间且具有相同数据类型的元素集合。可以把数组看作一张单行表格,该表格的每一个单元格都可以存储一个数据,而且各单元格中存储的数据类型可以不同。这些单元格被称为数组元素,每个数组元素都有一个索引号,通过索引号可以方便地引用数组…...

Vue Transition组件类名+TailwindCSS

#本文教学结合TailwindCSS实现一个Transition动画的例子# 举例代码&#xff1a; <transition enter-active-class"transition-all duration-300 ease-out"enter-from-class"opacity-0 translate-y-[-10px]"enter-to-class"opacity-100 translate-…...

蓝桥杯备赛:动态规划入门

写题的时候我发现&#xff1a;除了输入输出、循环、条件等基本语句一类的题目之外&#xff0c;我就什么都不会了&#xff0c;题目根本写不下去。 需要学&#xff1a;动态规划、哈希表、二分法、贪心算法等基本算法 现在什么都不会&#xff0c;对这些东西也是一点都不会懂&…...

【VSCode SSH 连接远程服务器】:身份验证时,出现 key: invalid format 的问题

从其它电脑上把私钥文件复制后&#xff0c;出现格式错误 很有可能是复制的时候引入了乱码 很有可能是复制的时候引入了乱码 因此直接从其它电脑上把私钥文件复制到新设备上即可&#xff01;&#xff08;不直接复制私钥的内容&#xff09; 亲测有效。...

git和VScode

游戏存档保存的是游戏的进度 git保存的是代码的进度 Vscode和git 要正常的使用git首先要设置姓名和邮箱 要配合gitee&#xff08;也可以是其他平台&#xff0c;以gitee举例&#xff09;使用&#xff0c;首先创造一个gitee账号&#xff0c;复制邮箱和用户名 在VScode中找到…...

c语言数据结构——八大排序算法实现

文章目录 八大排序算法排序算法种类选择排序类堆排序算法思路时间复杂度和空间复杂度 选择排序算法思路算法优化时间复杂度和空间复杂度 插入排序类插入排序算法思路时间复杂度和空间复杂度 希尔排序算法思路时间复杂度和空间复杂度 非比较排序类计数排序时间复杂度和空间复杂度…...

Python入门(5):异常

目录 1 异常处理基础概念 1.1 什么是异常&#xff1f; 1.2 异常与错误的区别 2 异常处理基础 2.1 常见内置异常类型 2.2 try-except 基本结构 2.3 捕获多个异常 2.4 抛出异常 2.4.1 使用raise语句 2.4.2 自定义异常类 3 高级异常处理技巧 3.1 不要过度捕…...

OpenCv(五)——边缘检测

目录 边缘检测 一、sobel算子边缘检测 &#xff08;1&#xff09;原理 1、X轴方向的边缘检测 2、Y轴方向的边缘检测 &#xff08;2&#xff09;sobel算子参数 &#xff08;3&#xff09;X轴方向边缘检测代码演示 1、显示圆的图像 2、x方向上的边缘检测&#xf…...

论文笔记:Instruction-Tuning Llama-3-8B Excels in City-Scale MobilityPrediction

2024 Sigspatial Hummob Workshop 第2/3名 提出了 Llama-3-8B-Mob——一个基于 Llama-3-8B的指令微调版本&#xff0c;专为长期、多城市人类移动预测而设计。 1 问题定义 2 方法 将轨迹预测问题重构为一个带有指令的问答任务 通过 GPT-3.5 和 4 进行实验&#xff0c;发现虽然…...

基础框架系列分享:一个通用的Excel报表生成管理框架

由于我们系统经常要生成大量的Excel报表&#xff08;Word&#xff0c;PDF报表也有&#xff0c;另行分享&#xff09;&#xff0c;最初始他们的方案是&#xff0c;设计一个表&#xff0c;和Excel完全对应&#xff0c;然后读表&#xff0c;把数据填进去&#xff0c;这显然是非常不…...

Linux安装Ubuntu24.04系统 并安装配置Nvidia 4090 显卡驱动

目录标题 方式一、离线安装一、检查确认系统的版本首先在终端输入下载注意:注意, 后面带notebook的是笔记本的驱动,不要下载错了点击view点击下载二、安装我选择的是 NVIDIA Proprietary.安装完成之后,再次检查补充步骤三:禁用默认nouveau显卡驱动,后重启系统补充步骤四:…...

Deepdiff的使用实战记录

使用场景&#xff1a;在做数据库迁移 或 底层代码重构优化&#xff0c;用于对比新旧代码的接口层返回数据对比 1.模拟在新改造的接口上新加了字段is_ok&#xff0c;且时间戳字段精度变成毫秒&#xff0c;img字段域名变更&#xff0c;能准确对比。 api_old {"ret":…...

C语言:多线程

多线程概述 定义 多线程是指在一个程序中可以同时运行多个不同的执行路径&#xff08;线程&#xff09;&#xff0c;这些线程可以并发或并行执行。并发是指多个线程在宏观上同时执行&#xff0c;但在微观上可能是交替执行的&#xff1b;并行则是指多个线程真正地同时执行&…...

Linux(25)——进程调度

目录 一、Linux 进程调度&#xff1a; 二、进程优先级&#xff1a; 1、普通调度策略&#xff1a; 2、完全公平调度程序&#xff1a; 三、nice 值&#xff1a; 1、nice 值范围&#xff1a; 2、nice 值修改权限&#xff1a; &#xff08;1&#xff09;降低&#xff1a; …...

SAP CO88根据标准价格拆分增量错误解决

CO88事务码可能出现如下错误&#xff0c;错误消息号 MLCCS015。出现该错误&#xff0c;表示成本组件分解出现了问题&#xff0c;参照 MLCCS015 错误的帮助文档&#xff1a; 其实这里已经说明了原因和解决方法&#xff0c;但不是很具体。note 632752 - Use of the program MLCCS…...

spring boot 整合redis

1.在pom文件中添加spring-boot-starter-data-redis依赖启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.编写三个实体类 RedisHash("p…...

游戏被外挂攻破?金融数据遭篡改?AI反作弊系统实战方案(代码+详细步骤)

一、背景与需求分析 随着游戏行业与金融领域的数字化进程加速,作弊行为(如游戏外挂、金融数据篡改)日益复杂化。传统基于规则的防御手段已难以应对新型攻击,而AI技术通过动态行为分析、异常检测等能力,为安全领域提供了革命性解决方案。本文以游戏反作弊系统和金融数据安…...

【JavaWeb】前端基础

JavaWeb 前端三大件&#xff1a;HTML&#xff08;主要用于网页主体结构的搭建&#xff09;&#xff0c;CSS&#xff08;页面美化&#xff09;&#xff0c;JavaScript&#xff08;主要用于页面元素的动态代理&#xff09; 1. HTML 1.1 html概述 HTML&#xff1a;Hyper Text …...

STM32智能手表——任务线程部分

RTOS和LVGL我没学过&#xff0c;但是应该能硬啃这个项目例程 ├─Application/User/Tasks # 用于存放任务线程的函数 │ ├─user_TaskInit.c # 初始化任务 │ ├─user_HardwareInitTask.c # 硬件初始化任务 │ ├─user_RunModeTasks.c…...

Java线程池详解

摘要&#xff1a;线程池是Java高并发编程的核心组件&#xff0c;有效管理线程生命周期并提升系统性能。本文将深入剖析Java线程池的实现原理、配置策略及生产环境中的实战技巧&#xff0c;助您构建高效稳定的多线程应用。 一、线程池核心价值 1.1 为什么需要线程池&#xff1f…...

Git Fetch 和 Git Pull 的区别

Git fetch和git pull的区别 二者都能够从远程获取最新版本到本地。 1. Git fetch 仅从远程获取最新版本到本地&#xff0c;不会进行 merge&#xff08;合并&#xff09;操作。 操作示例 从远程的 origin的 master 主分支上获取最新版本到 origin/master 分支上&#xff1a…...

《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》

简介&#xff1a; “本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上&#xff0c;通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件&#xff0c;手把手教程涵盖环境配置、资源优化及避坑指南&#xff0c;助力初学者用极低成本在云端跑通行业领先的大…...

Rust闭包详解

文章目录 闭包捕获外部变量移动和借用闭包的特性闭包和性能闭包和生命周期 闭包 Rust中的闭包是一种匿名函数&#xff0c;可以捕获并存储环境中的变量&#xff0c;有点类似于Lambda表达式 闭包允许在其定义的作用域之外访问变量&#xff0c;并且可以在需要时将其移动或者借用…...

科技潮流出行新体验 方程豹全新车型钛3正式开启预售

科技潮流出行新体验&#xff0c;比亚迪个性化品牌方程豹旗下全新车型钛3正式开启预售&#xff0c;钛3定位科技潮品SUV&#xff0c;搭载独有的潮流配置“1机3舱”&#xff0c;以及“iCT”安全三件套、“E2C”智能三件套&#xff0c;实现了科技越级、空间越级、配置越级&#xff…...

如何将AI模型返回的字符串转为html元素?

场景&#xff1a; 接入deepseek模型的api到我们平台&#xff0c;返回的字符串需要做下格式化处理。 返回的数据是这样的&#xff1a; {"role": "assistant","content": "<think>\n嗯&#xff0c;用户问的是“星体是什么”。首先&am…...

使用SpringBoot + Thymeleaf + iText实现动态PDF导出

使用SpringBoot Thymeleaf iText实现动态PDF导出 1.前端模版代码&#xff0c;需要注意&#xff0c;iText有很多高级样式兼用性不好&#xff0c;需要自己试错&#xff1a; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"…...

Redis 源码硬核解析系列专题 - 扩展篇:Gossip协议的具体实现

1. 引言 Redis Cluster使用Gossip协议实现节点间的状态同步和一致性维护。Gossip协议是一种去中心化的通信机制,通过节点间的“谣言传播”方式交换信息,具有高容错性和扩展性。本篇将深入剖析Redis中Gossip协议的具体实现,包括消息格式、传播机制和故障检测逻辑。 2. Gossi…...

scGPT环境安装

scGPT环境安装 conda create -n scgpt_2 conda activate scgpt_2 conda install python3.10.11 cudatoolkit11.7 cudatoolkit-dev gxx>6.0.0,<12.0 cudnn -c conda-forge pip install torch1.13.0cu117 torchvision0.14.0cu117 torchaudio0.13.0 --extra-index-url https…...

linux服务器组建与管理

环境: DNSSamba服务器 ip:192.168.177.153 FTP服务器 ip:192.168.177.152 pc ip:192.168.177.151 这里先把DNS的ip及DNS固定给固定了,免得我关机了还会更改 网络配置:(前面的命令是DNS/Samba的后面的是FTP的,下面那张是示例图) sudo nmcli con mod ens33 ipv4.addres…...

vue3 生命周期函数(挂载、更新、销毁)

在这之前&#xff0c;相必用户也是用过vue2的经历&#xff0c;所以&#xff0c;在讲解之前先对vue2和vue3的生命周期进行对比&#xff1a; Option API组合APIbeforeCreate-setupcreated-setupbeforeMountonBeforeMountmountedonMountedbeforeUpdateonBeforeUpdateupdatedonUpd…...

树莓派超全系列教程文档--(20)树莓派配置自动息屏

树莓派配置自动息屏 配置自动息屏桌面Raspberry Pi 配置CLI 控制台设置控制台模式自动息屏查看当前自动息屏设置 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置自动息屏 您可以将 Raspberry Pi 配置为在一段时间不活动后自动息屏。默认情况…...