| | |
| | | |
| | | import com.ard.alarm.camera.domain.ArdCameras; |
| | | import com.ard.alarm.camera.domain.CameraCmd; |
| | | import com.ard.utils.ByteUtils; |
| | | import com.ard.alarm.external.domain.ArdEquipExternal; |
| | | import com.ard.config.MinioClientSingleton; |
| | | 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.sun.jna.Native; |
| | |
| | | import java.io.*; |
| | | import java.nio.ByteBuffer; |
| | | import java.util.*; |
| | | |
| | | import static com.ard.utils.hiksdk.common.GlobalVariable.cameraMap; |
| | | |
| | | |
| | | /** |
| | |
| | | * @创建时间 2023/1/17 16:12 |
| | | * @修改人和其它信息 |
| | | */ |
| | | public static void login(ArdCameras camera) { |
| | | public static void login(DeviceInfo deviceInfo) { |
| | | // 初始化 |
| | | if (!hCNetSDK.NET_DVR_Init()) { |
| | | log.error("SDK初始化失败"); |
| | |
| | | } else { |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); |
| | | } |
| | | String m_sDeviceIP = camera.getIp(); |
| | | String m_sUsername = camera.getUsername(); |
| | | String m_sPassword = camera.getPassword(); |
| | | short m_sPort = camera.getPort().shortValue(); |
| | | String m_sDeviceIP = deviceInfo.getIp(); |
| | | String m_sUsername = deviceInfo.getUsername(); |
| | | String m_sPassword = deviceInfo.getPassword(); |
| | | short m_sPort = deviceInfo.getPort().shortValue(); |
| | | //设置连接时间与重连时间 |
| | | hCNetSDK.NET_DVR_SetConnectTime(2000, 1); |
| | | hCNetSDK.NET_DVR_SetReconnect(100000, true); |
| | |
| | | //是否异步登录:0- 否,1- 是 windowsSDK里是true和false |
| | | m_strLoginInfo.bUseAsynLogin = true; |
| | | //异步登录回调 |
| | | m_strLoginInfo.cbLoginResult = new LoginResultCallBack(camera); |
| | | m_strLoginInfo.cbLoginResult = new LoginResultCallBack(deviceInfo); |
| | | m_strLoginInfo.write(); |
| | | int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); |
| | | if (i < 0) { |
| | |
| | | * @创建时间 2023/2/3 10:10 |
| | | * @修改人和其它信息 |
| | | */ |
| | | |
| | | public static void loginAll(List<ArdCameras> ardCameras) { |
| | | public static void loginAllCamera(List<ArdCameras> ardCameras) { |
| | | try { |
| | | log.debug("加载lib完成!"); |
| | | for (ArdCameras camera : ardCameras) { |
| | | Thread.sleep(100); |
| | | login(camera); |
| | | DeviceInfo info = new DeviceInfo(); |
| | | info.setDeviceId(camera.getId()); |
| | | info.setIp(camera.getIp()); |
| | | info.setPort(camera.getPort()); |
| | | info.setUsername(camera.getUsername()); |
| | | info.setPassword(camera.getPassword()); |
| | | login(info); |
| | | String ip = camera.getIp(); |
| | | cameraMap.put(ip, camera); |
| | | GlobalVariable.cameraMap.put(ip, camera); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化登录相机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 登录所有报警主机 |
| | | * @参数 [] |
| | | * @返回值 void |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/2/3 10:10 |
| | | * @修改人和其它信息 |
| | | */ |
| | | public static void loginAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { |
| | | try { |
| | | for (ArdEquipExternal alarmHost : ardEquipExternals) { |
| | | Thread.sleep(100); |
| | | DeviceInfo info = new DeviceInfo(); |
| | | info.setDeviceId(alarmHost.getId()); |
| | | info.setIp(alarmHost.getIp()); |
| | | info.setPort(alarmHost.getPort()); |
| | | info.setUsername(alarmHost.getUsername()); |
| | | info.setPassword(alarmHost.getPassword()); |
| | | login(info); |
| | | String ip = alarmHost.getIp(); |
| | | GlobalVariable.alarmHostMap.put(ip, alarmHost); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化报警主机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 登录所有门禁主机 |
| | | * @参数 [] |
| | | * @返回值 void |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/2/3 10:10 |
| | | * @修改人和其它信息 |
| | | */ |
| | | public static void loginAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { |
| | | try { |
| | | for (ArdEquipExternal accessControlHost : ardEquipExternals) { |
| | | Thread.sleep(100); |
| | | DeviceInfo info = new DeviceInfo(); |
| | | info.setDeviceId(accessControlHost.getId()); |
| | | info.setIp(accessControlHost.getIp()); |
| | | info.setPort(accessControlHost.getPort()); |
| | | info.setUsername(accessControlHost.getUsername()); |
| | | info.setPassword(accessControlHost.getPassword()); |
| | | login(info); |
| | | String ip = accessControlHost.getIp(); |
| | | GlobalVariable.alarmHostMap.put(ip, accessControlHost); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("初始化报警主机异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | |
| | | * @创建时间 2023/1/17 16:12 |
| | | * @修改人和其它信息 |
| | | */ |
| | | |
| | | public static boolean loginOut(String cameraId) { |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | |
| | | * |
| | | * @param cmd |
| | | */ |
| | | |
| | | public static boolean isOnLine(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | |
| | | * @param lUserID 唯一标识符 |
| | | * @param lAlarmHandle 报警处理器 |
| | | */ |
| | | public static int setupAlarmChan(int lUserID, int lAlarmHandle) { |
| | | public static int setupAlarmChan(String deviceIpPort, int lUserID, int lAlarmHandle) { |
| | | // 根据设备注册生成的lUserID建立布防的上传通道,即数据的上传通道 |
| | | if (lUserID == -1) { |
| | | log.info("请先注册"); |
| | | log.error("请先注册"); |
| | | return lUserID; |
| | | } |
| | | if (lAlarmHandle < 0) { |
| | |
| | | if (fMSFCallBack_V31 == null) { |
| | | fMSFCallBack_V31 = new FMSGCallBack(); |
| | | if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V50(0, fMSFCallBack_V31, null)) { |
| | | log.info("设置回调函数失败!错误码==========》" + hCNetSDK.NET_DVR_GetLastError()); |
| | | log.error("设置回调函数失败!错误码==========》" + hCNetSDK.NET_DVR_GetLastError()); |
| | | } |
| | | } |
| | | // 这里需要对设备进行相应的参数设置,不设置或设置错误都会导致设备注册失败 |
| | |
| | | // 布防成功,返回布防成功的数据传输通道号 |
| | | lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); |
| | | if (lAlarmHandle == -1) { |
| | | log.error("设备布防失败,错误码==========》" + hCNetSDK.NET_DVR_GetLastError()); |
| | | log.error("设备【" + deviceIpPort + "】布防失败,错误码==========》" + hCNetSDK.NET_DVR_GetLastError()); |
| | | // 注销 释放sdk资源 |
| | | logout(lUserID); |
| | | return lAlarmHandle; |
| | | } else { |
| | | log.info("相机布防成功"); |
| | | log.debug("设备【" + deviceIpPort + "】布防成功"); |
| | | return lAlarmHandle; |
| | | } |
| | | } |
| | |
| | | InputStream input = new ByteArrayInputStream(array); |
| | | String url = ""; |
| | | try { |
| | | boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, input.available(), ContentType); |
| | | boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, ContentType); |
| | | if (b) { |
| | | url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); |
| | | url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; |
| | | // 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); |
| | | } |
| | | } catch (IOException ex) { |
| | | } catch (Exception ex) { |
| | | log.error("上传文件异常:" + ex.getMessage()); |
| | | } |
| | | return url; |
| | |
| | | * 2023/7/6 10:48 |
| | | */ |
| | | public static String getDefenseZoneName(CameraCmd cmd) { |
| | | String name=""; |
| | | String name = ""; |
| | | try { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer channelNum = cmd.getWZoneIndex();//通道号==防区号 |
| | |
| | | } |
| | | return name; |
| | | } |
| | | |
| | | } |