Kithara常见问题解答


目录

    • 通用问题
      • 我的内核驱动程序已经签名了吗?
      • 是否可以在打开驱动程序时防止显示介绍窗口?
      • Windows 7 仍然支持吗?
      • 错误0x10142422(`KSERROR_CANNOT_START_KERNEL`)在`KS_openDriver`时出现?
      • 错误 10145241 (KSERROR_CANNOT_START_KERNEL) 在 KS_openDriver 时出现?
      • 可以在C#应用程序中使用Kithara RealTime Suite吗?
      • Kithara RealTime Suite可以在虚拟机中运行吗?
      • 问要在Visual Studio 2005中打开带有WPF的C#项目
      • 是否可以在Kithara RealTime Suite中使用VB6或者OCX组件?
      • 运行kithara后系统时钟出现异常
    • 实时系统
      • 如何在C#程序中利用实时特性?
      • 什么会导致实时任务的抖动?
      • 网卡驱动如何动态切换
      • Error 1040?000 (KSERROR_NO_REALTIME_ACCESS) by `KS_openDriver`?
      • 如何调试实时代码?
    • 移植
      • Real-time在Windows 10 x64上如何实现?
      • 可以在64位系统上使用我的32位实时应用程序吗?
      • Kithara DOS Enabler是否支持Windows 10?
    • USB
      • 如何设置接收超时?
      • USB是否支持实时能力?
    • 回调、信号以及内核代码
      • 在C++中,在实时上下文中可以创建一个类的全局对象吗?
      • 如果一个已经被标记为已信号的事件再次被标记为已信号会发生什么?
      • 回调函数的原型应该是什么样子呢?
    • EtherNet、TCP、UDP
      • 是否可以在共享的 IRQ 上使用实时以太网?
      • 当调用 `KS_openAdapter` 时出现 `KSERROR_INTERRUPT_IS_SHARED` 错误,这是什么意思呢?
    • EtherCAT
      • 有关于 `KSERROR_APPLICATION_LAYER_ERROR` 的更多信息吗?
      • 在调用 `KS_createEcatMaster` 出现错误 1F0F0000(KSERROR_MISSING_XML_INFORMATION)?
      • 在调用 `KS_createEcatSlave` 时出现错误 10190000(KSERROR_DEVICE_ALREADY_USED)?


通用问题

我的内核驱动程序已经签名了吗?

是的,我们的实时驱动程序——通常包括我们所有的安装和应用程序文件——已经签名。特别是对于64位系统,这是正确使用软件的必要条件。然而,签名的驱动程序显示出可靠性。

这也意味着我们的软件可以简单地用作您的PCI/PCIe或USB设备的驱动程序。为此,包含的INF文件必须按照记录的方法添加一条条目。这样做是为了在每个系统上安全地访问硬件。

我们的建议是:将所需的硬件ID发送给我们,我们会将它们插入INF文件,并在过程中通过CAT文件对其进行签名。

是否可以在打开驱动程序时防止显示介绍窗口?

是的,这是可以的。

打开注册表编辑器(regedit.exe)并找到以下节点:

HKEY_LOCAL_MACHINE/SOFTWARE/Kithara/Drivers/<driver_name>
在此文件夹中插入一个名为“HideInfo”的DWORD值(32位),其值为1。这样,介绍窗口一天只会出现一次,并且仅在使用开发者许可证时。在运行时安装中,介绍窗口将永远不会出现。

Windows 7 仍然支持吗?

不支持。由于微软已经停止了对Windows 7的认证,我们也无法为其提供更新。

错误0x10142422(KSERROR_CANNOT_START_KERNEL)在KS_openDriver时出现?

有时,安装程序或KS_openDriver可能无法正确启动您的Kithara驱动程序。在这种情况下,KS_openDriver会报告错误KSERROR_CANNOT_START_KERNEL,特别是错误代码0x10142422。如果您收到此错误,则需要手动启动驱动程序。请按照以下步骤操作:

  1. 点击“开始”按钮 > “运行…” > 输入"regedit" > 确认点击“确定”打开注册表编辑器。
  2. 找到键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Kithara-。您的驱动程序名称与 DLL 文件名称相同。
  3. 点击该键,在窗口右侧看到Start值。
  4. 双击Start值,输入1,并确认点击“确定”。
  5. 重启Windows。

