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

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析⑥】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase06

作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023

TC10-006测试用例

用例ID测试场景验证要点参考条款预期结果
TC10-006会话嵌套冲突检测在编程会话中请求切换至扩展会话§7.5.3返回NRC=0x22(条件不满足)
/*-------------------------------------------------------------------测试用例 TC10-006:会话嵌套冲突检测(增强版)标准依据:ISO 14229-1 §7.5.3 验证目标:编程会话中禁止切换其他会话模式 预期响应:NRC=0x22(conditionsNotCorrect)
-------------------------------------------------------------------*/
variables {message 0x7E0 DiagReq = {dlc=8};  // 诊断请求报文 message 0x7E8 DiagRes;           // 诊断响应报文 msTimer securityDelay;           // 安全延时计时器 byte currentSession;             // 当前会话状态 byte securityLevel;              // 安全访问级别 byte seed[4];                    // 安全种子存储 byte key[4];                     // 计算密钥存储 
}//==================== 预置条件设置函数 ====================
void Precondition_ProgrammingSession() {/分步式会话建立流程:1. 强制进入默认会话 2. 请求进入编程会话 3. 执行安全访问解锁 4. 验证最终状态 /// 阶段1:确保默认会话 sysSetVariable("Diag::Session", 0x01);DiagReq.byte(0) = 0x10;          // 诊断会话控制 DiagReq.byte(1) = 0x01;          // 默认会话 DiagReq.dlc = 2;output(DiagReq);testWaitForMessage(0x7E8, 1000);if(DiagRes.byte(0) != 0x50 || DiagRes.byte(1) != 0x01) {testStepAbort("默认会话建立失败");}// 阶段2:进入编程会话 DiagReq.byte(1) = 0x02;          // 编程会话 output(DiagReq);testWaitForMessage(0x7E8, 1500);if(DiagRes.byte(0) != 0x50 || DiagRes.byte(1) != 0x02) {testStepAbort("编程会话进入失败,代码:0x%02X%02X", DiagRes.byte(0), DiagRes.byte(1));}// 阶段3:安全访问解锁(示例算法)// 步骤3.1:请求种子 DiagReq.byte(0) = 0x27;          // 安全访问服务 DiagReq.byte(1) = 0x01;          // 请求种子 output(DiagReq);testWaitForMessage(0x7E8, 2000);if(DiagRes.byte(0) == 0x67 && DiagRes.byte(1) == 0x01) {// 提取种子值(假设4字节种子)seed[0] = DiagRes.byte(2);seed[1] = DiagRes.byte(3);seed[2] = DiagRes.byte(4);seed[3] = DiagRes.byte(5);// 步骤3.2:发送密钥(示例:取反算法)key[0] = ~seed[0];key[1] = ~seed[1];key[2] = ~seed[2];key[3] = ~seed[3];DiagReq.byte(1) = 0x02;        // 发送密钥 DiagReq.byte(2) = key[0];DiagReq.byte(3) = key[1];DiagReq.byte(4) = key[2];DiagReq.byte(5) = key[3];DiagReq.dlc = 6;output(DiagReq);testWaitForMessage(0x7E8, 2000);if(DiagRes.byte(0) != 0x67 || DiagRes.byte(1) != 0x02) {testStepAbort("安全解锁失败,代码:0x%02X%02X",DiagRes.byte(0), DiagRes.byte(1));}} else {testStepAbort("种子获取失败,代码:0x%02X%02X",DiagRes.byte(0), DiagRes.byte(1));}// 阶段4:最终状态验证 if(sysGetVariable("Diag::Session") != 0x02 ||sysGetVariable("Security::Unlocked") != 0x01) {testStepAbort("预置条件验证失败:会话=0x%02X 安全=0x%02X",sysGetVariable("Diag::Session"),sysGetVariable("Security::Unlocked"));}
}//==================== 主测试用例 ====================
testcase TC10_006_SessionNestingCheck() 
{// 执行增强型预置条件设置 Precondition_ProgrammingSession();write("预置条件验证通过:已进入安全解锁的编程会话");//==================== 测试步骤执行 ====================DiagReq.byte(0) = 0x10;          // 诊断会话控制 DiagReq.byte(1) = 0x03;          // 扩展会话 DiagReq.dlc = 2;output(DiagReq);                 // 发送冲突请求 //==================== 响应分析 ====================testWaitForMessage(0x7E8, 1500); // 1.5秒响应超时 if(TestGetLastError() == teTimeout) {testStepFail("ECU响应超时");}else if(DiagRes.byte(0) == 0x7F && DiagRes.byte(2) == 0x22) {testStepPass("NRC 0x22验证成功");}else {testStepFail("异常响应:0x%02X%02X%02X", DiagRes.byte(0), DiagRes.byte(1), DiagRes.byte(2));}//==================== 后置清理 ====================// 发送硬件复位恢复初始状态 DiagReq.byte(0) = 0x11;          // ECU复位 DiagReq.byte(1) = 0x01;          // 硬件复位 output(DiagReq);testWaitForTimeout(3000);        // 等待ECU重启 
}/*------------------------- 执行日志示例 ------------------------- 
[2025-02-15 21:47:15] 进入默认会话成功 
[2025-02-15 21:47:16] 编程会话建立成功 
[2025-02-15 21:47:17] 安全解锁完成(种子:A7 3B F0 89)
[2025-02-15 21:47:18] 发送非法会话切换请求:10 03 
[2025-02-15 21:47:18] 收到预期响应:7F 10 22 
[2025-02-15 21:47:21] ECU复位成功 
----------------------------------------------------------------*/

