115.工业相机海康SDK开发指南(阅读)

一、SDK初始化

包含初始化SDK和反初始化SDK接口。(由于看不到函数内部的具体实现,因此以下的解释仅代表个人的理解)

函数说明

MV_CAMCTRL_API int __stdcall MV_CC_Initialize()//初始化SDK

初始化SDK

成功,返回MV_OK;失败,返回错误码。

MV_CC_Initialize() 函数是用于初始化相机SDK的函数,其内部实现通常包括以下步骤:

  1. 检查环境:函数内部会检查当前系统环境,包括操作系统版本、CPU架构、SDK依赖的动态链接库等,确保相机SDK可以在当前系统上正常运行。

  2. 资源分配:在初始化过程中,函数会分配所需的资源,包括内存空间、缓冲区等。这些资源通常用于存储相机连接信息、图像数据以及其他相关数据。

  3. 加载配置:相机SDK通常会加载预设的配置文件或默认参数,以确保相机的基本设置处于可用状态。这些配置可能涉及图像格式、分辨率、曝光时间、增益等。

  4. 初始化设备:函数会初始化与相机通信的硬件接口,包括USB、GigE、CameraLink等接口,以确保能够与相机进行正常通信。

  5. 初始化通信协议:针对相机的通信协议(例如GigE Vision、USB3 Vision等),函数会进行相应的协议初始化,确保能够正确地与相机进行数据交换。

  6. 设置默认参数:在初始化过程中,函数可能会设置一些默认参数,以便用户在不进行额外设置的情况下即可开始使用相机。

  7. 返回状态码:初始化过程中可能会出现各种异常情况,如硬件连接问题、驱动程序错误等。函数会根据实际情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

MV_CAMCTRL_API int __stdcall MV_CC_Finalize()

反初始化SDK,释放资源

成功,返回MV_OK;失败,返回错误码

MV_CC_Finalize() 函数是用于反初始化相机SDK的函数,其内部实现通常包括以下步骤:

  1. 释放资源:函数会释放在初始化过程中分配的资源,包括内存空间、缓冲区、连接句柄等。这些资源在反初始化过程中被释放,以避免内存泄漏和资源浪费。

  2. 关闭连接:如果相机SDK与相机建立了连接,函数会关闭与相机的连接。这涉及释放相机句柄、关闭相机通信接口等操作。

  3. 清理配置:在反初始化过程中,函数可能会清理相机SDK加载的配置信息,包括临时文件、日志文件、缓存数据等,以确保相机SDK在下次初始化时能够重新加载正确的配置。

  4. 释放协议资源:针对相机通信所使用的协议(例如GigE Vision、USB3 Vision等),函数会释放相应的协议资源,包括关闭网络连接、释放协议句柄等。

  5. 关闭通信接口:函数会关闭与相机通信的硬件接口,包括USB、GigE、CameraLink等接口,以确保相机SDK不再与相机进行数据交换。

  6. 返回状态码:反初始化过程中可能会出现各种异常情况,如资源释放失败、连接关闭失败等。函数会根据实际情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

总之,MV_CC_Finalize() 函数的内部实现旨在确保相机SDK在反初始化过程中能够安全、完整地释放资源,并在关闭与相机的连接后恢复到初始状态,以保证系统的稳定性和可靠性。

二、相机初始化 

包含枚举相机、创建句柄、打开相机等接口

函数说明

MV_CC_EnumerateTls()

MV_CAMCTRL_API int __stdcall MV_CC_EnumerateTls()

获取支持的传输层

当前支持的传输层协议类型和数值总和

MV_CC_EnumerateTls() 函数用于获取支持的传输层信息,其内部实现通常包括以下步骤:

  1. 搜索传输层设备:函数会搜索系统中支持的传输层设备,例如GigE Vision、USB3 Vision等。它可能会遍历系统的设备管理器或者扫描特定目录,以发现已安装的传输层设备。

  2. 获取设备信息:一旦发现传输层设备,函数会获取这些设备的详细信息,包括设备类型、设备标识、连接状态等。这些信息有助于用户了解系统中存在的传输层设备情况。

  3. 返回传输层列表:函数会将搜索到的传输层设备信息组织成一个列表或数组,并将其返回给调用者。每个元素通常包含设备的名称、标识符、连接状态等信息。

  4. 错误处理:在搜索传输层设备的过程中,可能会出现各种异常情况,如设备丢失、连接失败等。函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

  5. 返回状态码:函数会根据执行情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

