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

【VM服务管家】VM4.0平台SDK_2.1环境配置类

目录

  • 2.1.1 环境配置:CSharp二次开发环境配置方法
  • 2.1.2 环境配置:Qt二次开发环境配置方法
  • 2.1.3 环境配置:MFC二次开发环境配置方法
  • 2.1.4 环境配置:VB.Net二次开发环境配置方法
  • 2.1.5 环境配置:运行出现Vm.Core.Solution报错的解决方法
  • 2.1.6 模块索引:MFC 模块索引异常解决办法
  • 2.1.7 环境配置:报错序列不包含任何元素的解决方法
  • 2.1.8 环境配置:提示未注册ActiveX控件的解决方法
  • 2.1.9 控件失效:VM控件运行时不显示的解决方法
  • 2.1.10 环境配置:Qt开发环境出现rc.exe无法启动报错解决办法
  • 2.1.11 控件失效:添加引用后导致控件失效的解决方法
  • 2.1.12 添加引用:在原有项目中新配置深度学习环境的方法
  • 2.1.13 用户权限:普通用户权限以EXE方式启动Server的方法
  • 2.1.14 引用工具:使用引用工具添加引用报错的解决方法
  • 2.1.15 环境配置:句柄创建失败解决问题排查方法

2.1.1 环境配置:CSharp二次开发环境配置方法

描述
环境:VM4.0.0 + VS2015及以上
现象:C#二次开发环境的配置方法
解答
以WinForm为例,进行VM二次开发的环境配置分为三步:
第一步,使用VS新建一个框架为.NET Framework 4.6.1的工程,平台首选32位取消勾选,重新生成解决方案,保证工程Debug下存在exe文件,最后关闭新建工程。
在这里插入图片描述
在这里插入图片描述

第二步,将VM安装目录下的文件“\VisionMaster4.0.0\Development\V4.0.0 \ComControls\bin\x64”下整体拷贝到新建工程的Debug下。
在这里插入图片描述

第三步,启动二次开发导入工具(“\VisionMaster4.0.0\Development\V4.0.0 \ComControls\Tool\ImportRef.exe”),Module(sp)的路径在生成工程Debug下的Module(sp)文件夹,项目所在路径为bin文件的上一层,在选择完指定的路径之后,需要选择引用模块的dll以及是否选择相对路径,最后点击确定,完成环境配置。
在这里插入图片描述

另外,当用户是第一次配置环境时,工具箱中将没有VM相关控件,可按如下步骤进行添加。
(1)右击所有窗体,点击选择项。
在这里插入图片描述

(2)浏览当前项目路径的debug路径,Winform项目选择VMControls.Winform.Release.dll,最后点击确认。WPF应用程序则是选择VMControls.WPF.Release.dll
在这里插入图片描述

问题根因
不熟悉C#二次开发环境配置。

2.1.2 环境配置:Qt二次开发环境配置方法

描述
环境:VM4.0.0 + VS2019+Qt5.12.3
现象:Qt+VS二次开发环境如何配置?
解答
1 新建Qt工程,添加Qt模块Core、GUI、Active Qt和Container Widgets
在这里插入图片描述
在这里插入图片描述

2 拷贝DLL:VM\VisionMaster4.0.0\Development\V4.0.0\ComControl\bin\x64下的所有拷贝到项目工程输出目录下,如下图所示,项目的输出路径是Dll文件夹。
在这里插入图片描述
在这里插入图片描述

3 第一种方法:通过拷贝include文件及lib文件至项目工程中的方式配置VM环境
3.1 拷贝\VisionMaster4.0.0\Development\V4.0.0\includes下的头文件。
在这里插入图片描述

3.2 拷贝\VisionMaster4.0.0\Development\V4.0.0\ComControl\includes\QT下的头文件。
在这里插入图片描述

3.3 拷贝\VisionMaster4.0.0\Development\V4.0.0\libraries\win64\C下的所有库文件。
在这里插入图片描述

将以上三个文件夹拷贝到如下所示的项目路径中。
在这里插入图片描述

