| | |
| | | import com.ard.alarm.camera.domain.ArdCameras; |
| | | import com.ard.alarm.camera.domain.CameraCmd; |
| | | import com.ard.alarm.external.domain.ArdEquipExternal; |
| | | import com.ard.config.MinioClientSingleton; |
| | | import com.ard.utils.minio.MinioUtil; |
| | | import com.ard.utils.other.ByteUtils; |
| | | import com.ard.utils.hiksdk.common.GlobalVariable; |
| | | import com.ard.utils.hiksdk.domain.DeviceInfo; |
| | | import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; |
| | | import com.ard.utils.hiksdk.util.minio.MinioUtils; |
| | | import com.ard.utils.spring.SpringUtils; |
| | | import com.sun.jna.Native; |
| | | import com.sun.jna.Platform; |
| | | import com.sun.jna.Pointer; |
| | |
| | | info.setUsername(camera.getUsername()); |
| | | info.setPassword(camera.getPassword()); |
| | | login(info); |
| | | GlobalVariable.cameraMap.put(camera.getIp(), camera); |
| | | String key = camera.getIp() + ":" + camera.getPort(); |
| | | GlobalVariable.cameraMap.put(key, camera); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化登录相机异常:" + ex.getMessage()); |
| | |
| | | info.setUsername(camera.getUsername()); |
| | | info.setPassword(camera.getPassword()); |
| | | logout(info); |
| | | GlobalVariable.cameraMap.remove(camera.getIp()); |
| | | String key = camera.getIp() + ":" + camera.getPort(); |
| | | GlobalVariable.cameraMap.remove(key); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化登录相机异常:" + ex.getMessage()); |
| | |
| | | info.setUsername(alarmHost.getUsername()); |
| | | info.setPassword(alarmHost.getPassword()); |
| | | login(info); |
| | | String ip = alarmHost.getIp(); |
| | | GlobalVariable.alarmHostMap.put(ip, alarmHost); |
| | | // String key=alarmHost.getIp()+":"+alarmHost.getPort(); |
| | | // GlobalVariable.alarmHostMap.put(key, alarmHost); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化报警主机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 登出所有报警主机 |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/2/3 10:10 |
| | | */ |
| | | public static void logoutAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) |
| | | { |
| | | public static void logoutAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { |
| | | try { |
| | | for (ArdEquipExternal alarmHost : ardEquipExternals) { |
| | | Thread.sleep(100); |
| | |
| | | info.setUsername(alarmHost.getUsername()); |
| | | info.setPassword(alarmHost.getPassword()); |
| | | logout(info); |
| | | String ip = alarmHost.getIp(); |
| | | GlobalVariable.alarmHostMap.remove(ip); |
| | | // String key=alarmHost.getIp()+":"+alarmHost.getPort(); |
| | | // GlobalVariable.alarmHostMap.remove(key); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化登录相机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 登录所有门禁主机 |
| | | * @创建人 刘苏义 |
| | |
| | | info.setUsername(accessControlHost.getUsername()); |
| | | info.setPassword(accessControlHost.getPassword()); |
| | | login(info); |
| | | String ip = accessControlHost.getIp(); |
| | | GlobalVariable.accessHostMap.put(ip, accessControlHost); |
| | | // |
| | | // String key=accessControlHost.getIp()+":"+accessControlHost.getPort(); |
| | | // GlobalVariable.accessHostMap.put(key, accessControlHost); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化报警主机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 登出所有门禁主机 |
| | | * @创建人 刘苏义 |
| | |
| | | info.setUsername(accessControlHost.getUsername()); |
| | | info.setPassword(accessControlHost.getPassword()); |
| | | logout(info); |
| | | String ip = accessControlHost.getIp(); |
| | | GlobalVariable.accessHostMap.remove(ip); |
| | | // String key=accessControlHost.getIp()+":"+accessControlHost.getPort(); |
| | | // GlobalVariable.accessHostMap.remove(key); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化报警主机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | /** |
| | | * @描述 注销登录 |
| | | * @参数 [dvrLogin] |
| | | * @返回值 java.lang.Integer |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/1/17 16:12 |
| | | * @修改人和其它信息 |
| | | */ |
| | | public static boolean loginOut(String cameraId) { |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | | } |
| | | Integer userId = GlobalVariable.loginMap.get(cameraId); |
| | | boolean b = hCNetSDK.NET_DVR_Logout(userId); |
| | | if (b) { |
| | | GlobalVariable.loginMap.remove(cameraId); |
| | | } |
| | | return b; |
| | | } |
| | | |
| | | /** |
| | | * 是否在线 |
| | | * |
| | | * @param cmd |
| | | */ |
| | | public static boolean isOnLine(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | | } |
| | | Integer userId = GlobalVariable.loginMap.get(cameraId); |
| | | boolean isOnLine = hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0); |
| | | return isOnLine; |
| | | } |
| | | |
| | | /** |
| | | * 建立布防上传通道,用于传输数据 |
| | |
| | | lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); |
| | | if (lAlarmHandle == -1) { |
| | | log.error("设备【" + deviceIpPort + "】布防失败,错误码==========》" + hCNetSDK.NET_DVR_GetLastError()); |
| | | // 注销 释放sdk资源 |
| | | logout(lUserID); |
| | | } else { |
| | | log.debug("设备【" + deviceIpPort + "】布防成功"); |
| | | } |
| | |
| | | //设置图片大小 |
| | | ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024); |
| | | // 抓图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中 |
| | | // log.debug("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------"); |
| | | // log.debug("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------"); |
| | | boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a); |
| | | //log.debug("-----------这里开始图片存入内存----------" + is); |
| | | if (is) { |
| | | // log.debug("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError()); |
| | | // log.debug("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError()); |
| | | byte[] array = jpegBuffer.array(); |
| | | //存储到minio |
| | | |
| | |
| | | InputStream input = new ByteArrayInputStream(array); |
| | | String url = ""; |
| | | try { |
| | | boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, ContentType); |
| | | boolean b = MinioUtil.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input,input.available(), ContentType); |
| | | if (b) { |
| | | // url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); |
| | | // url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; |
| | | url = MinioClientSingleton.domainUrl + "/" + cmd.getBucketName() + "/" + cmd.getObjectName(); |
| | | log.debug("上传文件成功!" + url); |
| | | url = MinioUtil.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); |
| | | // log.debug("上传文件成功!" + url); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("上传文件异常:" + ex.getMessage()); |