总之,MV_CC_EnumerateTls() 函数的内部实现旨在获取系统中支持的传输层设备信息,并将其返回给调用者,以便用户选择合适的传输层设备进行相机操作。

MV_CC_EnumDevices()

MV_CAMCTRL_API int __stdcall MV_CC_EnumDevices  ( IN unsigned int  nTLayerType,  IN OUT MV_CC_DEVICE_INFO_LIST *  pstDevList  )   

枚举设备,支持枚举对应采集卡上的相机

MV_CC_EnumDevices() 函数用于枚举设备,支持枚举对应采集卡上的相机。其内部实现通常包括以下步骤:

  1. 指定传输层类型:函数的第一个参数 nTLayerType 是传输层类型,用于指定要枚举的设备类型,比如 GigE Vision、USB3 Vision 等。

  2. 获取设备列表:函数会根据指定的传输层类型,在系统中查找相应类型的设备。它可能会调用操作系统的设备管理接口,或者调用厂商提供的 SDK 函数来获取设备列表。

  3. 填充设备信息:找到的设备信息会被填充到 MV_CC_DEVICE_INFO_LIST 结构体中。这个结构体通常包含设备的数量、设备的唯一标识符、设备的 IP 地址(对于网络设备)、设备的型号和厂商等信息。

  4. 返回设备列表:填充好设备信息后,函数会将设备列表返回给调用者。调用者可以通过遍历设备列表来获取每个设备的详细信息,进而实现对设备的操作。

  5. 错误处理:在获取设备列表的过程中,可能会出现各种异常情况,如设备连接失败、权限不足等。函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

  6. 返回状态码:函数会根据执行情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

总之,MV_CC_EnumDevices() 函数的内部实现旨在获取系统中指定传输层类型的设备列表,并将其返回给调用者,以便用户对设备进行操作和控制。

MV_CC_EnumDevicesEx()

MV_CAMCTRL_API int __stdcall MV_CC_EnumDevicesEx(IN unsigned int  nTLayerType,  IN OUT MV_CC_DEVICE_INFO_LIST *  pstDevList,  IN const char *  strManufacturerName) 

根据厂商名字枚举设备,支持枚举对应采集卡上的相机

MV_CC_EnumDevicesEx() 函数用于根据厂商名称枚举设备,支持枚举对应采集卡上的相机。其内部实现大致如下:

  1. 指定传输层类型和厂商名称:函数的第一个参数 nTLayerType 是传输层类型,用于指定要枚举的设备类型,比如 GigE Vision、USB3 Vision 等。第三个参数 strManufacturerName 是要枚举的设备的厂商名称。

  2. 获取设备列表:函数会根据指定的传输层类型和厂商名称,在系统中查找相应类型和厂商的设备。它可能会调用操作系统的设备管理接口,或者调用厂商提供的 SDK 函数来获取设备列表。

  3. 填充设备信息:找到的设备信息会被填充到 MV_CC_DEVICE_INFO_LIST 结构体中,其中包含设备的数量、设备的唯一标识符、设备的 IP 地址(对于网络设备)、设备的型号和厂商等信息。

  4. 返回设备列表:填充好设备信息后,函数会将设备列表返回给调用者。调用者可以通过遍历设备列表来获取每个设备的详细信息,进而实现对设备的操作。

  5. 错误处理:在获取设备列表的过程中,可能会出现各种异常情况,如设备连接失败、权限不足等。函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

  6. 返回状态码:函数会根据执行情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

总之,MV_CC_EnumDevicesEx() 函数的内部实现旨在根据指定的传输层类型和厂商名称获取系统中对应的设备列表,并将其返回给调用者,以便用户对设备进行操作和控制。

MV_CC_EnumDevicesEx2()


MV_CAMCTRL_API int __stdcall MV_CC_EnumDevicesEx2(IN unsigned int  nTLayerType,  IN OUT MV_CC_DEVICE_INFO_LIST *  pstDevList,  IN const char *  strManufacturerName,  IN MV_SORT_METHOD  enSortMethod)   

枚举设备扩展(可指定排序方式枚举、根据厂商名字过滤),支持枚举对应采集卡上的相机