4 第二种方法:通过配置VC++目录和链接器的方式配置VM环境
4.1 VC++目录下包含目录添加以下路径:
1):\VisionMaster4.0.0\Development\V4.0.0\includes 2):\VisionMaster4.0.0\Development\V4.0.0\ComControl\includes\QT
在这里插入图片描述

4.2 库目录添加以下路径:
\VisionMaster4.0.0\Development\V4.0.0\libraries\win64\C
在这里插入图片描述

4.3 VC链接器附加依赖项写入iMVS-6000PlatformSDK.lib
在这里插入图片描述

5.配置完成:#include能索引到VM模块.h文件。
在这里插入图片描述

6 第一个VM界面:
6.1 添加容器控件QAxWidget:QAxWidget类是一个包装ActiveX控件的Qwidget,绑定VM控件到QAxWidget控件,VM相关控件在安装时已经注册到windows组件中。
在这里插入图片描述

6.2 创建方案句柄初始化控件:在ui界面布局相关控件后,创建VM方案句柄,初始化VM控件。

CreateSolutionInstance();
ui.axWidget->dynamicCall("GetObjectPointer()");

6.3 运行结果:
在这里插入图片描述

问题根因
不熟悉Qt二次开发环境配置。

2.1.3 环境配置:MFC二次开发环境配置方法

描述
环境:VM4.0.0 + VS2015及以上
现象:MFC二次开发环境如何配置?
解答
1 新建MFC工程,拷贝DLL:VM\VisionMaster4.0.0\Development\V4.0.0 \ComControl\bin\x64下的所有拷贝到项目工程输出目录下,如下图所示,项目的输出路径是Dll文件夹。
在这里插入图片描述
在这里插入图片描述

2 通过配置C++目录和链接器的方式配置VM环境
2.1 C++目录下添加附加包含目录.\Includes。
在这里插入图片描述

2.2 链接器下添加库目录.\Libraries\win64\C。
在这里插入图片描述

2.3 链接器输入里的附加依赖项写入VM的算法依赖库iMVS-6000PlatformSDK.lib
在这里插入图片描述

3 添加控件源文件至工程中,复制.\VisionMaster4.0.0\Development\V4.0.0\ComControls\Includes\VS2017(根据VS版本选择)下的控件源文件至工程目录下并引入到工程文件。
在这里插入图片描述
在这里插入图片描述

4 配置完成:#include能索引到模块.h文件。
在这里插入图片描述

5 第一个VM界面:
5.1 添加ActiveX控件,VM控件在安装时已注册如windows,可直接选择。
在这里插入图片描述

5.2 控件绑定与初始化
定义控件变量:

protected:CVmProcedureControlInterface m_ctrlProcedure;

控件绑定:

void CVMMFCApplication1Dlg::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);DDX_Control(pDX, IDC_VMUSERCONTROL1, m_ctrlProcedure);
}

控件初始化:

BOOL CVMMFCApplication1Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。…// TODO: 在此添加额外的初始化代码try{m_ctrlProcedure.GetObjectPointer();}catch (CVmException e){}return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

5.3运行结果:
在这里插入图片描述

问题根因
不熟悉MFC二次开发环境配置。

2.1.4 环境配置:VB.Net二次开发环境配置方法

描述
环境:VM4.0+VS2015及以上
现象:使用Visual Basic语言来进行VM二次开发的环境搭建。
解答
Visual Basic进行VM二次开发的环境配置分为三步。
第一步,使用VS新建一个框架为.NET Framework 4.6.1,平台去勾选首选32为的工程,重新生成解决方案,保证工程Debug下存在exe文件,最后关闭新建工程;
在这里插入图片描述
在这里插入图片描述

第二步,将VM安装目录下的文件“\VisionMaster4.0.0\Development\V4.0.0\ComControls\bin\x64”整体复制拷贝到新建工程的Debug下;
在这里插入图片描述

第三步,添加工程引用,需要手动引用基本库和相关模块工具的dll;
在这里插入图片描述

第四步,修改APP.Config文件,拷贝了众多VM依托dll于项目的Debug目录下,还需要在项目的APP.Config中的privatePath上指明dll位置,因此需要客户对APP.Config中添加如下代码,完成整体环境配置。
在这里插入图片描述

