根据提供的错误信息,错误码 46 表示'无效的通道号'。这可能是因为你传递给NET_DVR_StartRemoteConfig函数的通道号参数不正确。

请确保你传递的通道号是有效的,且符合海康设备的配置。

以下是一个调用海康查询的示例代码,你可以参考并检查通道号的设置:

import sys
from HCNetSDK import HCNetSDK

# 初始化海康SDK
hcnetsdk = HCNetSDK()
hcnetsdk.NET_DVR_Init()

# 登录设备
device_info = HCNetSDK.NET_DVR_DEVICEINFO_V30()
device_handle = hcnetsdk.NET_DVR_Login_V30('192.168.1.100', 8000, 'admin', 'password', device_info)

# 设置查询参数
search_cond = HCNetSDK.NET_DVR_XML_CONFIG_INPUT()
search_cond.dwSize = sys.getsizeof(search_cond)
search_cond.lpRequestUrl = '/ISAPI/Security/userCheck/searchUserInfo'
search_cond.lpInBuffer = ''  # 设置查询条件
search_cond.dwInSize = sys.getsizeof(search_cond.lpInBuffer)
search_cond.lpStatusBuffer = None
search_cond.dwStatusSize = 0

# 开始远程配置
remote_config_handle = hcnetsdk.NET_DVR_StartRemoteConfig(device_handle, HCNetSDK.NET_DVR_GET_XML_CONFIG, search_cond)

if remote_config_handle == -1:
    error_code = hcnetsdk.NET_DVR_GetLastError()
    print('NET_DVR_StartRemoteConfig failed, error code: {}'.format(error_code))
    hcnetsdk.NET_DVR_Logout(device_handle)
    hcnetsdk.NET_DVR_Cleanup()
    sys.exit()

# 进行查询操作...

# 关闭远程配置
if not hcnetsdk.NET_DVR_StopRemoteConfig(remote_config_handle):
    error_code = hcnetsdk.NET_DVR_GetLastError()
    print('NET_DVR_StopRemoteConfig failed, error code: {}'.format(error_code))

# 注销设备
if not hcnetsdk.NET_DVR_Logout(device_handle):
    error_code = hcnetsdk.NET_DVR_GetLastError()
    print('NET_DVR_Logout failed, error code: {}'.format(error_code))

# 释放海康SDK资源
if not hcnetsdk.NET_DVR_Cleanup():
    error_code = hcnetsdk.NET_DVR_GetLastError()
    print('NET_DVR_Cleanup failed, error code: {}'.format(error_code))

请根据你的具体情况进行适当的修改和调试,确保传递给NET_DVR_StartRemoteConfig函数的通道号参数正确无误。如果问题仍然存在,请参考海康SDK文档以获取更多帮助。


原文地址: https://www.cveoy.top/t/topic/qlu1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录