现在,KS_openDriver 应该能够成功运行。

错误 10145241 (KSERROR_CANNOT_START_KERNEL) 在 KS_openDriver 时出现?

此错误是由于驱动程序的签名证书引起的。证书或解释证书的Windows版本已过期。

您需要:

  • 禁用Windows安全启动,以允许加载没有有效证书的驱动程序
  • 或者获取具有有效证书(EV代码签名证书)的更新驱动程序

另外,您可以:

  • 更新您的Windows,使其能够识别现代证书类型。

可以在C#应用程序中使用Kithara RealTime Suite吗?

是的,Kithara RealTime Suite包括一个C#类,用于公开Kithara RealTime Suite的API。使用这个类,可以在C#应用程序中利用整个功能范围。然而,包含实时能力代码的部分程序必须以DLL形式提供,使用原生机器代码(x86或x64),通常由C/C++或Delphi生成。

为了尽可能简化开发阶段,我们提供了一个项目模板,展示如何将实时能力代码集成到您的应用程序中。您可以直接使用这个项目文件进行自己的开发。

Kithara RealTime Suite可以在虚拟机中运行吗?

在虚拟环境中,无法保证实时能力。控制虚拟机的Hypervisor无法在虚拟环境内受到影响。这意味着无法保证快速的响应时间。

原则上,Kithara RealTime Suite可以安装在虚拟机上。例如,这对于调试目的可能是有益的。然而,无法保证时间性能,并且某些功能可能不可用。

问要在Visual Studio 2005中打开带有WPF的C#项目

您需要按照以下步骤操作:

  1. 安装必要的扩展:
    Visual Studio 2005最初不支持WPF,因为它随附的是.NET Framework 2.0,而WPF从.NET Framework 3.0开始支持。您需要安装一个名为“VS 2005 Extensions for .NET Framework 3.0 (WPF & WCF) CTP”的扩展。

    • 微软提供了这个扩展,但在2008年6月从官方下载中心中移除。
    • 您可以从CNET等替代来源下载:下载链接。
  2. 安装步骤:
    下载扩展后,按照以下步骤操作:

    • 运行安装程序 vsextwfx.msi
    • 如果您已安装了比3.0更高版本的.NET Framework,请使用以下命令行启动安装程序,以覆盖兼容性检查:
      msiexec /i vsextwfx.msi WRC_INSTALLED_OVERRIDE=1
      
    • 这样可以确保即使检测到较新的.NET Framework版本,安装也能顺利进行。
  3. 打开项目:

    • 安装完成后,启动Visual Studio 2005。
    • 现在应该能够打开和处理包含WPF组件的C#项目。

按照这些步骤,您可以在Visual Studio 2005中启用对WPF的支持,并处理包含WPF特性的C#项目。

是否可以在Kithara RealTime Suite中使用VB6或者OCX组件?

原则上,可以在我们的软件中使用VB6。但由于VB6现在已经非常老旧,因此我们提供的示例程序很少。我们软件的主要目标是提供实现“Windows下实时”功能的库。这只能在Windows的内核级别上实现。因此,需要能在内核级别运行的语言。目前只有C/C++和Delphi是支持的这种语言。此外,我们也支持一些C#项目示例,因为可以将主要应用程序用C#编写,然后将仅包含时间关键部分的部分编译成C++的DLL。

如果您使用VB.NET,那么可以轻松使用C#接口。但是仍然需要编写一个用C或C++编写的DLL来处理时间关键的代码。如果不涉及时间关键(实时)需求,那么可以继续在应用程序级别上使用C#或VB.NET编写所有代码。

即使可以使用VB6进行编程,我们也不推荐这样做,因为VB6无法正确执行多线程应用程序。同样的情况也适用于OCX组件,这也是我们没有开发OCX组件的原因。

运行kithara后系统时钟出现异常

您可以手动禁用KRTS,使Windows时钟保持自身的同步状态。操作步骤如下:

  1. 在Windows注册表中创建键 HKEY_LOCAL_MACHINE\SOFTWARE\Kithara\Modules\clock
    在该键下添加一个名为 DisableAdjustclocks 的DWORD值。
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Kithara\Modules\clock\DisableAdjustclocks 的值设置为 1。
  3. 系统重启后,Windows时间将不再被调整或与KRTS时钟同步。
    这些步骤可以帮助您在Kithara RealTime Suite中修复同步问题之前手动调整和管理Windows时钟。