问题根因
二次开发环境配置功能不熟悉。

2.1.5 环境配置:运行出现Vm.Core.Solution报错的解决方法

描述
环境:VM4.0.0 + VS2015及以上
现象:VM4.0.0环境配置运行出现Vm.Core.Solution报错。
解答
(1)检查加密狗有没有插好? 是否以管理员权限启动程序?首选32位是否取消勾选?
(2)查看VM4.0的版本信息是否为最新版本?版本信息为20220415以上,版本越新问题就会越少。如果打过最新补丁(截止20220505,最新补丁为20220505,建议用户打上最新补丁),则需要将打完补丁后的VisionMaster4.0.0\Development\V4.0.0\ComControls\bin\x64下面所有的文件全部替换到二次开发项目的EXE生成路径下(Debug下)。
(3)在任务管理器中关闭所有VM相关程序,这种操作可以在二次开发的初始化处用如下代码代替。(以防VM双开) 。

C#
KillProcess("VisionMasterServerApp");
KillProcess("VisionMaster");
void KillProcess(string strKillName)
{foreach(System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()){if (p.ProcessName == strKillName){try{p.Kill();p.WaitForExit();}catch(Exception e){Console.WriteLine(e.Message.ToString());}}}          
}

补充:
VM启动时,拉起来的进程有四个:VisionMaster.exe,VisionMasterServer.exe,VisionMasterServerAPP.exe,VmModuleProxy.exe;
VM SDK程序启动时,拉起来的进程有两个:VisionMasterServer.exe,VmModuleProxy.exe;
所以,只需要结束VisionMaster.exe和VisionMasterServerAPP.exe进程即可。
(4)检查VM安装环境是否正常?运行VisionMaster4.0.0\Applications\Tools目录下的EnvironmentDetectionTool.exe。
(5)如果这期间打开过多个版本的VM,可以试一下重启电脑或打开相应版本的VM来拉起相应版本的服务。
(6)是否严格按照环境步骤来配置环境?是使用ImportRef工具添加引用,针对一个项目,工具只使用一次。
问题根因
不熟悉如何排查报错原因

2.1.6 模块索引:MFC 模块索引异常解决办法

描述
环境:VM4.0.0 + VS2015及以上
现象:文件编码格式为UTF-8 不带签名编码格式,模块索引会出现 模块无法找到异常
在这里插入图片描述
在这里插入图片描述

解答
更改文件类型为UTF-8 带签名格式或vs默认GBK2312 编码格式
在这里插入图片描述

问题根因
不熟悉引用库环境配置。

2.1.7 环境配置:报错序列不包含任何元素的解决方法

描述
环境:VM4.0.0+VS2015及以上
现象:配置环境后,获取线线测量模块结果,报错“序列不包含任何元素”。如下图所示:
在这里插入图片描述

解答
将“\VisionMaster4.0.0\Development\V4.0.0 \ComControls\bin\x64”下整体重新拷贝。
问题根因
相关依赖库未拷贝。

2.1.8 环境配置:提示未注册ActiveX控件的解决方法

描述
环境:VM4.0.0 +VS2015及以上
问题:如何解决MFC插入VM的控件时,报错未注册ActiveX控件的问题,报错截图如下:
在这里插入图片描述
在这里插入图片描述

解答
关闭VS后,重新注册VM控件,注册步骤如下:
10解注册VM控件,找到如下的win64路径下,右键以管理员权限运行ComUnRegister.bat执行解注册。
2)注册VM控件,找到如下的win64路径下,右键以管理员权限运行ComRegister.bat执行注册。
3)对win32文件夹下的两个文件重复上述操作。
在这里插入图片描述
在这里插入图片描述

问题根因
不了解如何注册VM控件。

2.1.9 控件失效:VM控件运行时不显示的解决方法

描述
环境:VM4.0.0 + VS2015及以上
现象:编译成功后,没有报错,运行之后VM控件是黑色的,不显示任何内容。如下图右边的黑色区域所示。
在这里插入图片描述