增强特性说明

  1. 动态会话建立机制
// 分阶段建立目标状态(取代直接设置变量)
Precondition_ProgrammingSession();
  1. 安全算法扩展接口
// 预留安全算法扩展点(示例为取反算法)
on key* {// 可替换为实际安全算法 key[i] = ~seed[i]; 
}
  1. 复合状态监控
// 实时监控诊断状态 
on sysvar Diag::Session changed {write("会话变更:0x%02X → 0x%02X @ %dms", @sysvar::Diag::Session, @this, timeNow());
}

预置条件流程图

开始
默认会话状态
发送10 01请求
收到50 01响应?
发送10 02请求
终止测试
收到50 02响应?
发送27 01请求
收到67 01响应?
计算安全密钥
发送27 02密钥
收到67 02响应?
验证最终状态
会话=0x02且安全=0x01?
预置条件完成

关键改进点

  1. 真实环境模拟

    • 使用实际诊断流程建立会话状态,而非直接设置系统变量
    • 包含完整的安全访问流程(27服务)
  2. 错误传播机制

    // 分级错误处理 
    if(DiagRes.byte(0) != 0x67) {testReportPicture("安全服务异常", "响应代码:0x%02X", DiagRes.byte(0));testStepAbort("安全服务异常终止");
    }
    
  3. 可维护性增强

    • 将预置条件封装为独立函数
    • 使用常量定义代替魔术数字
    • 添加详细的调试日志

测试数据记录建议

在测试报告中应包含以下关键数据:

  1. 会话切换时间序列
  2. 安全种子-密钥对验证记录
  3. ECU响应时间统计(单位:ms)
  4. 总线错误帧计数
  5. 温度/电压等环境参数(若可获取)

部署说明:

  1. 将安全算法部分替换为实际ECU使用的算法
  2. 根据总线类型调整DLC设置(CAN/CAN FD)
  3. testcase前添加环境检查:
    if(sysGetVariable("ECU::PowerStatus") != 0x01) {testReportWarning("ECU未上电,测试中止");return;
    }
    
  4. 建议配合使用CAPL的testmodule功能实现批量测试

相关文章:

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析⑥】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase06 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-006测试用例 用例ID测试场景验证要点参考条款预期…...

img标签的title和alt

img标签的title和alt 显示上 title:鼠标移入到图片上时候显示的内容&#xff1b; alt:图片无法加载时候显示的内容; <div class"box"><div><!-- title --><h3>title</h3><img src"./image/poster.jpg" title"这是封…...

redis cluster测试

