public static class NET_DVR_XML_CONFIG_INPUT extends Structure {
public int dwSize;
public Pointer lpRequestUrl;
public int dwRequestUrlLen;
public Pointer lpInBuffer;
public int dwInBufferSize;
public int dwRecvTimeOut;
public byte[] byRes = new byte[32];
public static class NET_DVR_XML_CONFIG_OUTPUT extends Structure {
public int dwSize;
public Pointer lpOutBuffer;
public int dwOutBufferSize;
public int dwReturnedXMLSize;
public Pointer lpStatusBuffer;
public int dwStatusSize;
public byte[] byRes = new byte[32];
boolean NET_DVR_STDXMLConfig(NativeLong lUserID, NET_DVR_XML_CONFIG_INPUT lpInputParam,
NET_DVR_XML_CONFIG_OUTPUT lpOutputParam);
调用,注意 strURL 和 strInbuffer
public static void stdXMLConfigTest1() {
int ISAPI_DATA_LEN = 1024 * 1024;
int ISAPI_STATUS_LEN = 4 * 4096;
HCNetSDK.NET_DVR_XML_CONFIG_INPUT struXMLInput = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
struXMLInput.read();
struXMLInput.dwSize = struXMLInput.size();
// URL
String strURL = "GET /ISAPI/System/deviceInfo";
int iURLlen = strURL.length();
HCNetSDK.BYTE_ARRAY ptrUrl = new HCNetSDK.BYTE_ARRAY(iURLlen);
System.arraycopy(strURL.getBytes(), 0, ptrUrl.byValue, 0, strURL.length());
ptrUrl.write();
struXMLInput.lpRequestUrl = ptrUrl.getPointer();
struXMLInput.dwRequestUrlLen = iURLlen;
// 输入xml/json
String strInbuffer = "";
int iInBufLen = strInbuffer.length();
if (iInBufLen == 0) {
struXMLInput.lpInBuffer = null;
struXMLInput.dwInBufferSize = 0;
struXMLInput.write();
} else {
HCNetSDK.BYTE_ARRAY ptrInBuffer = new HCNetSDK.BYTE_ARRAY(iInBufLen);
ptrInBuffer.read();
ptrInBuffer.byValue = strInbuffer.getBytes();
ptrInBuffer.write();
struXMLInput.lpInBuffer = ptrInBuffer.getPointer();
struXMLInput.dwInBufferSize = iInBufLen;
struXMLInput.write();
HCNetSDK.BYTE_ARRAY ptrStatusByte = new HCNetSDK.BYTE_ARRAY(ISAPI_STATUS_LEN);
ptrStatusByte.read();
HCNetSDK.BYTE_ARRAY ptrOutByte = new HCNetSDK.BYTE_ARRAY(ISAPI_DATA_LEN);
ptrOutByte.read();
HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struXMLOutput = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
struXMLOutput.read();
struXMLOutput.dwSize = struXMLOutput.size();
struXMLOutput.lpOutBuffer = ptrOutByte.getPointer();
struXMLOutput.dwOutBufferSize = ptrOutByte.size();
struXMLOutput.lpStatusBuffer = ptrStatusByte.getPointer();
struXMLOutput.dwStatusSize = ptrStatusByte.size();
struXMLOutput.write();
if (!hCNetSDK.NET_DVR_STDXMLConfig(lUserID, struXMLInput, struXMLOutput)) {
int iErr = hCNetSDK.NET_DVR_GetLastError();
System.out.println("NET_DVR_STDXMLConfig失败,错误号:" + iErr);
return;
} else {
struXMLOutput.read();
ptrOutByte.read();
ptrStatusByte.read();
String strOutXML = new String(ptrOutByte.byValue).trim();
System.out.println(strOutXML);
String strStatus = new String(ptrStatusByte.byValue).trim();
System.out.println(strStatus);
public void setThermal(Map<String, Object> params){
Object ids = params.get("ids"); //设备id集
if (ComnUtil.isEmpty(ids)){
throw new ComnException(ComnStatusCode.ERRO
Net_Dvr_中文-注意事项
首先,感谢您选用我公司最新产品。
在使用本监控卡之前,请详细阅读本说明书所涉及的相关事项,熟悉硬件、软件各部分的功能后,方能使用,以确保该系统为您发挥最佳功能。否则一切后果自负。
本说明书将向您详细阐述全实时“视频监控系统”的安装、操作、设置和网络使用方法。
本系统工作主机供电电压为220V±10%,如果在电压不稳或者干扰大的场合,请您选用优质稳压电源(即UPS),保证系统正常良好的工作状态。
本系统在安装、拆卸视频采集卡时,必须将主机处于完全断电状态,否则主板上残留的电压将损坏采集卡。
本系统可切换D1与CIF分辨率,切换分辨率设置后,在主界面必须关闭通道视频,重新打开通道视频,设置才能生效。
本系统主机工作于常温(-10±3℃~55±2℃)、清洁的环境,并且保持良好的通风状态。
本系统软件属于我公司专有产品,未经同意,请勿复制,否则影响机器稳定概不负责,并将通过有关法律渠道追究盗版责任。
/全局错误码 begin***/
public static final int NET_DVR_NOERROR = 0; //没有错误
public static final int NET_DVR_PASSWORD_ERROR = 1; //用户名密码错误
public static final int NET_DVR_NOENOUGHPRI = 2;//权限不足
public static final int NET_DVR_NOINIT = 3;//没有初始化
1. 安装海康 SDK。在海康官方网站上下载海康 SDK,解压后进行安装。
2. 创建 .NET Core 项目。在 Visual Studio 中创建 .NET Core 项目,选中 ASP.NET Core Web 应用程序等适合的项目模板。
3. 引用海康 SDK。在项目中右键点击 “依赖项” -> “添加引用” -> “浏览”,在弹出的文件对话框中选择海康 SDK 相应的库文件,加入到项目中。
4. 配置海康 SDK。在项目的配置文件中,添加海康 SDK 的配置项,包括海康 SDK 的相关路径、端口号、设备 IP 等信息。
5. 编写代码。在项目中添加适当的代码,通过海康 SDK 实现对摄像头、录像机等设备的调用和操作。
总体上来说,使用 .NET Core 引用海康 SDK 不会比使用其他框架有太大的差别,关键在于要注意好配置和代码的编写,保证与海康 SDK 的集成和调用能够正常进行。