MV_CC_EnumDevicesEx2() 函数是枚举设备的扩展版本,支持指定排序方式枚举,并可以根据厂商名称进行过滤。其内部实现大致如下:

  1. 传输层类型和厂商名称:函数的第一个参数 nTLayerType 是传输层类型,用于指定要枚举的设备类型,比如 GigE Vision、USB3 Vision 等。第三个参数 strManufacturerName 是要枚举的设备的厂商名称。

  2. 设备列表排序:函数通过第四个参数 enSortMethod 可以指定枚举设备时的排序方式,例如按照设备 ID、设备型号等进行排序。根据指定的排序方法,函数会对获取到的设备列表进行排序处理。

  3. 获取设备列表:函数会根据传入的传输层类型和厂商名称,在系统中查找相应类型和厂商的设备。它可能会调用操作系统的设备管理接口,或者调用厂商提供的 SDK 函数来获取设备列表。

  4. 填充设备信息:找到的设备信息会被填充到 MV_CC_DEVICE_INFO_LIST 结构体中,其中包含设备的数量、设备的唯一标识符、设备的 IP 地址(对于网络设备)、设备的型号和厂商等信息。

  5. 返回设备列表:填充好设备信息后,函数会将设备列表返回给调用者。调用者可以通过遍历设备列表来获取每个设备的详细信息,进而实现对设备的操作。

  6. 错误处理:在获取设备列表的过程中,可能会出现各种异常情况,如设备连接失败、权限不足等。函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

  7. 返回状态码:函数会根据执行情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

综上所述,MV_CC_EnumDevicesEx2() 函数是枚举设备的扩展版本,可以根据传输层类型、厂商名称和排序方法获取系统中对应的设备列表,并将其返回给调用者,以便用户对设备进行操作和控制。

MV_CC_IsDeviceAccessible()


MV_CAMCTRL_API bool __stdcall MV_CC_IsDeviceAccessible(IN MV_CC_DEVICE_INFO *  pstDevInfo,  IN unsigned int  nAccessMode)   

设备是否可达

MV_CC_IsDeviceAccessible() 函数用于判断指定的设备是否可达,即是否可以正常访问和控制。其内部实现大致如下:

  1. 参数说明

    • pstDevInfo:表示要判断的设备信息,包括设备的唯一标识符、设备的 IP 地址(对于网络设备)、设备的型号和厂商等信息。
    • nAccessMode:表示设备的访问模式,通常有读取、写入、读写等模式,用于指定要对设备进行的操作。
  2. 设备可达性检查

    • 函数会根据传入的设备信息,尝试连接设备并进行通讯,以验证设备是否可达。
    • 对于网络设备,函数会尝试通过网络协议(如UDP、TCP等)与设备建立连接,并发送测试指令或请求数据来确认设备的可达性。
    • 对于本地设备,函数会尝试通过本地接口或系统调用与设备进行通讯,以验证设备是否可达和操作是否受限。
  3. 返回值说明

    • 如果设备可达且访问模式合法,则函数返回 true,表示设备可正常访问。
    • 如果设备不可达或者访问模式不合法,则函数返回 false,表示无法访问设备。
  4. 错误处理

    • 在连接和通讯的过程中,可能会出现各种异常情况,如设备未连接、网络超时、权限不足等。
    • 函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。
  5. 返回状态码

    • 函数会根据执行情况返回相应的状态码,以便用户根据状态码进行错误处理或进一步调试。

综上所述,MV_CC_IsDeviceAccessible() 函数用于判断指定设备是否可达,并返回相应的状态以供调用者进一步处理。

MV_CC_CreateHandle()

MV_CAMCTRL_API int __stdcall MV_CC_CreateHandle  ( IN OUT void **  handle,  IN const MV_CC_DEVICE_INFO *  pstDevInfo) 

创建设备句柄