集群节点信息这时候停掉一个master 172.30.60.31 从集群信息集中我们可以看到172.30.60.31的slave是172.30.60.41&#xff0c;查看41的日志&#xff0c;发现他成为了新的master 这时候我们在将172.30.60.41也杀死&#xff0c;会发现集群异常了 尝试把172.30.60.31启动&#xff…...

harmonyOS的文件的增、删、读、写相关操作(fs/content)

注意: 操作harmonyOS的文件只能对app沙箱内的文件进行操作 牵扯到两个支持点: fs和content这两个API; 具体的操作方法看下图: 创建文件 //js 引入 import fs from "ohos.files.fs" import featureAbility from "ohos.ability.featureAbility"; // 上下…...

12. Function Call实践

本文主要讲解大模型的function call能力&#xff0c;包括使用国内外在线模型和本地模型&#xff0c;以及如何微调以增强大模型的function call能力。 回顾下大模型学习思路&#xff1a; 1. 环境准备 1.1 平台上【模型调试】中创建 2. 调用国内外大模型测试 2.1 调用GPT-4 代…...

随机生成多孔介质matlab程序

matlab生成随机分布纤维代码&#xff0c;用于后续模拟处理 资源文件列表 随机生成多孔介质matlab程序.pdf , 5821...

华为云kubernetes基于keda自动伸缩deployment副本(监听redis队列长度)

1 概述 KEDA&#xff08;Kubernetes-based Event-Driven Autoscaler&#xff0c;网址是https://keda.sh&#xff09;是在 Kubernetes 中事件驱动的弹性伸缩器&#xff0c;功能非常强大。不仅支持根据基础的CPU和内存指标进行伸缩&#xff0c;还支持根据各种消息队列中的长度、…...

是时候说再见了

说再见 2018 to 2025 2018&#xff1a;学习 2018年开始读研。师兄师姐们说可以写写CSDN博客&#xff0c;对找工作也有帮助。于是在12月4日&#xff0c;发布了自己的第一篇文章[翻译] 神经网络与深度学习 首页 - Index。当时还在学习各种基础知识&#xff0c;看到了这个英文文…...

数据结构与算法-栈与队列的应用递归表达式求值

参考学习&#xff1a;B站-逊哥带你学编程 栈与队列的应用 题1&#xff1a; 答案&#xff1a;B 题2&#xff1a; 答案&#xff1a;C 题3&#xff1a; 答案&#xff1a;D 题4&#xff1a; 答案&#xff1a;C 题5&#xff1a; 答案&#xff1a;B 题6&#xff1a; 答案&…...

vue3.x 的shallowReactive 与 shallowRef 详细解读

在 Vue 3.x 中&#xff0c;shallowReactive 和 shallowRef 是两个用于创建浅层响应式数据的 API。它们与 reactive 和 ref 类似&#xff0c;但在处理嵌套对象时的行为有所不同。以下是它们的详细解读和示例。 1. shallowReactive 作用 shallowReactive 创建一个浅层响应式对…...

前缀和(Prefix Sum)算法笔记C++

前缀和(Prefix Sum)算法介绍 前缀和是一种预处理技术, 用于快速计算数组中任意子区间的元素之和. 它通过一次遍历创建一个辅助数组来存储从数组起始位置到当前索引位置所有元素的累加和, 从而使得后续查询操作的时间复杂度降低至 O ( 1 ) O(1) O(1). 定义 对于给定的数组 n…...

负载测试工具有哪些?

Apache JMeter Apache JMeter 是一款开源的性能测试工具&#xff0c;主要用于对 Web 应用程序进行功能、负载和压力测试。JMeter 支持多种协议和技术&#xff0c;包括 HTTP, HTTPS, FTP 和 WebSocket 等。通过模拟大量并发用户访问来评估应用程序的表现1。 jmeter -n -t testp…...

ROS进阶:使用URDF和Xacro构建差速轮式机器人模型

前言 本篇文章介绍的是ROS高效进阶内容&#xff0c;使用URDF 语言&#xff08;xml格式&#xff09;做一个差速轮式机器人模型&#xff0c;并使用URDF的增强版xacro&#xff0c;对机器人模型文件进行二次优化。 差速轮式机器人&#xff1a;两轮差速底盘由两个动力轮位于底盘左…...

