【海康威视-SDK-远程打开关闭道闸】

海康威视-SDK-远程打开关闭道闸

public int login(String ip){
		boolean result = HCNetSDK.INSTANCE.NET_DVR_Init();
		if (result) {
			HCNetSDK.INSTANCE.NET_DVR_SetConnectTime(2000, 1);
			HCNetSDK.INSTANCE.NET_DVR_SetReconnect(10000, true);
			NET_DVR_DEVICEINFO_V30 lpDeviceInfo = new NET_DVR_DEVICEINFO_V30();
			lUserID = HCNetSDK.INSTANCE.NET_DVR_Login_V30(ip, (short) 8000,
					"your's account", "your's password", lpDeviceInfo);
		}
		return lUserID.intValue();
	}

/**
	 * 起竿
	 * @param tdh 通道号
	 * @return
	 */
	public String openDz(int tdh) {
		String ret="起竿失败!";
		try {
			HCNetSDK.NET_DVR_BARRIERGATE_CFG cfg = new HCNetSDK.NET_DVR_BARRIERGATE_CFG();
			// cfg.read();
			cfg.dwChannel=tdh;  //通道号
			cfg.dwSize=cfg.size(); //结构体大小
			cfg.byLaneNo=1; //道闸号:0-表示无效值(设备需要做有效值判断),1-道闸1
			cfg.byBarrierGateCtrl=1; // 控制参数:0-关闭道闸,1-开启道闸,2-停止道闸,3-锁定道闸
			cfg.byRes[0]=0; //保留,置为0
			//起竿操作
			Pointer name = cfg.getPointer();
			cfg.write();
			// lUserID.intValue() 登录相机成功返回
			boolean a=HCNetSDK.INSTANCE.NET_DVR_RemoteControl(lUserID.intValue(), 3128,  name, cfg.size());
			if(a) {
				ret="起竿成功!";
			}else {
				ret="起竿失败!"+HCNetSDK.INSTANCE.NET_DVR_GetLastError();
			}
			System.out.println("起竿结果--"+a+"-- 提示内容:"+ret);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ret;
	}

	/**
	 * 关闸
	 * @param tdh 通道号
	 * @return
	 */
	public String closeDz(int tdh) {
		String ret="落竿失败!";
		try {
			HCNetSDK.NET_DVR_BARRIERGATE_CFG cfg = new HCNetSDK.NET_DVR_BARRIERGATE_CFG();
			// cfg.read();
			cfg.dwChannel=tdh;  //通道号
			cfg.dwSize=cfg.size(); //结构体大小
			cfg.byLaneNo=1; //道闸号:0-表示无效值(设备需要做有效值判断),1-道闸1
			cfg.byBarrierGateCtrl=0; // 控制参数:0-关闭道闸,1-开启道闸,2-停止道闸,3-锁定道闸
			cfg.byRes[0]=0; //保留,置为0
			//起竿操作
			Pointer name = cfg.getPointer();
			cfg.write();
			boolean a=HCNetSDK.INSTANCE.NET_DVR_RemoteControl(lUserID.intValue(), 3128,  name, cfg.size());
			if(a) {
				ret="落竿成功!";
			}else {
				ret="落竿失败!"+HCNetSDK.INSTANCE.NET_DVR_GetLastError();
				//失败重新布防, 可以不布防
				//new HikVisionService().run();
			}
			System.out.println("关闸结果--"+a+"-- 提示内容:"+ret);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ret;
	}

注意: 主要是调用SDK 动态库dll 底层的 HCNetSDK.INSTANCE.NET_DVR_RemoteControl

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑风尘灬

如果有用,请博主喝杯咖啡叭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值