MV_CC_CreateHandle() 函数用于创建一个设备句柄,该句柄用于后续对相机设备进行控制、设置参数以及获取图像等操作。函数的内部实现大致如下:

  1. 参数说明

    • handle:是一个指向指针的指针,用于存储创建的设备句柄。
    • pstDevInfo:是一个指向 MV_CC_DEVICE_INFO 结构体的指针,包含有关设备的信息,如设备的唯一标识符、型号、厂商等。
  2. 设备句柄的创建

    • 函数根据传入的设备信息,以及设备所使用的通信协议和驱动程序等信息,创建一个与设备通信的句柄。
    • 在创建过程中,可能会进行初始化操作,如分配内存空间、建立通信连接等。
  3. 句柄的返回

    • 函数通过参数 handle 返回创建的设备句柄,以便用户后续使用该句柄对设备进行操作。
  4. 返回值说明

    • 如果句柄创建成功,则返回相应的成功状态码。
    • 如果创建失败,则返回相应的错误码,表示无法创建设备句柄。
  5. 错误处理

    • 在创建句柄的过程中,可能会出现各种异常情况,如设备不存在、通信失败、权限不足等。
    • 函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

综上所述,MV_CC_CreateHandle() 函数用于创建一个与设备通信的句柄,并将句柄通过参数返回,以便用户后续对设备进行控制和操作。

MV_CC_CreateHandleWithoutLog()

MV_CAMCTRL_API int __stdcall MV_CC_CreateHandleWithoutLog  ( IN OUT void **  handle,  IN const MV_CC_DEVICE_INFO *  pstDevInfo) 

创建设备句柄,不生成日志

MV_CC_CreateHandleWithoutLog() 函数与 MV_CC_CreateHandle() 函数类似,用于创建一个设备句柄,但不会生成日志信息。函数的内部实现大致如下:

  1. 参数说明

    • handle:是一个指向指针的指针,用于存储创建的设备句柄。
    • pstDevInfo:是一个指向 MV_CC_DEVICE_INFO 结构体的指针,包含有关设备的信息,如设备的唯一标识符、型号、厂商等。
  2. 设备句柄的创建

    • 函数根据传入的设备信息,以及设备所使用的通信协议和驱动程序等信息,创建一个与设备通信的句柄。
    • MV_CC_CreateHandle() 函数类似,但不会在创建过程中生成日志信息。
  3. 句柄的返回

    • 函数通过参数 handle 返回创建的设备句柄,以便用户后续使用该句柄对设备进行操作。
  4. 返回值说明

    • 如果句柄创建成功,则返回相应的成功状态码。
    • 如果创建失败,则返回相应的错误码,表示无法创建设备句柄。
  5. 错误处理

    • 在创建句柄的过程中,可能会出现各种异常情况,如设备不存在、通信失败、权限不足等。
    • 函数会对这些异常情况进行处理,并通过返回值或错误码通知调用者。

MV_CC_IsDeviceConnected()

MV_CAMCTRL_API bool __stdcall MV_CC_IsDeviceConnected  ( IN void *  handle ) 

判断设备是否处于连接状态

MV_CC_IsDeviceConnected() 函数用于判断设备是否处于连接状态。其内部实现大致如下:

  1. 参数说明

    • handle:是一个设备句柄,用于指定要检查连接状态的设备。
  2. 连接状态检查

    • 函数通过设备句柄 handle,与相应的设备通信,查询设备的连接状态。
    • 可能的实现方式包括向设备发送特定的控制命令,或者通过设备驱动程序中的API查询设备的连接状态。
  3. 返回值说明

    • 如果设备处于连接状态,则返回 true
    • 如果设备未连接或连接状态异常,则返回 false
  4. 错误处理

    • 如果设备句柄无效或设备通信异常,函数可能返回连接状态未知或错误信息。
  5. 注意事项

    • 在调用该函数之前,通常需要确保设备句柄有效,并且已经通过其他方式正确初始化和连接了设备。

总之,MV_CC_IsDeviceConnected() 函数内部会通过设备句柄进行通信,以查询设备的连接状态,并返回相应的结果。

MV_CC_OpenDevice()

MV_CAMCTRL_API int __stdcall MV_CC_OpenDevice  ( IN void *  handle,  IN unsigned int  nAccessMode,IN unsigned short  nSwitchoverKey) 

打开设备