实时系统

如何在C#程序中利用实时特性?

Windows本身不是一个实时系统。要实现实时特性,必须在实时上下文(内核级别)中执行时间关键的代码。由于在.NET环境中,C#无法实时执行,因此其时间行为仍取决于Windows调度程序。但是可以将时间关键的C#线程分配给绝对最高的线程优先级。

以前程序员无法做到这一点。因此,Kithara提供了相应的机制。至少,这些机制可以确保应用程序优先于所有其他Windows应用程序。为了实现真正的实时行为,关键代码应该使用C++或Delphi编写,并移至DLL文件中,以便可以直接加载到实时上下文中。

用于应用程序和实时上下文之间通信的机制包括共享内存、数据或消息管道、事件或套接字。我们提供了多个示例项目,展示如何在C#应用程序中嵌入“硬”实时特性。

什么会导致实时任务的抖动?

通过将CPU专用于Kithara RealTime,Windows或运行在Windows上下文中的其他软件不会对系统的实时行为产生影响。
然而,不同的硬件可能具有更好或更差的实时能力,特别是BIOS/UEFI的配置选项可能会影响实时能力。

  • C1E = Enhanced Power Save Modes of the CPU.
    现代CPU的节能模式使CPU可以非常快速地切换到不同的睡眠模式,关闭CPU的不同功能块。从这些睡眠模式唤醒CPU需要时间,并会引入延迟。
    为了获得最佳的实时体验,应该关闭所有节能模式。
    您可以在BIOS/UEFI中找到以下选项(具体取决于您的BIOS/UEFI设置):

    • C1E
    • C-States
    • Deeper C States
  • SpeedStep
    现代CPU的节能选项会使CPU在空闲时切换到较低的频率。在需求增加时恢复到更高的频率需要时间,并会引入延迟。
    为了获得最佳的实时体验,应该关闭动态频率变化。
    您可以在BIOS/UEFI中找到以下选项(具体取决于您的BIOS/UEFI设置):

    • EIST
    • SpeedStep
    • Turbo Boost
    • PowerNow!
    • Cool’n’Quiet
  • Legacy USB Support
    根据我们的经验,这些选项(取决于UEFI的实现方式)可能会对实时能力产生不良影响,应该将其关闭。

  • 超线程/同时多线程(SMT)
    在大多数情况下,应该关闭超线程以确保每个“逻辑”CPU对物理CPU资源的完全访问。请参阅《将CPU专用于Kithara RealTime》中的相应说明。

  • WBINVD = 清除所有内部缓存的汇编指令。
    例如,Nvidia图形设备驱动程序使用此指令。此问题只能通过避免使用此指令的软件来解决。对于设备驱动程序,只有切换到不使用此指令的不同硬件才能帮助解决问题。

网卡驱动如何动态切换

有两种方法可以实现自动切换驱动, 包括但不限于网卡驱动、XHCI驱动等

  1. 在打开驱动的时候添加KSF_DYNAMIC_SWITCH标志
  2. 在注册表中HKEY_LOCAL_MACHINE/SOFTWARE/Kithara/Drivers/<driver_name>添加一个DWORD数据类型的SwitchAlwaysDynamic项, 值设置为1

Error 1040?000 (KSERROR_NO_REALTIME_ACCESS) by KS_openDriver?

KS_openDriver函数可能会返回KSERROR_NO_REALTIME_ACCESS错误。
这并不总是一个错误。
它更像是一个警告,表明运行驱动程序的机器由于某种原因没有实时能力。
具体原因将由扩展错误码指定:

  • KSERROR_NO_REALTIME_ACCESS | 0x5000: 检测到Windows虚拟化。参见
  • KSERROR_NO_REALTIME_ACCESS | 0xA000: 未找到APIC(高级可编程中断控制器)。
    系统没有APIC(Advanced Programmable Interrupt Controller)。不支持没有APIC的“标准PC”配置。
  • KSERROR_NO_REALTIME_ACCESS | 0xB000: Windows未使用APIC。
  • KSERROR_NO_REALTIME_ACCESS | 0xC000: 未找到实时CPU - 请启用专用模式。
    在Windows 8/8.1和Windows 10上运行实时任务时,需要使用专用CPU,但没有可用的CPU。
    参见
  • KSERROR_NO_REALTIME_ACCESS | 0xD000: 未允许实时。通常表示缺少实时许可证。