解答
此时为环境配置错误,确定本地VM是否是最新版本,然后将本地VM的路径(如:D:\VM4.0\VisionMaster4.0.0\Development\V4.0.0\ComControls\bin\x64)下的所有文件复制到项目路径的Debug文件下。
问题根因
不熟悉全局变量工具及其接口。

2.1.10 环境配置:Qt开发环境出现rc.exe无法启动报错解决办法

描述
环境:VM4.0.0 + VS2015+Qt5.9.9
现象:编译出现rc.exe 无法启动
解答

  1. 找到WindowsSDK 的x86 目录下的rc.exe 以及rcdll.dll 文件
    在这里插入图片描述

  2. 复制到VS bin 目录下
    在这里插入图片描述

问题根因
系统问题

2.1.11 控件失效:添加引用后导致控件失效的解决方法

描述
环境:VM4.0.0 + VS2015及以上
现象:在VM二次开发中,有些引用需要手动添加,如引用VMControls.WPF.dll进行在渲染控件上绘图。但是,在添加之后运行项目,界面上的VM控件区失效,如下图所示的vmProcedureConfigControl、vmRenderControl和vmGlobalToolControl。
在这里插入图片描述

解答
因为VM的引用都是采用相对路径的方式,如果此时是从VM的安装路径中来添加相加的引用,则需要打开当前引用的dll的属性,将复制本地改为False,如下图所示:
在这里插入图片描述

问题根因
不熟悉VM二次开发中的引用。

2.1.12 添加引用:在原有项目中新配置深度学习环境的方法

描述
环境:VM4.0.0 + VS2015及以上
现象:在VM没有装深度学习模块时搭建了二次开发项目,后来项目中需要应用到深度学习。VM中可以很方便的安装深度学习模块,那么如何在原有的项目中配置深度学习模块的dll呢?
解答
在原有项目中新配置深度学习环境的步骤如下所示:
1、VM中安装好深度学习模块后,将本地VM路径下\VM4.0\VisionMaster4.0.0\Development\V4.0.0\ComControls\bin\x64的dll全部拷贝到项目的debug下。
2、手动添加引用项目debug下Module(sp)\x64\DeepLearning相应文件里面的dll, C代表CPU。
在这里插入图片描述

注意手动添加后,引用的属性立马修改(复制本地路径为false)。为true时,debug就会有刚刚复制过来的dll,debug\Module(sp)\x64下的文件夹中也有,代码就会找不到。如果debug下已经有了,就要删除掉。
在这里插入图片描述

3、修改app.config,在<probing privatePath=>的后面添加相应的深度学习的相对路径Module(sp)\x64\DeepLearning\ IMVSCnnClassifyModuC
4、注意,其它模块手动添加引用的步骤类似,但是由于手动添加引用的步骤比较复杂,且对于模块以外的dll很难添加齐全,所以推荐使用引用工具来添加引用(“\VisionMaster4.0.0\Development\V4.0.0 \ComControls\Tool\ImportRef.exe”),且对于一个项目只使用一次工具。
问题根因
不熟悉环境配置

2.1.13 用户权限:普通用户权限以EXE方式启动Server的方法

描述
环境:VM4.0.0 + VS2015及以上
现象:当客户二次开发程序,需要以Windows普通用户权限调用Vm做视觉处理,需要将Server以EXE方式启动。
解答
1)安装VM20220415的安装包,然后安装补丁包(截止20220505,最新补丁为20220505,建议用户打上最新补丁)。如果VM4.0维护版2022年5月份之后的有完整包,直接安装即可,不用安装补丁包。
2)修改二次开发程序的xxx.exe.config配置文件,在“AppSettings”里面增加以下两条信息。下图以圆查找demo程序为例。注意“ServerPath”是该电脑上Server的绝对路径,要填正确。
在这里插入图片描述
在这里插入图片描述

问题根因
不熟悉普通用户权限二次开发的配置。

2.1.14 引用工具:使用引用工具添加引用报错的解决方法

描述
环境:VM4.0.0 +VS2015及以上
现象:在VM4.0的二次开发环境配置中,ImportRef可以帮助用户为项目自动添加引用,但有时会报错缺少mfc120u.dll。
在这里插入图片描述