MV_CC_OpenDevice() 函数用于打开设备以进行数据采集或控制操作。其内部实现大致如下:

  1. 参数说明

    • handle:设备句柄,用于指定要打开的设备。
    • nAccessMode:访问模式,指定对设备的访问权限,如只读、读写等。
    • nSwitchoverKey:切换键,用于在设备支持多种模式时进行模式切换。
  2. 设备打开操作

    • 函数通过设备句柄 handle,向相应的设备发送命令,请求打开设备。
    • 在设备打开成功后,可以进行数据采集、参数设置等操作。
  3. 访问模式

    • 根据参数 nAccessMode 指定的访问模式,可能会对设备的访问权限进行限制,如只读模式可能只允许读取设备参数而不允许修改。
  4. 切换键

    • 如果设备支持多种模式(如不同采集模式、配置文件等),则可以使用切换键 nSwitchoverKey 进行模式切换。
  5. 返回值说明

    • 如果设备成功打开,则返回相应的成功代码。
    • 如果设备打开失败,则返回相应的错误代码,表示打开操作未能成功。
  6. 错误处理

    • 函数内部会处理打开设备过程中可能出现的各种错误情况,如设备已被占用、设备连接异常等,并返回相应的错误码。

总之,MV_CC_OpenDevice() 函数内部会通过设备句柄向设备发送命令,请求打开设备,并根据操作结果返回相应的成功或错误代码。

MV_CC_GetAllMatchInfo()

MV_CAMCTRL_API int __stdcall MV_CC_GetAllMatchInfo  ( IN void *  handle,  IN OUT MV_ALL_MATCH_INFO *  pstInfo) 

获取各种类型的信息

MV_CC_GetAllMatchInfo() 函数用于获取设备的各种类型信息,其内部实现大致如下:

  1. 参数说明

    • handle:设备句柄,用于指定要获取信息的设备。
    • pstInfo:输出参数,用于接收获取到的各种类型信息。
  2. 信息获取操作

    • 函数通过设备句柄 handle,向相应的设备发送命令,请求获取各种类型的信息。
    • 可能获取的信息包括设备的基本信息、配置信息、状态信息等。
  3. 信息存储

    • 获取到的各种类型信息会被存储在 pstInfo 参数所指向的内存区域中。
  4. 返回值说明

    • 如果获取信息成功,则返回相应的成功代码,并将获取到的信息存储在 pstInfo 中。
    • 如果获取信息失败,则返回相应的错误代码,表示获取操作未能成功。
  5. 错误处理

    • 函数内部会处理获取信息过程中可能出现的各种错误情况,如设备连接异常、获取信息超时等,并返回相应的错误码。

总之,MV_CC_GetAllMatchInfo() 函数内部会通过设备句柄向设备发送命令,请求获取各种类型的信息,并将获取到的信息存储在指定的内存区域中。

MV_CC_GetDeviceInfo()

MV_CAMCTRL_API int __stdcall MV_CC_GetDeviceInfo  ( IN void *  handle,  IN OUT MV_CC_DEVICE_INFO *  pstDevInfo) 

获取设备信息,取流之前调用

MV_CC_GetDeviceInfo() 函数用于获取设备信息,其内部实现大致如下:

  1. 参数说明

    • handle:设备句柄,用于指定要获取信息的设备。
    • pstDevInfo:输出参数,用于接收获取到的设备信息。
  2. 信息获取操作

    • 函数通过设备句柄 handle,向相应的设备发送命令,请求获取设备的信息。
    • 可能获取的信息包括设备的型号、序列号、厂商信息、固件版本等。
  3. 信息存储

    • 获取到的设备信息会被存储在 pstDevInfo 参数所指向的内存区域中。
  4. 返回值说明

    • 如果获取设备信息成功,则返回相应的成功代码,并将获取到的设备信息存储在 pstDevInfo 中。
    • 如果获取设备信息失败,则返回相应的错误代码,表示获取操作未能成功。
  5. 错误处理

    • 函数内部会处理获取信息过程中可能出现的各种错误情况,如设备连接异常、获取信息超时等,并返回相应的错误码。

总之,MV_CC_GetDeviceInfo() 函数内部会通过设备句柄向设备发送命令,请求获取设备的信息,并将获取到的信息存储在指定的内存区域中

MV_CC_CloseDevice()

MV_CAMCTRL_API int __stdcall MV_CC_CloseDevice  ( IN void *  handle ) 

关闭设备