在这些情况下,任何不使用(显式或隐式)实时功能的函数仍然可以成功使用。

如何调试实时代码?

假设应用程序的实时部分位于一个 DLL 中,并且在调用KS_loadKernel函数时没有设置KSF_REALTIME_EXEC标志,那么可以通过标准的 Windows 机制将 DLL 加载到应用程序的上下文中,然后像通常一样进行调试。这样可以彻底评估算法的正确性及其他方面。

要在实时环境中进行更深入的开发(在调用KS_loadKernel时设置了KSF_REALTIME_EXEC标志),您可以使用 Kithara Kernel Tracer。

移植

Real-time在Windows 10 x64上如何实现?

然而,Windows 10 x64引入了所谓的“内核补丁保护”,以限制对操作系统的访问。因此,在被Windows使用的CPU核心上执行实时任务的代码执行是不可能的。

然而,通过使用专用模式,可以将单个或多个CPU核心从Windows操作系统中释放出来(更多信息请参阅此处)。在这种情况下,Kithara实时系统独占地在相应的CPU上启动。这使得在Windows 10 x64系统上实现了具有最佳实时特性的实时功能。

可以在64位系统上使用我的32位实时应用程序吗?

我们区分3种不同的组合:

  1. 在32位Windows上运行32位应用程序
  2. 在64位Windows上运行64位应用程序
  3. 在64位Windows上运行32位应用程序

情况1)和2)是显而易见的,这里不再讨论。

对于情况3),我们建议以下解决方案:
将具有实时要求的部分功能移入一个独立的DLL中。
使用我们的KiK64机制,即使您的应用程序是为32位开发的,并且DLL是为64位操作系统开发的,您也可以从应用程序调用这些功能。

有关KiK64机制的详细信息,请参阅。

Kithara DOS Enabler是否支持Windows 10?

是的,Kithara DOS Enabler可以使硬件相关的DOS和16位Windows程序在Windows 10下正常工作。
支持32位和64位系统。
Kithara DOS Enabler拥有自己的DOS系统(FreeDOS),并在专用CPU核心上本地执行16位应用程序。
通过消除Windows系统对实时应用程序的任何影响,实现了时间关键的应用程序。

要编写硬件相关和时间关键的32位和64位应用程序,请参考Kithara RealTime Suite。

USB

如何设置接收超时?

接收超时通过在调用 KS_openUsbEndPoint 函数时激活标志 KSF_USE_TIMEOUTS 来实现。接收超时时间设置如下:

int timeout = 500;  // 超时时间,单位为毫秒
KS_execUsbCommand(hUsbEndPoint, KS_USB_SET_PACKET_TIMEOUT, 0, &timeout, sizeof(timeout), 0);

确保在设置超时时,hUsbEndPoint 是有效的 USB 端点句柄。这样可以指定系统在等待接收数据时的最长等待时间。

USB是否支持实时能力?

是的,通过USB实时模块,可以直接访问xHCI控制器,从而实现与USB设备(例如USB3 Vision相机)的实时通信。

回调、信号以及内核代码

在C++中,在实时上下文中可以创建一个类的全局对象吗?

是的,有不同的方法可以实现这一点。
你需要考虑的是,在动态链接库(DLL)加载时常见的启动代码并不在实时环境下执行。
也就是说,全局对象的构造函数必须通过其他方式执行。

以下是几种方法:

  1. 使用静态指针变量:

    MyClass* _pObject;
    int myFunction(...) {static MyClass* _pObject;if (!_pObject)_pObject = new MyClass(...);_pObject->doSomething();// other operations
    }
    

    这种方法中,全局对象的实例化延迟到第一次调用 myFunction 函数时。

  2. KS_loadKernel 中使用初始化函数:

    MyClass* _pObject;
    int myInit(void*, void*) {_pObject = new MyClass(...);// other initialization
    }
    int myFunction(...) {_pObject->doSomething();// other operations
    }
    

    这种方法中,全局对象的初始化发生在 KS_loadKernel 函数中。

  3. 使用 KS_loadKernel 和定位 new:

    MyClass _object;
    int myInit(void*, void*) {new (&_object) MyClass(...);// other initialization
    }
    int myFunction(...) {_object.doSomething();// other operations
    }
    

    这种方法通过定位 new 在已分配的内存上构造对象 _object