windows编译使用gtest

下载&#xff1a; Release v1.12.1 google/googletest GitHub 编译&#xff1a; 编译源码中的CMakeLists.txt&#xff1a; 编译后生成的目录是BUILD: *(编译之前需要安装cmake: ) 关注下面这两个目录&#xff1a; 在vs中打开&#xff1a; 配置属性&#xff1a; 点击编译&a…...

C++编程,#include <iostream>详解,以及using namespace std;作用

在C编程中&#xff0c;#include <iostream> 是用来包含输入/输出流头文件的预处理指令。它允许程序使用标准的输入/输出对象如 std::cout 和 std::cin&#xff0c;以便与标准输入和输出流进行交互。这一头文件是编写输入输出操作时必不可少的部分。 讲到这里&#xff0c…...

【愚公系列】《Python网络爬虫从入门到精通》008-正则表达式基础

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

Golang并发编程最佳实践:协程与通道

Golang并发编程最佳实践&#xff1a;协程与通道 本文旨在介绍Golang并发编程的最佳实践&#xff0c;重点讨论协程和通道的使用方法&#xff0c;以及相关的实际案例和代码示例。 一、Golang并发编程简介 又称Go语言&#xff09;是一种由Google开发的编程语言&#xff0c;旨在提供…...

neural_gcm模型进行气象预测教程

简介 NeuralGCM &#xff08;General circulation models&#xff09;是Google开发的一种新型的天气和气候模型&#xff0c;它结合了传统的物理建模与机器学习技术&#xff0c;相关论文于2024年发表在nature上。它既可以做短期的天气预报&#xff0c;也可以做长期的气候预测。…...

怎么让DeepSeek自动化写作文案

在数字化时代&#xff0c;内容创作已成为企业争夺用户注意力的核心竞争力。面对海量信息需求&#xff0c;企业往往面临内容创作效率低下、质量参差不齐、周期长等问题。如何用技术手段解决这些痛点&#xff0c;成为企业迫切需要破解的难题。今天&#xff0c;我们将以DeepSeek为…...

淘宝/天猫获得淘宝商品评论 API 返回值说明||API评论接口

item_review-获得淘宝商品评论 taobao.item_review 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,ite…...

全面理解-c++11的引用折叠

在 C 中&#xff0c;引用折叠&#xff08;Reference Collapsing&#xff09; 是一组用于处理多重引用&#xff08;如 T& & 或 T&& &&&#xff09;的规则&#xff0c;主要出现在模板参数推导、auto 类型推导和 decltype 的上下文中。它是实现**通用引用…...

考研高数复习规范

前言 这里记录我的高数复习规范与规划&#xff0c;希望能给需要考研的同学一点启发 规范原因 高数的内容很多&#xff0c;关键的是&#xff1a;会做题、拿高分首先最重要的就是抓住概念。比如有界无界的概念&#xff0c;间断点的概念、极限的概念其次是做题过程中得到的方法…...

2025 docker可视化管理面板DPanel的安装

1.什么是 DPanel &#xff1f; DPanel 是一款 Docker 可视化管理面板&#xff0c;旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能&#xff0c;使用户能够更轻松地管理和部署 Docker 环境。 软件特点&#xff1a; 可视化管理&#xff1a;提供直观的用户界面&#…...

「vue3-element-admin」Vue3 + TypeScript 项目整合 Animate.css 动画效果实战指南

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …...

Python函数进阶250215

函数返回值进阶 函数返回的内容也是地址 def func01():data [1, 2, 3]# 执行到此步后&#xff0c;[1, 2, 3]这块内存会有一个引用计数器&#xff0c;且值为2&#xff0c;因为内部的data与外部的v1都指向这块空间return data v1 func01()# v1 point the address of data, if…...

VMware Workstation Pro 下载(无需注册账号)

VMware Workstation Pro 目前对个人用户完全免费。有两种下载方式&#xff0c;分别为 1、Broadcom 官网下载 需要注册账号&#xff0c;我懒得注册 2、VMware 更新服务器下载 如果不想注册账号&#xff0c;可以通过 VMware 更新服务器直接下载。访问以下链接&#xff1a; ht…...