MV_CC_CloseDevice() 函数用于关闭设备连接。其内部实现大致如下:

  1. 参数说明

    • handle:设备句柄,用于指定要关闭连接的设备。
  2. 关闭设备连接操作

    • 函数内部根据提供的设备句柄 handle,执行关闭设备连接的操作。
    • 这可能涉及释放相关资源、关闭网络连接或其他与设备连接相关的操作。
  3. 返回值说明

    • 如果成功关闭设备连接,则返回相应的成功代码。
    • 如果关闭设备连接失败,则返回相应的错误代码,表示关闭操作未能成功。
  4. 错误处理

    • 函数内部会处理关闭设备连接过程中可能出现的各种错误情况,如设备连接已经关闭、连接异常等,并返回相应的错误码。

总之,MV_CC_CloseDevice() 函数内部会根据提供的设备句柄执行关闭设备连接的操作,并根据操作结果返回相应的成功或错误代码

MV_CC_DestroyHandle()

MV_CAMCTRL_API int __stdcall MV_CC_DestroyHandle  ( IN void *  handle ) 

销毁设备句柄

MV_CC_DestroyHandle() 函数用于销毁设备句柄。其内部实现大致如下:

  1. 参数说明

    • handle:要销毁的设备句柄。
  2. 释放资源操作

    • 函数内部根据提供的设备句柄 handle,执行释放相关资源的操作。
    • 这可能包括释放设备句柄所占用的内存空间、关闭相关连接、清理临时数据等。
  3. 返回值说明

    • 如果成功销毁设备句柄及相关资源,则返回相应的成功代码。
    • 如果销毁设备句柄失败,则返回相应的错误代码,表示销毁操作未能成功。
  4. 错误处理

    • 函数内部会处理销毁设备句柄过程中可能出现的各种错误情况,如无效的设备句柄、资源释放失败等,并返回相应的错误码。

总之,MV_CC_DestroyHandle() 函数内部会根据提供的设备句柄执行释放相关资源的操作,并根据操作结果返回相应的成功或错误代码。

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

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

相关文章

Qt-互斥量-临界区-QMutex-QMutexLocker-QReadWriteLock

文章目录 1.QMutex2.QMutexLocker3.QReadWriteLock 在Qt中,互斥量(Mutex)是用于同步多线程访问共享资源的一种机制。临界区(Critical Section)是指一段必须由单个线程执行的代码区域,防止多个线程同时执行这…

Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询

1概况 本文展示如何使用 Flink CDC Iceberg Doris 构建实时湖仓一体的联邦查询分析,Doris 1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。 2系统架构 我们整…

【Spring连载】使用Spring Data访问Redis(三)----连接模式

【Spring连载】使用Spring Data访问Redis(三)----连接模式Connection Modes 一、Redis Standalone二、向Master写入,从Replica读取三、Redis Sentinel四、Redis Cluster Redis可以在各种设置中运行。每种操作模式都需要特定的配置&#xff0c…

Vue打包Webpack源码及物理路径泄漏问题解决

