基于区块链技术的智能汽车诊断与性能分析
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。
生活中有两种人,一种人格外在意别人的眼光;另一种人无论别人如何,他们始终有自己的节奏。
过度关注别人的看法,会搅乱自己的步调,让自己更加慌乱。与其把情绪的开关交到别人手中,不如把有限的精力用在提升自己上,久而久之,你自然会更加优秀。
时间不知不觉中,来到新的一年。2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。
一、基于区块链技术的智能汽车诊断与性能分析
汽车行业目前正寻求增加对车辆的远程连接,这产生了对以安全方式连接车辆以及以可信方式验证和存储其数据的高度需求。此外,为了正确诊断车辆并确定何时或如何远程更新车辆,必须获取大量信息。在此背景下,我们提出了一种基于区块链的、完全自动化的远程车辆诊断系统。该系统提供了一种安全且可信的方式来存储和验证车辆数据,并分析车辆在不同环境下的性能。此外,我们还讨论了该系统对不同参与方(如车主和制造商)的诸多益处。此外,我们使用 MATLAB Simulink 对所提出的系统进行了性能评估仿真,以模拟车辆和区块链,并给出了系统结构的原型。另外,使用 OMNET++ 来测量在给定某些固定参数(如发送周期和速度)的情况下系统的预期存储容量和吞吐量。仿真结果表明,随着车辆数量的增加,吞吐量、端到端延迟和功耗也随之增加。总体而言,原始设备制造商(OEM)可以通过考虑增加存储容量以添加更多车辆,或降低发送频率以允许更多车辆加入,来实施该系统。总的来说,所提出的系统是完全动态的,其配置可以根据 OEM 的需求进行调整,因为在实施过程中没有特定的限制。
当前汽车行业的结构存在一个缺陷,即缺乏对车辆内部性能信息以及各内部部件状态的持续监测。在车辆从工厂生产到首次及二次使用的整个生命周期中,这些信息都是必需的。缺乏真实可靠的信息会导致一系列问题,引发信任危机,例如车辆的历史和性能信息、更换部件的原厂性、更换部件的使用寿命、推荐的保养历史记录等。在购买新车时,这些信息以及车辆品牌的可靠性都是需要考虑的主要因素[1,2]。
通常情况下,原始设备制造商(OEM)在车辆生产后并不会追踪其车辆的真实数据。例如,需要监测的数据包括车辆在不同环境下的性能,如在非洲和欧洲的空调性能。因此,持续且实时的车辆监测可以节省大量成本,因为这有助于早期发现故障部件。丰田公司就是一个因缺乏持续监测而遭遇问题的知名案例,该公司在生产了数千辆汽车后才发现安全气囊存在问题。由于缺乏持续监测,这一问题未能及时发现,导致工厂损失了数十亿美元。如果采用持续监测,这一问题本可以更早被发现,并且可以通过无线软件升级(FOTA)来修复或预防此类问题[3]。
此外,随着自动驾驶技术对汽车行业的颠覆性影响,持续监测可以在发生事故时收集信息,以确定事故责任是软件问题还是制造商问题[4]。另一个可以从持续监测中受益的方面是测量车辆排放的二氧化碳量。目前,这一信息是通过在特定区域收集样本得出的,这可能导致数据不准确。此外,持续监测还可以用于收集车辆取证信息;然而,有关车辆取证的解决方案必须保护驾驶员的隐私。下一节将列出一些现有的解决方案和试验,它们都依赖于手动收集数据[5,6],这取决于人类的信任或不可信的系统,从而导致结果不可信[7,8]。
此外,区块链技术正迅速成为智能时代的一股颠覆性力量,在多个行业中具有广泛的应用潜力[9]。从本质上讲,区块链是一种去中心化、分布式的账本技术,能够实现安全、透明且防篡改的交易和数据共享。它提供了一个创建无需信任环境的平台,在该环境中,数据可以在各方之间安全、透明地共享和验证,而无需中介。这项技术有可能通过实现安全、透明的交易和数据共享,彻底改变金融、供应链管理、医疗保健等多个行业[10]。近年来,区块链在物联网(IoT)和连接设备领域受到了关注,它可以用于增强安全性和隐私保护、确保数据完整性,并实现新的商业模式[11]。特别是,区块链在车联网(IoV)的发展中具有巨大潜力,它可以为车辆、基础设施和其他利益相关者之间的数据共享和通信提供一个安全、可靠的平台[12]。
因此,在本文中,我们提出了一种基于区块链技术的持续监测系统。所提出的方法采用区块链技术来解决汽车行业中与数据信任和安全相关的挑战。采用这种技术的动机在于,传统的数据管理系统(如集中式数据库)在确保数据完整性、保密性和真实性方面存在局限性。这些局限性可能导致欺诈行为、数据篡改和缺乏透明度,进而可能引发安全问题并降低消费者对汽车行业的信任。通过使用区块链技术,所提出的方法可以提供一个去中心化、透明且防篡改的系统,确保网络中存储的数据的真实性和完整性。区块链中的每个区块都包含前一个区块的加密哈希值,从而创建了一个难以修改的区块链。这使得在没有网络参与者共识的情况下无法更改或删除数据,从而确保了数据的不可变性和完整性。此外,所提出的方法中使用加密和对称密码学技术,为从车辆传输到OEM的数据提供了保密性和真实性。这确保了只有授权方才能访问和修改数据,从而提供了一个安全、可靠的数据收集和分析系统。总体而言,在所提出的方法中采用区块链技术旨在解决汽车行业中与数据信任和安全相关的挑战,确保车辆的安全性和可靠性,并提高消费者对该行业的信任。
所提出的系统使用加密技术来确保从车辆传输到OEM的数据具有以下特性:保密性、完整性和真实性。区块链技术为数据库中保存的数据提供了完整性保障。从OEM的角度来看,我们的系统具有以下优势:安全性、品牌塑造、早期发现故障部件以及车辆性能分析。这是通过车辆向制造商服务器发送定期消息来实现的,这些消息包含车辆记录的所有诊断故障代码(DTC),以及对每个部件的性能和原厂性进行定期检查。另一方面,从车主的角度来看,该系统具有以下优势:
安全性、维护和车辆历史记录。车主可以检查车辆的性能以及所需的维护时间。此外,这些数据还可以作为车辆历史记录的证明,在车辆转售时提供数据信任保障,因为使用区块链技术可以防止这些数据在发布后被修改。此外,制造商还可以利用这些数据来分析车辆在不同环境下的性能。
为了创建系统原型,我们使用MATLAB Simulink对车辆和区块链进行了模拟。此外,还使用OMNET++来测量系统的预期存储容量和吞吐量。
在我们的假设中,使用区块链技术通过提高提取数据的信任度和可靠性来满足系统的一些要求。去中心化的特性赋予了系统更多的能力。除了透明度外,不可变性和访问控制也是使系统安全并实现目标所必需的要求。本文的主要贡献总结如下:
我们提出了一种基于区块链技术的完全自动化远程车辆诊断系统,该系统提供了一种安全、可信的方式来存储和验证车辆数据,并分析车辆在不同环境下的性能。
我们通过提供有关车辆性能、历史记录和可靠性的可靠数据,研究了所提出系统对不同参与方(如车主和制造商)的益处。该系统还可以进行调整,以满足OEM在实施过程中的特定需求,且无需特定约束。
我们展示了使用MATLAB和OMNET++对所提出系统进行性能评估的几个仿真结果。
本文的其余部分组织如下:第2节和第3节介绍了区块链的背景和先前工作的文献综述。第4节详细讨论了我们所提出系统的框架。第5节给出了所提出解决方案的仿真结果以及对结果的讨论。最后,第6节对全文进行了总结。
车联网(Internet of Vehicles, IoV)是一项迅速发展的技术,它通过实现车辆与基础设施之间的通信,正在改变交通运输行业,从而带来更高效、更安全的道路环境。车联网涵盖了广泛的应用,如交通管理、车与车(Vehicle-to-Vehicle, V2V)通信、车与基础设施(Vehicle-to-Infrastructure, V2I)通信、自动驾驶以及智能交通系统。近年来,通信技术(如5G、边缘计算和区块链)的最新进展,通过提供低延迟、高带宽和安全的通信渠道,加速了车联网的发展。车联网具有减少交通拥堵、提高道路安全性和提升用户整体驾驶体验的潜力。因此,车联网应用和框架的开发对于交通运输行业的未来至关重要。
在此背景下,基于移动边缘计算(Mobile-Edge-Computing, MEC)的车联网框架是近年来出现的一项关键创新。该框架整合了MEC和车联网的优势,实现了车辆、基础设施和云之间高效、可靠的通信、数据处理和存储[2]。特别是,在5G异构网络(HetNets)中的卸载方法是基于MEC的车联网框架的关键方面之一。它能够将计算密集型和数据密集型任务从车辆传输到位于网络边缘的MEC服务器,从而显著降低通信延迟并提高整体系统性能。因此,5G HetNets中的卸载方法对于实现车联网的全部潜力以及支持自动驾驶、实时交通监控和智能交通系统等各种应用至关重要。
因此,车联网通过实现车辆之间以及车辆与周围基础设施之间的通信,彻底改变了汽车行业。车联网的一个关键应用是车辆的持续监测和远程诊断系统。通过集成传感器和连接技术,车辆可以生成与其性能和健康状况相关的大量数据,这些数据可以实时传输到制造商的服务器进行分析。然后,这些数据可用于诊断潜在问题、识别故障部件并进行主动维护,以避免故障发生。此外,借助先进的分析技术,制造商可以深入了解车辆的行为和性能,优化其生产流程,并提升客户体验。基于车联网的持续监测和远程诊断系统具有降低维护成本、提高车辆安全性和提升整体效率的潜力[26]。
此外,联网车辆和车联网的出现给汽车行业带来了与安全、隐私和信任相关的新挑战。在此背景下,区块链技术因其去中心化、不可篡改和透明性等特性而被提出作为一种有前景的解决方案[27]。基于区块链的车联网框架可以增加信任和可追溯性,防止欺诈和网络攻击,并确保交换数据的保密性、完整性和真实性。这对于汽车行业的各个方面(如车辆安全、维护、性能分析和车辆历史记录)都具有重大影响。因此,基于区块链的车联网框架具有彻底改变汽车行业并启用新服务和商业模式的潜力[28]。在本节的其余部分中,我们将概述文献中提出的类似系统和相关工作,以解决车联网背景下车辆持续监测和远程诊断系统的挑战。
最初的持续监测数据收集尝试是通过使用车载诊断(On-Board Diagnostics, OBD)设备收集诊断故障代码(DTCs),并通过WiFi将它们发送到服务器来完成的[29]。该系统的缺点是它没有使用任何加密手段,因此不安全。此外,数据应在特定时间在一台服务器上收集,这代表了一个单点故障。
二、区块链实现架构
所提出的系统依赖于自动从车辆收集数据,以防止在手动输入时添加任何虚假或错误数据。在车辆生产后,原始设备制造商(OEM)应对车辆进行注册。最初,车辆将使用数据标识符(DIDs)读取所有部件的序列号以进行识别。DIDs是统一诊断服务(UDS)所支持的服务之一,用于使用该编号从车辆中诊断或请求数据。发送用于读取序列号的请求应如下所示:(22 F1 40)。此请求应发送到每个电子控制单元(ECU)以读取序列号。响应应如下所示:(62 F1 40 + 序列号)。完成此步骤后,系统应使用内部数据库或直接连接到OEM的服务器来检查每个部件的原装性。第二步是读取所有数据故障代码(DTCs)。DTC是存储在可擦除可编程只读存储器(EPROM)中的代码,用于指示任何问题。它也是UDS-ISO所支持的服务之一。
第三步分为以下三个阶段:
对每个部件进行自检,并报告测试结果。
使用DIDs读取每个部件的生产日期。我们可以根据前两个步骤计算部件的质量和寿命。检查已更换的部件及其维护时间。
检查车辆里程计数器,并将其存储在区块中。这是一个重要步骤,因为在二手车市场中,该计数器可能会被篡改以降低数字,从而给出错误的车辆使用时间指示。最后一步是读取二氧化碳(CO2)排放量,这对于将污染控制在一定范围内并在必要时减少污染至关重要。此外,高CO2排放量表明发动机存在问题。
在收集完所有这些信息后,区块即可进行加密和签名。然后,在验证后,它将上传到区块链,用户和OEM可以在其中浏览并查看所需信息。图显示了所提出解决方案的流程图。
所收集的数据分为以下几类:
OEM报告分析:这是从一辆或多辆车的存储数据中提取的。报告包含有关车辆可靠性和每个部件在性能和原装性方面的状态信息。此类报告用于改进开发过程,并满足每个市场的实际需求。
时间线报告分析:此报告提供了车辆状态与特定时间的对比摘要。它描述了故障部件、更换时间、记录的DTC以及故障原因。
车辆牌照、合同、交通违章记录以及属于该车辆的所有法律文件。
例如,汽车诊断代码(Diagnostic Trouble Codes,简称DTCs)由一个五位字母数字代码组成。其格式如图所示。
所提出解决方案的主要优势
如图所示,原始设备制造商(OEM)和车主可以浏览并分析数据。该解决方案为OEM和车主带来了以下六个主要优势:
-> 安全性:避免因任何缺陷导致的严重事故,并在出现严重问题时提醒用户,车辆将进行安全关闭。
-> 检测故障部件:OEM能够更早地检测到故障部件,并根据故障区域对其进行分类。相应地,OEM可以迅速采取行动,如更快地召回车辆或通过无线固件升级(FOTA)进行软件更新。
-> 品牌塑造:OEM在宣传其车辆时,可以将分析结果作为可靠数据,因为提取的关于车辆性能的数据未被篡改。
-> 部件性能分析:通过分析部件性能,OEM能够针对性能与寿命的关系更快地找到解决方案。此外,这将提高某些部件的质量(例如,在炎热地区提高空调的性能)。
-> 维护:通过节省维护时间和更早地检测到故障部件,可以防止与故障部件相连的任何其他部件受损。
-> 车辆历史记录:这是最有用的功能,因为用户在将车辆作为二手车转售时,将拥有可靠的数据,从而增加对车辆历史记录的信任。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者
相关文章:
基于区块链技术的智能汽车诊断与性能分析
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界…...
基于区块链技术的供应链溯源系统:重塑信任与透明度
在当今全球化的商业环境中,供应链的复杂性不断增加,产品从原材料采购到最终交付消费者手中的过程涉及多个环节和众多参与者。然而,传统供应链管理面临着诸多挑战,如信息不透明、数据易篡改、追溯困难等,这些挑战不仅影…...
基于OpenCV的实时文档扫描与矫正技术
文章目录 引言一、系统概述二、核心代码解析1. 导入必要库2. 辅助函数定义3. 坐标点排序函数4. 透视变换函数5. 主程序流程 三、完整代码四、结语 引言 在日常工作和学习中,我们经常需要将纸质文档数字化。手动拍摄文档照片常常会出现角度倾斜、透视变形等问题&…...
基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)
基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发 中文摘要 在当今社会信息化进程不断加速的时代背景下,众多领域对于监控系统的需求日益增长,像车内安全监控、电梯运行监控等场景都离不开监控系统的支持。过去,不少领域普遍采用…...
华为云Astro中各种变量与参数的区别与用法
目录 🧠 华为云 Astro 各类变量与参数详解 🧩 一、变量与参数的核心作用是什么? 🖼️ 二、整体分类与结构图 📘 三、逐一详细解析 + 类比说明 + 使用建议 🔹 1. 输入参数(Input Parameter) 🔹 2. 输出参数(Output Parameter) 🔹 3. 变量(本地变量)…...
数字人技术的核心:AI与动作捕捉的双引擎驱动(210)
**摘要:**数字人技术从静态建模迈向动态交互,AI与动作捕捉技术的深度融合推动其智能化发展。尽管面临表情僵硬、动作脱节、交互机械等技术瓶颈,但通过多模态融合技术、轻量化动捕方案等创新,数字人正逐步实现自然交互与情感表达。…...
华为云Astro轻应用创建业务对象(BO)的概念梳理
目录 一、业务对象(BO)是什么?——【详细概念解释】 二、形象理解业务对象(BO) 🍱 类比方式: 📦 举个具体例子:以做一个“智能烟雾报警系统”应用 三、为什么使用BO很重要? 四、小结: 一、业务对象(BO)是什么?——【详细概念解释】 在华为云Astro轻应用…...
MySQL开发规范
目录 一、建表规约 二、索引规约 三、SQL语句 四、 ORM映射 一、建表规约 强制: 1、表达是与否概念的字段,必须使用is_xxx的方式命名(PoJo中不加is前缀),数据类型是unsigned tinyint(1表示是…...
K8s入门教程(一)
Kubernetes(K8s)入门教程:从零开始掌握容器编排 目录 Kubernetes(K8s)入门教程:从零开始掌握容器编排 1. Kubernetes 简介 1.1 什么是 Kubernetes? 1.2 核心功能 2. 环境搭建与 Minikube 安装 2.1 安装 Minikube 安装步骤(以 macOS 为例): 安装 kubectl(Kub…...
k8s备份namespace
在 Kubernetes 中备份 Namespace 有多种方法,以下是几种常见的备份方式: 1.使用 kubectl 命令备份 通过 kubectl 命令可以导出指定 Namespace 中的资源,生成 YAML 文件进行备份。 备份所有资源: kubectl -n <namespace> ge…...
前端动画库 Anime.js 的V4 版本,兼容 Vue、React
前端动画库 Anime.js 更新了 V4 版本,并对其官网进行了全面更新,增加了许多令人惊艳的效果,尤其是时间轴动画效果,让开发者可以更精确地控制动画节奏。 这一版本的发布不仅带来了全新的模块化 API 和显著的性能提升,还…...
OpenHarmony外设驱动使用 (四),Face_auth
OpenHarmony外设驱动使用 (四) Face_auth 概述 功能简介 人脸识别功能是端侧设备不可或缺的一部分,为设备提供一种用户认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。它是基于人的脸部特征信息进行身份识别的一种…...
【Java ee初阶】jvm(1)
一、JVM Java虚拟机 面试中相关的问题有三块: 1.JVM内存区域划分 2.JVM的类加载机制 3.JVM的垃圾回收机制 JDK、JRE 和 JVM 的关系 JDK(Java Development Kit)是 Java 开发工具包,包含了编写、编译和调试 Java 程序所需的所…...
【Java ee初阶】jvm(2)
类加载机制: JVM从最开始的读取.class文件,到最终构造完成 类 对象的整个过程,也就是把 类 从硬盘 加载到内存中的机制。 Java的类加载机制主要分为五个步骤:加载、验证、准备、解析和初始化。 步骤一 加载(Loading…...
Django 项目创建全攻略
目录 一、环境准备 1. 安装 Python 2. 安装虚拟环境(可选但推荐) 3. 安装 Django 二、创建 Django 项目 1. 使用命令创建项目 2. 运行开发服务器 三、创建 Django 应用 1. 创建应用 2. 注册应用 四、配置项目 1. 数据…...
windows11 安装好后右键没有 git bash 命令
win键 R 键,输出 regedit,打开注册表 找到 \HKEY_CLASSES_ROOT\Directory\Background\shell 新建项 git-bash 然后在 git-bash 下在新建项 Command,默认值设为 "C:\Program Files\Git\git-bash.exe" --cd"%v." 在 …...
Java八股文——Java基础篇
目录 1、你是怎样理解OOP面向对象2、重载和重写的区别3、接口与抽象类的区别4、深拷贝与浅拷贝的理解5、sleep和wait区别主要区别 6、什么是自动拆装箱,int和Integer有什么区别自动拆装箱int和Integer的区别Integer缓存机制 7、和equals区别String特殊情况 8、Strin…...
蓝桥杯19682 完全背包
问题描述 有 N 件物品和一个体积为 M 的背包。第 i 个物品的体积为 vi,价值为 wi。每件物品可以使用无限次。 请问可以通过什么样的方式选择物品,使得物品总体积不超过 M 的情况下总价值最大,输出这个最大价值即可。 输入格式 第一行…...
2025年- H27-Lc135- 239.滑动窗口最大值(自定义双端队列)---java版
1.题目描述 2.思路 (1)双端队列可以移除最左边的元素,也可以移除最右边的元素(两端移除) (2)在最右边插入元素(右边加入) (3)队列单调性…...
EKS 工作节点的集群网络架构
AWS EKS(弹性 Kubernetes 服务)是亚马逊提供的托管 Kubernetes 服务,一旦配置完成,即可像变魔术一样运行。但这通常是 EKS 的默认设置。如果您打算根据组织的设计、合规性标准和隐私要求进行自定义,该怎么办࿱…...
【技海登峰】Kafka漫谈系列(十一)SpringBoot整合Kafka之消费者Consumer
【技海登峰】Kafka漫谈系列(十一)SpringBoot整合Kafka之消费者Consumer spring-kafka官方文档: https://docs.spring.io/spring-kafka/docs/2.8.10/reference/pdf/spring-kafka-reference.pdf KafkaTemplate API: https://docs.spring.io/spring-kafka/api/org/springframe…...
Python字符串格式化(一):三种经典格式化方法
文章目录 一、% operator:C语言风格的初代格式化方案(Python 2.0引入)1. 语法核心:占位符与类型码2. 进阶用法:格式修饰符3. 致命缺陷:类型严格匹配的陷阱4. 适用场景:旧代码维护的兼容性选择 二…...
浅谈无服务器WebSocket的优势
实际上,一个实用的解决方案是将构建业务关键型实时平台的复杂性卸载到专门的云服务中。 完全托管的无服务器 WebSocket 解决方案为事件驱动的消息传递提供了基础结构;它使底层基础设施成为一种商品。客户端使用提供程序服务发送/接收低延迟消息,并专注于…...
10.7 LangChain v0.3架构大升级:模块化设计+多阶段混合检索,开发效率飙升3倍!
LangChain v0.3 技术生态与未来发展 关键词:LangChain Chains, Agents 架构, Retrieval Strategy, LangGraph, 模块化设计 3. LangChain 项目:Chains, Agents, Retrieval Strategy LangChain v0.3 通过 Chains-Agents-Retrieval 三位一体的技术栈,构建起完整的大模型应用开…...
GLPK(GNU线性规划工具包)中建模语言MathProg的使用
GNU MathProg是一种用于描述线性数学规划模型的建模语言。用GNU MathProg语言编写的模型描述由一组语句和数据块组成。 在MathProg中,模型以集合、参数、变量、约束和目标(sets, parameters, variables, constraints, objectives称为模型对象)的形式进行描述。 在Ma…...
系统思考:IT企业项目困境分析
最近遇到一家快速发展的IT技术公司,遭遇了项目进度滞后、团队沟通不畅和资源分配不合理等一系列挑战。虽然他们拥有一支技术强大的团队,但在项目管理和团队协作上却显得力不从心。结果,多个项目超预算、交期延迟,客户满意度直线下…...
计算机网络 - 2.基础协议
1.TCP协议 1.TCP(Transmission Control Protocol):传输控制协议2.TCP协议是一种面向连接的、可靠的、 基于字节流的传输层通信协议 1.面向连接:两个使用TCP协议的应用(通常一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接2.可靠的 1.数据传输之前都要建立…...
go语法大赏
前些日子单机房稳定性下降,找了好一会才找到真正的原因。这里面涉及到不少go语法细节,正好大家一起看一下。 一、仿真代码 这是仿真之后的代码 package mainimport ("fmt""go.uber.org/atomic""time" )type StopSignal…...
运行vscode编辑器源码
距离上次二次开发vscode已经是三年前的事了,当时是1.60.0版本,目前vscode已升级到了1.99.2版本,里面改动很大,最近下载下来了新版源码跑起来看看 准备node、python 源码里面node版本做了限制 2025-01-27 09:53:00.450 [info] Fo…...
ShenNiusModularity项目源码学习(26:ShenNius.Admin.Mvc项目分析-11)
本文学习并分析ShenNiusModularity项目中商城系统模块的小程序用户页面、用户收货地址页面。 1、小程序用户页面 小程序用户页面用于检索、浏览使用商城系统的用户数据(保存在shop_appuser表内,系统用户保存在sys_user表内),该页…...
C#中的成员常量:编译时的静态魔法
在C#编程中,常量(const)是一个强大而特殊的语言特性,特别是当它们作为类的成员时。本文将深入探讨成员常量的特性、使用场景以及与静态量的区别。 成员常量的基本特性 成员常量是声明在类内部的常量,具有以下核心特点: 声明位置…...
C# 深入理解类(成员常量)
成员常量 成员常量类似前一章所述的局部常量,只是它们被声明在类声明中而不是方法内,如下面的 示例: 与局部常量类似,用于初始化成员肯量的值在编译时必须是可计算的,而且通常是一个预定 义简单类型或由它们组成的表达…...
服务端HttpServletRequest、HttpServletResponse、HttpSession
一、概述 在JavaWeb 开发中,获取客户端传递的参数至关重要。http请求是客户端向服务端发起数据传输协议,主要包含包含请求行、请求头、空行和请求体四个部分,在这四部分中分别携带客户端传递到服务端的数据。常见的http请求方式有get、post、…...
有哪些GIF图片转换的开源工具
以下是关于GIF图片转换的开源工具的详细总结,涵盖功能特点、适用场景及用户评价: 1. FFmpeg 功能特点: 作为开源命令行工具,FFmpeg支持视频转GIF、调整帧率、分辨率、截取片段等操作,可通过脚本批量处理。适用场景: 适合开发者或技术用户进行高效批处理,常用于服务器端自…...
Vue.js教学第五章:计算属性与侦听器详解
Vue.js 之计算属性与侦听器详解 一、计算属性 (一)概念 计算属性(Computed Properties)是 Vue.js 中的一个核心概念。它允许我们基于一个或多个数据属性来定义一个新的属性,该属性的值会根据其依赖的数据属性的变化而自动更新。这就好像是一个 “智能” 属性,它的值不是…...
第三章:UI 系统架构拆解与动态界面管理实录
还记得我们第二章刚跑通主场景,那时候是不是觉得“终于见到界面了”?但请等等,你看到的只是冰山一角,下面藏着的是 UIManager 的地狱之门。 本章我们将深入探讨: UI 界面如何加载(Prefab 动态加载机制&…...
第四章:WebSocket 通信机制全解与客户端发包实录
如果你以为一个游戏启动后只靠本地逻辑运转,那你真是低估了网络通信的存在感。在互动组件项目里,WebSocket 才是真正的灵魂通道——UI 再好看,没包发出去也等于白搭。 本章我们深入讲解 WebSocket 在安卓前端项目中的应用,从封装结…...
pnpm项目内网迁移
pnpm项目内网迁移 文章目录 pnpm项目内网迁移0.前言1.基础环境安装2.构建pnpm离线安装包3.使用pnpm重新安装项目依赖4.项目迁移参考链接: 0.前言 要将一个依赖pnpm的项目迁移到内网离线环境下进行开发。 1.基础环境安装 要保证NodeJS版本一致,否则执行…...
C++23 放宽范围适配器以允许仅移动类型(P2494R2)
文章目录 引言背景与动机提案内容与实现细节提案 P2494R2实现细节编译器支持 对开发者的影响提高灵活性简化代码向后兼容性 示例代码总结 引言 C23 标准中引入了许多重要的改进,其中一项值得关注的特性是放宽范围适配器(range adaptors)以允…...
[ctfshow web入门] web119
信息收集 import requestsurl "http://51a7e437-2e66-4742-bbfe-e4cce44e360b.challenge.ctf.show/" for i in range(255):data {"code": f"{chr(i)}"}response requests.post(url, datadata)# print(len(response.text))# print(response.t…...
vector--OJ3
链接: [link](链接: link) class Solution { public: vector<string> str{ "","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };void CB(string& …...
第6章 实战案例:基于 STEVAL-IDB011V1 板级 CI/CD 全流程
在前五章中,我们完成了嵌入式 CI/CD 从环境搭建、编译自动化、测试自动化、发布分发到监控回归的全技术链条。本章将以 STEVAL-IDB011V1(搭载 BlueNRG-355)评估板为实战载体,手把手演示如何在 GitLab CI(或 Jenkins)上,构建一条从 Git Push → 编译 → 测试 → 刷写 → …...
逆变器的输出外特性分析
VSG 并网状态下,考虑到弱电网下线路阻抗不能忽略,VSG 的功率传输模型可以表示为 VSG 的输出电压经过线路阻抗后串联至电网(考虑滤波电感,且忽略滤波电容作用)。设 U 为 VSG 输出电压的幅值,Ug为电网电压的幅…...
如何给PSCAD添加库文件
1、点击Options 2、选择蓝色的选项 3、查看Intel(R) Visual Fortran Compiler XE 的版本 4、打开原文件的Library 5、打开 6、点击这个文件的右键 7、然后选择第一项project setting 9、先把第8步中link里面原有的路径删除,再点browes[A1] ,然后选择 [A…...
基于simulink搭建的模块化多电平MMC仿真模型
1. 模块化多电平换流器的运行原理 1.1模块化多电平换流器的拓扑结构 MMC共由6个桥臂构成。其中每个桥臂由若干个串联且结构相同的子模块(Sub-Module, SM)与一个电抗器L串联…...
基于simulink的LCC-HVDC输电模型
1.本模型基于simulink搭建常规直流输电模型,运行稳定。 有需要交流或者模型的可在CSDN上留言...
PWM整流器双闭环PI参数的整定
1. 整流侧电路拓扑图 整流电路由交流侧电源、线路电阻、线路电抗、整流器、滤波电容以及负载组成。整体电路图如图1所示。 图 1 整流电路拓扑图 其中,IGBT的开关状函数如下式所示 根据图 1 列出 KVL 公式如下,电流的正方向是从左到右 对于每一相的IGBT相…...
柔性直流输电系统介绍及simulink模型的搭建
1. 柔性直流输电的运行原理 柔性直流输电系统由电压源型换流器与直流输电线路构成, 图 1‑1所示为单端电压源型换流器原理图。柔性直流输电系统的功率可以双向流动,即换流器既可以作为整流站将从交流系统接收的功率通过直流线路输送出去,也可以作为逆变站将通过直流…...
matlab求矩阵的逆、行列式、秩、转置
inv - 计算矩阵的逆 用途:计算一个可逆矩阵的逆矩阵。 D [1, 2; 3, 4]; % 定义一个2x2矩阵 D_inv inv(D); % 计算矩阵D的逆 disp(D_inv);det - 计算矩阵的行列式 用途:计算方阵的行列式。 E [1, 2; 3, 4]; determinant det(E); % 计算行列式 disp…...
如何在纷杂的环境当中保持保持独立思考能力?
引言 当你在人群当中时,你是否经常容易受到身边人的干扰,而丢失自己原有的想法,其实在环境纷杂当中,我们很容易产生“从众效应”而丢失了自己对这件事独立思考的能力。拥有不受外界影响,独立思考的能力可以让我们更加…...