总的来说,在内核级或实时环境中,你可以很好地使用类和对象。不过,需要谨慎处理全局对象的初始化,确保不会影响实时性能或引入不必要的复杂性。

如果一个已经被标记为已信号的事件再次被标记为已信号会发生什么?

对一个已经被标记为已信号的事件再次进行标记将不会产生任何效果。

如果一个事件被标记为已信号,事件的消费者会自动通过消费事件来重置信号,如果这个事件是一个“自动重置事件”(默认情况)。
如果事件是通过使用标志 KSF_MANUAL_RESET 调用 KS_createEvent 创建的,则它不会成为一个“自动重置事件”。
在这种情况下,事件的消费不会重置信号,必须通过调用 KS_resetEvent 来完成这一操作。
这允许多个消费者对事件做出反应。

回调函数的原型应该是什么样子呢?

一般来说,回调函数的原型应该如下:

int __stdcall _myCallBack(void* pArgs, void* pContext);

其中:

  • pArgs:是通过 KS_createCallBack 函数提供的引用参数。
  • pContext:是依赖于信号事件的上下文参数。

如果上下文参数不需要,函数的原型可以简化为:

int __stdcall _myCallBack(void* pArgs);

在这种情况下,必须使用带有标志 KSF_NO_CONTEXT 调用 KS_createCallBack 函数,否则会错误地恢复堆栈,可能导致例如蓝屏等问题。

EtherNet、TCP、UDP

是否可以在共享的 IRQ 上使用实时以太网?

如果中断与其他硬件共享,通常就不能再称为实时中断了。
函数 KS_openAdapter 会报告 KSERROR_INTERRUPT_IS_SHARED 错误。

背景信息:

只有在 IRQ 可以独占保留的情况下,才能使用带有标志 KSF_REALTIME_EXEC 的网络适配器注册中断。
可能是一个 PCI 设备,并且相同的 IRQ 被其他设备使用,这将导致上述错误。
可以在 KS_openAdapter 调用中设置 KSF_FORCE_OVERRIDE 标志以强制使用实时中断。
然而,这可能会影响其他硬件/设备的中断服务例程,导致系统冻结或蓝屏。
由于为 PCI 卡保留特定的独占中断非常困难,基本上建议使用 PCI Express 硬件(PCIe)。
通过使用 PCIe,中断自动是独占的,因为使用了消息传送中断(MSI)。
因此,在桌面系统上使用 PCIe 卡或在笔记本电脑上使用 PCI ExpressCards 是首选而不是使用 PCI 硬件。

当调用 KS_openAdapter 时出现 KSERROR_INTERRUPT_IS_SHARED 错误,这是什么意思呢?

为了获得最大的实时性能,我们需要对硬件进行独占访问。
不幸的是,PCI 设备有能力共享 IRQ 线路,并且它们经常这样做。
您可以通过在 Windows 设备管理器中点击 ‘查看 → 按类型查看的资源’ 来查看使用的 IRQ。

您有几种解决这个问题的选项:

  • 最好的方法是使用 PCIe(PCI Express)硬件,其中 IRQ 线路从不共享。
  • 另一个好的解决方案是确保您的 PCI 硬件使用独占的 IRQ。要实现这一点并不容易,您可以尝试使用另一个 PCI 插槽,并希望主板为此插槽使用另一个 IRQ 线路,或者在某些 BIOS 中,您可以为特定的 PCI 插槽保留某些 IRQ。
  • 第三个选项是不使用实时执行来打开适配器(即在 KS_openAdapter 中不使用 KSF_REALTIME_EXEC),并强制 EtherCAT 主控使用这样的适配器(使用 KS_createEcatMaster 并带有 KSF_FORCE_OVERRIDE 标志)。
    在这种解决方案中,会丢失一些实时行为,但您能够打开主控,有时这对于测试目的已经足够好了。

最后一个选项是强制使用实时和共享 IRQ 来打开适配器,这是不推荐的,因为最常见的效果是您的计算机会完全无响应,唯一的解决方法是硬件重置。要这样做,您需要在 KS_openAdapter 中使用 KSF_REALTIME_EXECKSF_FORCE_OVERRIDE 标志。
有时这种方法会奏效,这取决于与哪些硬件共享 IRQ。