修复前: 找到vue.config.js文件,在其中增加配置 module.exports {productionSourceMap: false,// webpack 配置configureWebpack: {devtool: false,}}其中打包的物理路径泄露我这边试了好多次,发现只有打包的时候NODE_ENVproduction 才能保…

Vue中的计算属性和侦听器(监视器)

一、computed计算属性 1.概念 基于现有的数据,计算出来的新属性。 依赖的数据变化,自动重新计算。 2.语法 声明在 computed 配置项中,一个计算属性对应一个函数 使用起来和普通属性一样使用 {{ 计算属性名}} 3.注意 computed配置项和da…

【网络】 WireShark实现TCP三次握手和四次挥手

目录 一、WireShark介绍 二、什么是TCP 三、TCP三次握手 四、TCP四次挥手 一、WireShark介绍 WireShark是一个开源的网络分析工具,用于捕获和分析网络数据包。它可以在多个操作系统上运行,包括Windows、Mac OS和Linux。 使用WireShark,…

Faster-Whisper 实时识别电脑语音转文本

Faster-Whisper 实时识别电脑语音转文本 前言项目搭建环境安装Faster-Whisper下载模型编写测试代码运行测试代码实时转写脚本 参考 前言 以前做的智能对话软件接的Baidu API,想换成本地的,就搭一套Faster-Whisper吧。 下面是B站视频实时转写的截图 项…

版本管理git及其命令介绍-附带详细操作

前言 在版本管理时代之前,人们写软件的方式如下图1所示 图1 无版本管理的代码 其坏处就是软件版本随着时间越来越多,每个版本修改了什么内容,修改了哪些文件,如果没有详细记录也不知道。这样久会导致如果我们想回退到某个版本内…

MCU方案选型和进口替代,点击查看~

一、MCU简介 MCU(微控制单元)俗称单片机,可被认为是CPU的缩减版本,把CPU的频率与规格进行缩减处理,并将RAM、ROM、时钟、A/D转换、定时/计数器、UART 、DMA等电路单元,甚至包括USB接口、LCD驱动电路都整合…

缓存框架jetcache

在实际应用中,并不是单一的使用本地缓存或者redis,更多是组合使用来满足不同的业务场景。 jetcache组件实现了优雅的组合本地缓存和远程缓存。 支持多种缓存类型:本地缓存、分布式缓存、多级缓存。 官网地址:https://github.com…

《向量数据库指南》——Milvus Cloud丝滑入库是影响开发体验的第一步

除了查询之外,“插入”应该是使用最多的一个数据库操作,所有后续的工作也是建立在数据成功插入的基础上。丝滑的入库体验,是影响开发体验的第一步,也是至关重要的一步。 Milvus Cloud 社区对于“插入”的讨论,主要集中在数据插入的实践经验上: “插入的速度怎么优…

各版本的Qt Creator的下载地址

2024年2月3日,周六上午 Index of /official_releases/qtcreatorhttps://download.qt.io/official_releases/qtcreator/ 如果想下载测试中的最新版Qt Creator的快照可以去这个地址 Index of /snapshots/qtcreatorhttps://download.qt.io/snapshots/qtcreator/

MySQL中的视图与索引

目录 一、视图 1.1 什么是视图 1.2 为什么要使用视图 1.3 视图的作用与特点 1.4 视图的创建 1.5 视图的使用规则 1.6 视图的修改与删除 修改: 删除: 二、索引 2.1 什么是索引 索引的原理: 2.2 索引的优缺点 2.2.1 索引的优点&a…

浅谈智慧消防在铁路系统中的应用与发展

摘要:文章从基于物联网技术的“智慧消防”概念入手,探讨了智慧消防物联网技术在铁路工程中的应用,分析了在实际应用过程中存在的部分难点,并提出了新型物联网无线组网、智能传感器技术、图形可视化技术及安全隐患预测与评估的技术…

C# JSON序列化、反序列化

在 C# 中,你可以使用 Newtonsoft.Json 库(也称为 Json.NET)来进行 JSON 的序列化和反序列化。下面是一个简单的示例: using Newtonsoft.Json; using System;public class Person {public string Name { get; set; }public int Ag…

MongoDB的索引与索引字段的顺序

想提高数据库的查询效率需要建立索引,用索引查询。使用索引查询和不使用索引查询提升的效率和数据库表的记录条数和调用此时有关系。若记录足够大,用索引查询和不用索引查询相差一千倍以上很正常。 MongoDB默认为主键字段_id创建唯一索引,这个…

寒假作业2月2号

第一章 命名空间 一.选择题 1、编写C程序一般需经过的几个步骤依次是(C ) A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 2、所谓数据封装就是将一组数据和与这组数据有关…

python 爬虫篇(1)---->re正则的详细讲解(附带演示代码)

re正则的详细讲解 文章目录 re正则的详细讲解前言4.re正则表达式(1)e正则的匹配模式(2) re.search 的使用(3)re.findall()的使用(4)re.sub()的使用结语前言 大家好,今天我将开始更新python爬虫篇,陆续更新几种解析数据的方法,例如 re正则表达式beautifulsoup xpath lxml 等等,…

情人节送什么好?情人节送什么数码礼物?这总有你喜欢的那款!

​情人节礼物选择繁多,但许多人钟爱数码产品。以下是我为您精心挑选的几款实用且深受男女生喜爱的数码产品。它们不仅功能出色,还能为您的节日增添一份特别的惊喜。 一、南卡OE MIX蓝牙耳机 南卡OE MIX无疑是在情人节礼物预算千元以内的首选。它配备了重…

代码随想录算法训练营第二十四天|77. 组合

77. 组合 回溯法&#xff1a; public class Solution {List<IList<int>> resultnew List<IList<int>>();List<int> pathnew List<int>();public IList<IList<int>> Combine(int n, int k) {backtracking(n,k,1);return resu…