海康威视-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();
}
public String openDz(int tdh) {
String ret="起竿失败!";
try {
HCNetSDK.NET_DVR_BARRIERGATE_CFG cfg = new HCNetSDK.NET_DVR_BARRIERGATE_CFG();
cfg.dwChannel=tdh;
cfg.dwSize=cfg.size();
cfg.byLaneNo=1;
cfg.byBarrierGateCtrl=1;
cfg.byRes[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();
}
System.out.println("起竿结果--"+a+"-- 提示内容:"+ret);
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
public String closeDz(int tdh) {
String ret="落竿失败!";
try {
HCNetSDK.NET_DVR_BARRIERGATE_CFG cfg = new HCNetSDK.NET_DVR_BARRIERGATE_CFG();
cfg.dwChannel=tdh;
cfg.dwSize=cfg.size();
cfg.byLaneNo=1;
cfg.byBarrierGateCtrl=0;
cfg.byRes[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();
}
System.out.println("关闸结果--"+a+"-- 提示内容:"+ret);
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
注意: 主要是调用SDK 动态库dll 底层的 HCNetSDK.INSTANCE.NET_DVR_RemoteControl