解答
这个问题可以直接运行VM安装路径下的驱动MSVBCRT.AIO_v2020.05.20.exe解决:
在这里插入图片描述

问题根因
不熟悉VM自带的驱动。

2.1.15 环境配置:句柄创建失败解决问题排查方法

描述
环境:VM4.0.0 + VS2015及以上
现象:VM 二次开发执行CreateSolutionInstance() 出现句柄错误问题。
解答
问题截图如下:
在这里插入图片描述

解决办法:

  1. VM平台软件如果开启,需要关闭退出。
  2. VS未开启管理员权限。
  3. 加密狗未插上,或未安装驱动。

问题根因
不熟悉VM 二次开发流程。

相关文章:

【VM服务管家】VM4.0平台SDK_2.1环境配置类

目录 2.1.1 环境配置&#xff1a;CSharp二次开发环境配置方法2.1.2 环境配置&#xff1a;Qt二次开发环境配置方法2.1.3 环境配置&#xff1a;MFC二次开发环境配置方法2.1.4 环境配置&#xff1a;VB.Net二次开发环境配置方法2.1.5 环境配置&#xff1a;运行出现Vm.Core.Solution…...

最新研究:可审计的具有拜占庭鲁棒的联邦学习方案

Y. Liang, Y. Li and B. -S. Shin, “Auditable Federated Learning With Byzantine Robustness,” in IEEE Transactions on Computational Social Systems, doi: 10.1109/TCSS.2023.3266019. 可免费下载&#xff1a;https://download.csdn.net/download/liangyihuai/87727720…...

JDK1.8下载、安装和环境配置教程

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f9be;&#x1f9be;​​​​​​​ 目录 window系统安装java 下载JDK 配置环境变量 …...

天津超算,青索帮助文档

连接 第一步&#xff0c;点击 配置VPN&#xff08;切换到局域网用&#xff09;和机器&#xff08;也就是各套超算系统&#xff09;。 第二步&#xff0c;点击 机器 选择对应的机器。通常会在下方显示可用的机器&#xff0c;单击其中一个即可。如果只有一个机器&#xff0c;…...

SpringMVC的拦截器和异常处理器

目录 lerInterceptor 拦截器 1、拦截器的作用 2、拦截器的创建 3、拦截器的三个抽象方法 4、拦截器的配置 5、多个拦截器的执行顺序 SpringMVC的异常处理器 1、异常处理器概述 2、基于配置文件的异常处理 3、基于注解的异常处理 lerInterceptor 拦截器 1、拦截器的作…...

查看库文件是32位还是64位|查看lib是静态库还是导入库|判断是debug模式还是release模式

文章目录 dll位数查看lib位数查看查看lib库是静态库还是导入库dll库文件信息查看lib库文件内容查看dll库查看编译模式是debug还是release方法一方法二方法三 lib静态库查看编译模式是debug还是release方法一方法二 lib导入库查看编译模式是debug还是release查看Linux下的.a库&a…...

Python小姿势 - Python爬取数据的库——Scrapy

Python爬取数据的库——Scrapy 一、爬虫的基本原理 爬虫的基本原理就是模拟人的行为&#xff0c;使用指定的工具和方法访问网站&#xff0c;然后把网站上的内容抓取到本地来。 爬虫的基本步骤&#xff1a; 1、获取URL地址&#xff1a; 2、发送请求获取网页源码&#xff1b; 3、…...

[C++初阶]栈和队列_优先级队列的模拟实现 deque类 的理解

为了更好的理解优先级队列priority_queue&#xff0c;这里会同时进行栈和队列的提及 文章目录 简要概念&#xff08;栈和队列&#xff09;栈和队列的模拟实现与使用stack&#xff08;栈&#xff09;deque的理解和操作queue priority_queue&#xff08;优先级队列&#xff09;框…...

Spring是什么?关于Spring家族

初识Spring 什么是Spring&#xff1f; Spring是一个开源的Java企业级应用程序开发框架&#xff0c;由Rod Johnson于2003年创建&#xff0c;并在接下来的几年里得到了广泛的发展和应用。它提供了一系列面向对象的编程和配置模型&#xff0c;支持开发各种类型的应用程序&#x…...

