news 2026/7/5 4:15:14

海康SDK控制海康摄像仪报警输入节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
海康SDK控制海康摄像仪报警输入节点

一、查看摄像仪是否支持报警输出节点控制

1.1登录海康摄像仪平台界面-->报警配置

-->报警输出

--报警状态

说明该摄像仪支持节点控制

二、下载海康sdk(官网地址)

2.1获取设备报警输出。

主要用到NET DVR GetAlarmOut V30方法,返回的是bool值。

2.2代码示例:

public static void getAlarmOutStatus(int iUserID, int alarmOutIndex, HCNetSDK.NET_DVR_ALARMOUTCFG_V30 cfg) { HCNetSDK.NET_DVR_ALARMOUTSTATUS status = new HCNetSDK.NET_DVR_ALARMOUTSTATUS(); status.write(); boolean ret = hCNetSDK.NET_DVR_GetAlarmOut(iUserID, status); if (!ret) { System.out.println("获取报警输出状态失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); return; } status.read(); byte rawStatus = status.Output[alarmOutIndex]; System.out.println("报警输出口[" + alarmOutIndex + "] 原始状态:" + rawStatus); if (openAlarmOut(iUserID, alarmOutIndex)) { try { Thread.sleep(5 * 1000L); } catch (InterruptedException ignored) {} closeAlarmOut(iUserID, alarmOutIndex); } // ====== 结合常开 / 常闭判断“真实逻辑状态” ====== //if (cfg.byNormalSatus == 0) { // // 常开(NO) // if (rawStatus == 1) { // System.out.println("报警输出:已触发(NO 闭合)"); // closeAlarmOut(iUserID, alarmOutIndex); // } else { // System.out.println("报警输出:未触发(NO 断开)"); // openAlarmOut(iUserID, alarmOutIndex); // } //} else { // // 常闭(NC) // if (rawStatus == 0) { // System.out.println("报警输出:已触发(NC 断开)"); // openAlarmOut(iUserID, alarmOutIndex); // } else { // System.out.println("报警输出:未触发(NC 闭合)"); // } //} }

2.2调用该方法,首先要登录

public static void main(String[] args) throws IOException, InterruptedException { if (hCNetSDK == null) { System.out.println("init sdk"); if (!createSDKInstance()) { System.out.println("Load SDK fail"); return; } } //linux系统建议调用以下接口加载组件库 if (osSelect.isLinux()) { HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256); HCNetSDK.BYTE_ARRAY ptrByteArray2 = new HCNetSDK.BYTE_ARRAY(256); //这里是库的绝对路径,请根据实际情况修改,注意改路径必须有访问权限 String strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1"; String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1"; System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length()); ptrByteArray1.write(); hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_LIBEAY_PATH, ptrByteArray1.getPointer()); System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length()); ptrByteArray2.write(); hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SSLEAY_PATH, ptrByteArray2.getPointer()); String strPathCom = System.getProperty("user.dir") + "/lib/"; HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH(); System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length()); struComPath.write(); hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SDK_PATH, struComPath.getPointer()); } //SDK初始化,一个程序进程只需要调用一次 hCNetSDK.NET_DVR_Init(); if (fExceptionCallBack == null) { fExceptionCallBack = new FExceptionCallBack_Imp(); } Pointer pUser = null; if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, pUser)) { return; } System.out.println("设置异常消息回调成功"); //启用SDK写日志 hCNetSDK.NET_DVR_SetLogToFile(3, "./sdkLog", false); //登录设备,每一台设备只需要登录一次 lUserID = TestDemo.loginDevice("192.168.10.61", (short) 8000, "admin", "htdq0557"); for (boolean exit = false; !exit; ) { System.out.println("请输入您想要执行的demo实例! (退出请输入yes)"); Scanner input = new Scanner(System.in); String str = input.next(); // 转换为标准输入 str = str.toLowerCase(); if (str.equals("yes")) { // 退出程序 exit = true; break; } switch (str) { case "1": { int alarmOutIndex = 0; // 第 1 路报警输出 HCNetSDK.NET_DVR_ALARMOUTCFG_V30 cfg = new HCNetSDK.NET_DVR_ALARMOUTCFG_V30(); cfg.dwSize = cfg.size(); cfg.write(); //日志查找 System.out.println("\n报警状态输出信息"); SdkSysCfg.getAlarmOutStatus(lUserID, alarmOutIndex, cfg); break; } default: { System.out.println("\n未知的指令操作!请重新输入!\n"); } } } Thread.sleep(2000); //程序退出的时候调用注销登录接口,每一台设备分别调用一次 if (hCNetSDK.NET_DVR_Logout(lUserID)) { System.out.println("注销成功"); } //释放SDK资源,程序退出时调用,只需要调用一次 hCNetSDK.NET_DVR_Cleanup(); return; }

三、调用完成

调用完成之后就可以根据业务需求去控制节点输出。发送脉冲信号

san NET_DVR_GetAlarmOut_V30
NET_DVR_GetAlarmOut_V
NET_DVR_GetAlarmOut_V30
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 23:34:39

2020级张niuyue大学经验总结

个人简介:学弟学妹们好!很荣幸能给你们分享经验,我是信管2020级的毕业生,姓名张niuyue,中共党员。在分享经验前,我先简单的做一个履历介绍,大一有一个校级二等奖学金、大二有一个蓝桥杯省级二等…

作者头像 李华
网站建设 2026/7/1 16:36:36

谢juncen经验分享

学弟学妹们你们好,我是信管2002班的谢juncen,去年考上了我们本校的管理科学与工程专业的研究生,我的初试成绩是326分,政治68,英语61,数学86,专业课111。以下是我给学弟学妹们的几点建议&#xf…

作者头像 李华
网站建设 2026/7/1 11:08:45

【光照】[PBR][漫反射]实现方法对比

URP BRDF漫反射方法对比方法名称 数学公式 特点 性能消耗 适用场景Lambert $L_d k_d * max(0, NL)$ 经典模型,能量不守恒 ★☆☆ 移动端低配Half-Lambert $L_d k_d * (0.5*(NL)0.5)^2$ 增强暗部细节 ★★☆ 卡通渲染Disney Diffuse 复杂能量守恒公式 物理准确&…

作者头像 李华
网站建设 2026/7/3 6:15:39

社团招新海报制作:核心要素与设计逻辑

社团招新海报是社团与新生建立连接的第一媒介,其设计质量直接影响新生对社团的初始认知与参与意愿。不同于商业海报的品牌曝光诉求,社团招新海报需在短时间内完成“吸引注意力—传递核心价值—引导行动”的闭环,因此需围绕“目标定位、视觉层…

作者头像 李华
网站建设 2026/7/3 7:30:16

H3C防火墙Web登录实验

H3C防火墙Web登录实验 文章目录H3C防火墙Web登录实验一、背景二、实验拓扑图三、实验环境规划四、实验需求五、实验步骤第一步:在本机PC上创建微软环回适配器第二步:修改本机环回适配器的IP地址第三步:配置FW1,给FW1设置IP地址第四…

作者头像 李华