今天用JAVA对接海康设备,但是注册一直失败,ip、端口、用户名、密码都是正确的,一直百思不得其解,后来一番查询与排错,终于找到了原因,是因为没有初始化设备
初始化设备的代码(红框里的部分):
if (!hCNetSDK.NET_DVR_Init()) {
System.out.println(MachineName + ":初始化失败");
return null;
}
要初始化后才能注册,不然肯定注册失败,又上了一课
补充完整代码:
//获取注册用户信息
public static NativeLong getUser(String sDeviceIP, int sPort
, String sDeviceUserName, String sDevicePassWord) {
// 是否初始化成功
if (!hCNetSDK.NET_DVR_Init()) {
System.out.println(MachineName + ":初始化失败");
return null;
}
// 注册设备
NativeLong user = new NativeLong(-1);
// 设备信息
NET_DVR_DEVICEINFO_V30 devinfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
// 返回一个用户编号
user = hCNetSDK.NET_DVR_Login_V30(sDeviceIP, sPort,
sDeviceUserName, sDevicePassWord, devinfo);
int Iuid = user.intValue();
if (Iuid < 0) {
int iErr = hCNetSDK.NET_DVR_GetLastError();
System.out.println(MachineName + ":注册失败,错误号:" + iErr);
return null;
}
System.out.println(MachineName + ":注册成功,代号:" + Iuid);
return user;
}