自然语言处理数据集集锦(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 最近更新时间&#xff1a;2023.4.26 最早更新时间&#xff1a;2023.4.25 文本摘要主题的数据集见我之前写的另一篇博文&#xff1a;文本摘要数据集的整理、总结及介绍&#xff08;持续更新ing…&#xff09; 智能司法主题的数据集我准备等项目…...

93、Dehazing-NeRF: Neural Radiance Fields from Hazy Images

简介 论文&#xff1a;https://arxiv.org/pdf/2304.11448.pdf 从模糊图像输入中恢复清晰NeRF 使用大气散射模型模拟有雾图像的物理成像过程&#xff0c;联合学习大气散射模型和干净的NeRF模型&#xff0c;用于图像去雾和新视图合成 通过将NeRF 3D场景的深度估计与大气散射模…...

JAVA子类与继承

目录 JAVA子类与继承 一、子类与父类: 二、子类与对象 三、成员变量的隐藏和方法重写 四、super关键字&#xff08;P122&#xff09; 五、final关键字 六、对象的上转型对象&#xff08;P126&#xff09; 七、继承与多态&#xff08;P128&#xff09; 八、abstract类和…...

62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库

文章目录 62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库62.1 创建数据库示例 62.2 查看数据库示例 62.3 选择数据库示例 62.4 删除数据库示例 62.5 备份数据库示例 62.6 恢复数据库示例 62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库 62.1 创建数据库…...

【分布式搜索引擎ES01】

分布式搜索引擎ES 分布式搜索引擎ES1.elasticsearch概念1.1.ES起源1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引 1.3.es的一些概念1.3.1.文档和字段1.3.2.索引和映射1.3.3.mysql与elasticsearch 1.4.1安装es、kibana、IK分词器1.4.2扩展词词典与停用词词典 2.索引库操作2.1.mappi…...

1.3 鞅、停时和域流-鞅(布朗运动与随机计算【习题解答】)

Let X = ( x n , F n ) , n = 1 , ⋯   , N X=\left(x_n, \mathcal{F}_n\right), n=1, \cdots, N X...

十、ElasticSearch 实战 - 源码运行

一、概述 想深入理解 Elasticsearch&#xff0c;了解其报错机制&#xff0c;并有针对性的调整参数&#xff0c;阅读其源码是很有必要的。此外&#xff0c;了解优秀开源项目的代码架构&#xff0c;能够提高个人的代码架构能力 阅读 Elasticsearch 源码的第一步是搭建调试环境&…...

GPT-3 论文阅读笔记

GPT-3模型出自论文《Language Models are Few-Shot Learners》是OpenAI在2020年5月发布的。 论文摘要翻译&#xff1a;最近的工作表明&#xff0c;通过对大量文本进行预训练&#xff0c;然后对特定任务进行微调&#xff08;fine-tuning)&#xff0c;在许多NLP任务和基准测试上…...

方案解析丨数字人主播如何成为电商直播新标配

浙江省政府办公厅近日印发《关于进一步扩大消费促进高质量发展若干举措》支持电子商务直播发展。抢抓电子商务直播快速发展机遇&#xff0c;发展数字人虚拟主播、元宇宙新消费场景等新业态新模式。 随着电商直播快速发展&#xff0c;企业怎么高效地实现引流获客&#xff0c;成为…...

Python最全迭代器有哪些?

python中迭代器的使用是最广泛的&#xff0c;凡是使用for语句&#xff0c;其本质都是迭代器的应用。 从代码角度看&#xff0c;迭代器是实现了迭代器协议的对象或类。迭代器协议方法主要是两个&#xff1a; __iter__()__next__() __iter__()方法返回对象本身&#xff0c;他是…...

ESP32 网络计时器,包含自动保存

简介 本代码是基于ESP32开发板实现的一个计时器功能&#xff0c;具备倒计时、计时器时长选择、显示当前时间、有源蜂鸣器报警等功能。代码中使用了WiFi网络连接、NTP时间同步、EEPROM存储等功能。通过按钮控制计时器的开始、停止和计时器时长的选择。 运行原理概述 在ESP32开…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...