EtherCAT

有关于 KSERROR_APPLICATION_LAYER_ERROR 的更多信息吗?

是的,关于此错误码的额外信息包含在低 16 位中,它们的描述详见以下表格。

在调用 KS_createEcatMaster 出现错误 1F0F0000(KSERROR_MISSING_XML_INFORMATION)?

这个错误表示在提供的描述性 XML 文件中找不到与该从站匹配的条目,因此无法保证该从站已被充分识别和正确初始化。

要解决这个问题,请在调用 KS_createEcatMaster 时指定 XML 文件的路径。

如果您仍然希望在没有现有 XML 文件的情况下打开一个从站,可以在调用 KS_createSlaveKS_createSlaveIndirect 时指定 KSF_FORCE_OVERRIDE 标志。

在调用 KS_createEcatSlave 时出现错误 10190000(KSERROR_DEVICE_ALREADY_USED)?

当相同的 ID 和位置组合不明确时,KS_createEcatSlave 会报告 KSERROR_DEVICE_ALREADY_USED 错误。
ID 和位置的解释遵循以下规则:

  • 当 ID = 0 且 position = 0 时:选择第一个符合供应商、产品和版本,并且尚未分配的从站。
  • 当 ID = 0 且 position ≠ 0 时:忽略 ID,position 是从站的绝对位置。
  • 当 ID ≠ 0 时:position 是相对于指定 ID 的端子的位置。

这些规则有助于确定从站的唯一性和正确的配置方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码开发技术助力企业数字化管理的实践探究

随着信息技术的飞速发展&#xff0c;企业对于数字化管理的需求日益迫切。而低代码开发技术&#xff0c;以其高效、灵活、易用的特点&#xff0c;正逐渐成为企业数字化管理的重要工具。本文将进一步探讨低代码开发技术在企业数字化管理实践中的应用及其带来的变革。 低代码开发技…

