当前位置: 首页 > 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开…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...