USB2.03.0摄像头区分UVC相机在linux中的常用命令

这里是引用 一. USB2.0 & 3.0接口支持区分 1.1. 颜色判断 USB接口的颜色并不是判断版本的可靠标准&#xff0c;但根据行业常见规范分析如下&#xff1a; USB接口颜色与版本对照表&#xff1a; 接口颜色常见版本内部触点数量传输速度黑色USB2.04触点480 Mbps (60 MB/s)白…...

Linux入侵检查流程

1. 初步信息收集 1.1 系统信息 • 目的&#xff1a;了解当前系统的基本情况&#xff0c;包括操作系统版本、内核版本等。 • 命令&#xff1a; # 查看操作系统发行版信息 cat /etc/os-release # 查看内核版本 uname -r 1.2 网络信息 • 目的&#xff1a;查看网络连接状态、…...

(尚硅谷 Java 学习 B 站大学版)Day17 多态练习

Instanceof 关键字 一&#xff1a;引言 不能调用子类特有的方法、属性&#xff1b; 如何才能调用子类特有的属性和方法 向下转型&#xff1a;使用强制类型转换符 Man m1(Man) p2 注&#xff1a;其中p2 为 Person 类型 使用强转时&#xff0c;可能出现 ClassCastException …...

vscode配置django环境并创建django项目(全图文操作)

文章目录 创建项目工作路径下载python插件&#xff1a;创建虚拟环境 1. 命令方式创建2. 图文方式创建 在虚拟环境中安装Django创建Django项目安装Django插件选择虚拟环境 创建项目工作路径 输入 code . 下载python插件&#xff1a; 创建虚拟环境 1. 命令方式创建 切换在工作…...

NLP 八股 DAY1:BERT

BERT全称&#xff1a;Pre-training of deep bidirectional transformers for language understanding&#xff0c;即深度双向Transformer。 模型训练时的两个任务是预测句⼦中被掩盖的词以及判断输⼊的两个句⼦是不是上下句。在预训练 好的BERT模型后⾯根据特定任务加上相应的⽹…...

53倍性能提升!TiDB 全局索引如何优化分区表查询?

作者&#xff1a; Defined2014 原文来源&#xff1a; https://tidb.net/blog/7077577f 什么是 TiDB 全局索引 在 TiDB 中&#xff0c;全局索引是一种定义在分区表上的索引类型&#xff0c;它允许索引分区与表分区之间建立一对多的映射关系&#xff0c;即一个索引分区可以对…...

基于单片机的常规肺活量SVC简单计算

常规肺活量 SVC&#xff08;Slow Vital Capacity&#xff09;是指尽力吸气后缓慢而又完全呼出的最大气量。 成年男性的肺活量通常在 3500-4000ml 之间&#xff0c;成年女性的肺活量通常在 2500-3000ml 之间。 单片机一般通过外接流量传感器&#xff0c;使用ADC高速采集的方式…...

html 点击弹出视频弹窗

一、效果: 点击视频按钮后,弹出弹窗 播放视频 二、代码 <div class="index_change_video" data-video-src="</...

机器学习:二分类和多分类

1. 二分类(Binary Classification) 定义 二分类是指将输入样本分成两个互斥的类别。例如: 邮件 spam 或不是 spam。病人是有病或健康。物品是正品或假货。实现方法 二分类任务可以通过多种算法实现,包括: 逻辑回归(Logistic Regression):通过sigmoid函数将输出值映射…...

Win11配置wsl、ubuntu、docker

系统要求 安装WSL。 开通虚拟化&#xff1a; 准备工作 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartwsl --set-default-versi…...

机试题——稀疏存储

题目描述 在虚拟化技术、芯片仿真器等领域&#xff0c;存在一种场景&#xff0c;即实际读写的数据量比较小&#xff0c;但要求可访问的地址空间却很大&#xff08;要求 4GB、甚至 128GB 地址空间&#xff09;。 实现一个地址范围为 32G的&#xff0c;可在该地址范围内任意位置…...

双指针专题1:有效三角形的个数