每日一题——Python实现PAT乙级1026 程序运行时间(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码结构和逻辑 时间复杂度 空间复杂度 代码优化建议 总结 我要更强 …

交换机需要多大 buffer

有点违背直觉&#xff0c;但是真事儿&#xff0c;交换机过境的流越多&#xff0c;所需 buffer 越小&#xff0c;这是为什么&#xff1f; 范氏(范雅各布森&#xff0c;van jacobson)管道的 aimd 流建议 buffer_size 为 bdp&#xff0c;这很容易理解&#xff0c;因为 aimd 流最小…

【mybatis】spring boot框架中使用mybatis-plus配置多数据源

1、简介 在Java开发中&#xff0c;当使用MyBatis-Plus进行数据库操作时&#xff0c;可能会遇到需要配置多数据源的场景&#xff0c;比如读写分离、操作多个数据库等。MyBatis-Plus本身是基于MyBatis的增强工具&#xff0c;它并没有直接提供多数据源的配置支持&#xff0c;但可…

k8s nfs配置mysql,redis

1.安装nfs # centos yum install nfs-utils -ysudo mkdir -p /nfs/mysql sudo chmod 777 /nfs/mysqlsudo mkdir -p /nfs/redis sudo chmod 777 /nfs/redisvim /etc/exports/nfs/mysql *(rw,sync,no_root_squash) /nfs/redis *(rw,sync,no_root_squash)sudo exportfs -asystemc…

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出

刚刚 ETF Store 总裁 Nate Geraci 在 X &#xff08;前Twitter&#xff09;平台上宣布&#xff0c;备受数字货币市场期待的SEC以太坊现货 ETF提案&#xff0c;将于7 月中旬通过美国证券交易委员会&#xff08;SEC&#xff09;批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …

cannot import name ‘LineString‘ from ‘shapely‘

cannot import name LineString from shapely pip install shapely -U 升级到2.0后好像好了

【VUE】 深入理解 Vue 动态路由:简介、实际开发场景与代码示例

深入理解 Vue 动态路由&#xff1a;简介、实际开发场景与代码示例 Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;它拥有丰富的生态系统&#xff0c;其中 Vue Router 是其官方的路由管理库。动态路由是 Vue Router 的一个强大特性&#xff0c;允许我们在应用运行时根…

pnpm的坑

请问pnpm的两个坑怎么解决&#xff1a; 第一个坑&#xff1a;没有节省磁盘空间 我已经配置了依赖的存储位置&#xff0c; 但我在项目里pnpm install以后&#xff0c;发现依赖包还是很大&#xff0c; 然后发现里面的链接并不是指向先前配置的依赖存储位置&#xff0c;而是指…

【数智化人物展】袋鼠云CEO宁海元:大模型时代,Data+AI将成为新的基础设施

宁海元 本文由袋鼠云CEO宁海元投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级先锋人物》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 身处这个瞬息万变的数字经济时代&#xff0c;传统的生产模式往往依赖于经验和固定的流程&…

上海市计算机学会竞赛平台2023年2月月赛丙组圆环三染色

题目描述 有一个圆环上有 &#x1d45b;n 个点&#xff0c;一个染色方案需要为每个点分配三种颜色中的一种&#xff0c;且圆环上相邻的点颜色不能相同。 请求出有多少种染色方案。答案可能很大&#xff0c;输出模 1,000,000,0071,000,000,007 的余数。 输入格式 单个整数表…

k8s-第六节-数据持久化

数据持久化 kubernetes 集群不会为你处理数据的存储&#xff0c;需要为数据库挂载一个磁盘来确保数据的安全。 可以选择云存储、本地磁盘、NFS。 本地磁盘&#xff1a;可以挂载某个节点上的目录&#xff0c;但是这需要限定 pod 在这个节点上运行 云存储&#xff1a;不限定节…

GEE计算遥感生态指数RESI

目录 RESI湿度绿度热度干度源代码归一化函数代码解释整体的代码功能解释:导出RSEI计算结果参考文献RESI RSEI = f (Greenness,Wetness,Heat,Dryness)其遥感定义为: RSEI = f (VI,Wet,LST,SI)式中:Greenness 为绿度;Wetness 为湿度;Thermal为热度;Dryness 为干度;VI 为植被指数…

文心一言指令:快速入门手册

文心一言&#xff08;Wenxin Yiyan&#xff09;是百度推出的一款人工智能语言模型&#xff0c;能够生成自然语言内容&#xff0c;回答问题&#xff0c;进行翻译等多种任务。以下是详细的文心一言指令使用指南&#xff0c;帮助您快速上手。 目录 简介注册与登录接口调用常用指…

手写starter核心思路流程-全网最详细版本

全网最详细手写starter组件教程 那么在写这篇博客之前,先问一下大家为什么要写starter组件,仅仅只是为了炫技吗?还是真正的在业务中需要.在现在的开发环境下,什么是竞争力? 举例分页查询来说,每个来公司的程序员都有一套自己写分页的流程,但是这套流程基本上都是重复的,那么…

Docker学习笔记(一)概念理解

一、什么是docker容器 Docker容器是一种轻量级、可移植的软件封装技术&#xff0c;它允许开发者将应用程序及其依赖、配置文件、运行环境等打包到一个独立的、自包含的执行单元中。容器与虚拟机相似&#xff0c;都提供了隔离的运行环境&#xff0c;但容器更加轻量级&#xff0c…

如何清理电脑内存?让电脑运行如飞!

电脑内存&#xff08;RAM&#xff09;的清理对于维持系统的流畅运行至关重要。随着使用时间的增加&#xff0c;系统内存会被各种应用程序和后台进程占用&#xff0c;导致系统响应变慢&#xff0c;甚至出现卡顿现象。通过有效地清理内存&#xff0c;可以提升电脑的性能&#xff…

深入理解如何撤销 Git 中不想提交的文件

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

初识 ANTLR4:构建强大解析器的利器

初识 ANTLR4&#xff1a;构建强大解析器的利器 在现代软件开发中&#xff0c;解析和处理各种形式的文本数据是一个常见而又复杂的任务。无论是编译器、数据格式转换工具&#xff0c;还是协议解析器&#xff0c;解析器的作用都至关重要。ANTLR4&#xff08;ANother Tool for La…

MySQL内存使用率高且不释放问题排查与总结

背景 生产环境mysql 5.7内存占用超过90%以上&#xff0c;且一直下不来。截图如下&#xff1a; 原因分析 1、确定mysql具体的占用内存大小&#xff0c;通过命令&#xff1a;cat /proc/Mysql进程ID/status查看 命令执行后的结果比较多&#xff08;其他参数的含义想了解可参考这…