描述 给定一个正整数n&#xff0c;输入一行包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 输入描述 第一行输入一个正整数n 第二行输入n个nums[i] 输出描述 输出其中可以组成三角形三条边的三元组个数。 解释一个样例&#xff1a; 4…...

Ansible内置模块之file

ansible.builtin.file 模块用于管理文件和目录的属性。可以创建、删除文件或目录&#xff0c;修改文件权限、所有者等属性。 1. 选 项 说 明 选项必须类型默认值说明path是str无要管理的文件或目录的路径state否str无状态或类型。可为 file,directory,absent,link 等mode否str…...

DeepSeek 助力 Vue 开发:打造丝滑的侧边栏(Sidebar)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

手写一个Java Android Binder服务及源码分析

手写一个Java Android Binder服务及源码分析 前言一、Java语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.aidl3.2 IHelloService.java&#xff08;自动生成&#xff09;3.3 HelloService.java…...

考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)

目录 操作系统的概念定义功能和目标 操作系统的四个特征 操作系统的分类 ​编辑 操作系统的运行机制 系统调用 操作系统体系结构 操作系统引导 虚拟机 操作系统的概念定义功能和目标 什么是操作系统&#xff1a; 操作系统是指控制和管理整个计算机系统的软硬件资源&…...

java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

Tomcat 屏蔽错误信息。java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义 <h1>HTTP状态 400 - 错误的请求</h1><hr class"line" /><p><b>类型</b> 异常报告</p><p&…...

ros:ur机械臂初识

这是用来可视化的launch文件 比如&#xff0c;我运行 roslaunch ur_description view_ur3.launch ur3模型 ur3e模型 ur5模型 ur5e模型 ur10模型 ur20模型 ur30模型 后来我搜了一下 UR5 和 UR10 都是由 Universal Robots&#xff08;简称 UR&#xff09;生产的协作机器人&…...

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换&#xff0c;就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点&#xff1f;&#xff08;才能做点对应关系RANSAC&#xff09; &#xff1a;特征检测 我们希望找到的点具有的特征有什么特…...

LabVIEW袜品压力测试系统

开发了一种基于LabVIEW开发的袜品压力测试系统。该系统利用LabVIEW并结合灵敏的传感器和高精度的处理模块&#xff0c;实现了对袜品压力的精确测量和分析。系统不同于传统的服装压力测试方法&#xff0c;为研究和评价袜子的舒适性提供了新的测试手段。 ​ 项目背景 该系统的…...

Node.js 工具模块

Node.js 工具模块 引言 Node.js 是一个开源的、基于 Chrome V8 引擎的 JavaScript 运行时环境。它允许开发者使用 JavaScript 编写服务器端代码,从而构建快速、可扩展的网络应用。在 Node.js 开发过程中,工具模块扮演着至关重要的角色。本文将详细介绍 Node.js 中常用的工具…...

【Redis】下载安装Redis和Redis图形化界面工具教程(2024最新版本,史上最详细)

目录 一、Redis简介 二、Redis下载和安装 2.1、下载 2.2、安装 2.3、环境变量配置&#xff08;可省略&#xff09; 三、Redis启动验证 3.1、点击键盘上的WinR键&#xff0c;在跳出的运行界面中输入cmd并确定 3.2、输入redis-cli -v 查看redis的版本号 3.3、接着我们再…...

企业SSL 证书管理指南

文章从以下几个部分展开 SSL证书的用途和使用场景SSL证书的申请类型和实现方式SSL证书的管理SSL证书的续签 一、SSL 证书的用途和使用场景 1.1 为什么要使用 SSL 证书&#xff1f; 1. 数据安全 &#x1f6e1;️- 在 HTTP 传输中&#xff0c;TCP 包可以被截获&#xff0c;攻…...

JDK1.8新特性面试题

lambda表达式 Lambda表达式极大地简化了匿名内部类的创建&#xff0c;促进了函数式编程风格。开发者可以更简洁地定义只有一行代码的函数对象&#xff0c;并将其作为参数传递给方法或者赋值给变量。 三要素&#xff1a; 形式参数、箭头、代码块 &#xff08;形式参数&#xf…...