| | |
| | | import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; |
| | | import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK; |
| | | import com.ruoyi.device.hiksdk.service.IHikClientService; |
| | | import com.ruoyi.device.hiksdk.util.hikSdkUtil.LoginResultCallBack; |
| | | import com.ruoyi.device.hiksdk.util.minio.MinioUtils; |
| | | import com.ruoyi.system.mapper.SysUserMapper; |
| | | import com.sun.jna.Native; |
| | |
| | | } |
| | | |
| | | /** |
| | | * @æè¿° 注åç»å½ |
| | | * @æè¿° 注åç»å½ åªæ¯æåæ¥ç»éï¼ä¸å®æ¹ä¸å»ºè®®ç´æ¥å¨æ¤æ¥å£ä¸åèæ¶æä½ |
| | | * @åæ° [dvrLogin] |
| | | * @è¿åå¼ java.lang.Integer |
| | | * @å建人 åèä¹ |
| | | * @å建æ¶é´ 2023/1/17 16:12 |
| | | * @ä¿®æ¹äººåå
¶å®ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | public ArdCameras login(ArdCameras camera) { |
| | | public ArdCameras login1(ArdCameras camera) { |
| | | // åå§å |
| | | if (!hCNetSDK.NET_DVR_Init()) { |
| | | log.error("SDKåå§å失败"); |
| | |
| | | //æå°æµ·åº·sdkæ¥å¿ |
| | | if (Platform.isWindows()) { |
| | | String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, false); |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); |
| | | } else { |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", false); |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); |
| | | } |
| | | String m_sDeviceIP = camera.getIp(); |
| | | String m_sUsername = camera.getUsername(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @æè¿° 注åç»å½ éæäºNET_DVR_Login_V30ï¼æ¯æåæ¥å弿¥ç»å½ |
| | | * @åæ° [dvrLogin] |
| | | * @è¿åå¼ java.lang.Integer |
| | | * @å建人 åèä¹ |
| | | * @å建æ¶é´ 2023/1/17 16:12 |
| | | * @ä¿®æ¹äººåå
¶å®ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | public void login(ArdCameras camera) { |
| | | // åå§å |
| | | if (!hCNetSDK.NET_DVR_Init()) { |
| | | log.error("SDKåå§å失败"); |
| | | } |
| | | //æå°æµ·åº·sdkæ¥å¿ |
| | | if (Platform.isWindows()) { |
| | | String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); |
| | | } 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(); |
| | | //è®¾ç½®è¿æ¥æ¶é´ä¸éè¿æ¶é´ |
| | | hCNetSDK.NET_DVR_SetConnectTime(2000, 1); |
| | | hCNetSDK.NET_DVR_SetReconnect(100000, true); |
| | | //设å¤ä¿¡æ¯, è¾åºåæ° |
| | | HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); |
| | | HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); |
| | | |
| | | // 注å设å¤-ç»å½åæ°ï¼å
æ¬è®¾å¤å°åãç»å½ç¨æ·ãå¯ç ç |
| | | m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN]; |
| | | System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length()); |
| | | m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN]; |
| | | System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length()); |
| | | m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN]; |
| | | System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length()); |
| | | m_strLoginInfo.wPort = m_sPort; |
| | | m_strLoginInfo.byVerifyMode = 0; |
| | | m_strLoginInfo.byLoginMode=0; |
| | | //æ¯å¦å¼æ¥ç»å½ï¼0- å¦ï¼1- æ¯ windowsSDK鿝trueåfalse |
| | | m_strLoginInfo.bUseAsynLogin = true; |
| | | //弿¥ç»å½åè° |
| | | m_strLoginInfo.cbLoginResult = new LoginResultCallBack(camera); |
| | | m_strLoginInfo.write(); |
| | | int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); |
| | | if (i < 0) { |
| | | int errorCode = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.info("ç»å½å¼å¸¸ï¼" + errorCode); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @æè¿° ç»å½ææç¸æº |
| | | * @åæ° [] |
| | | * @è¿åå¼ void |
| | |
| | | * @ä¿®æ¹äººåå
¶å®ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | @Async("loginExecutor") |
| | | public void loginAll() { |
| | | try { |
| | | log.debug("å è½½lib宿ï¼"); |
| | | List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasList(new ArdCameras()); |
| | | List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasListNoDataScope(new ArdCameras()); |
| | | for (ArdCameras camera : ardCameras) { |
| | | camera = login(camera); |
| | | if (camera.getLoginId() >= 0) { |
| | | log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½æåï¼" + camera.getLoginId()); |
| | | ardCamerasMapper.updateArdCameras(camera); |
| | | } else { |
| | | log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½å¤±è´¥ï¼" + camera.getLoginId()); |
| | | } |
| | | // if (!globalVariable.loginMap.containsKey(camera.getId())) { |
| | | // camera = login(camera); |
| | | // if (camera.getLoginId() >= 0) { |
| | | // log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½æåï¼" + camera.getLoginId()); |
| | | // globalVariable.loginMap.put(camera.getId(), camera.getLoginId()); |
| | | // ardCamerasService.updateArdCameras(camera); |
| | | // } else { |
| | | // log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½å¤±è´¥ï¼" + camera.getLoginId()); |
| | | // } |
| | | // } else { |
| | | // Integer userid = globalVariable.loginMap.get(camera.getId()); |
| | | // log.info("å½åç¸æº:" + camera.getId() + "å·²ç»å½,ID:" + userid); |
| | | // } |
| | | login(camera); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); |
| | |
| | | netDvrIFrame.byStreamType = 0; |
| | | netDvrIFrame.dwSize = netDvrIFrame.size(); |
| | | netDvrIFrame.write(); |
| | | if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){ |
| | | if (!hCNetSDK.NET_DVR_RemoteControl(userId, 3402, netDvrIFrame.getPointer(), netDvrIFrame.dwSize)) { |
| | | log.error("强å¶I帧 é误ç 为: " + hCNetSDK.NET_DVR_GetLastError()); |
| | | } |
| | | //é¢è§åæ° |
| | |
| | | } |
| | | log.info("åæµæå"); |
| | | |
| | | String path= FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); |
| | | String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); |
| | | recordInfo info = new recordInfo(); |
| | | info.setLRealHandle(lRealHandle); |
| | | info.setRecordPath(path); |
| | |
| | | } |
| | | hCNetSDK.NET_DVR_StopRealPlay(info.getLRealHandle()); |
| | | log.info("å½å忢"); |
| | | if(cmd.isUploadMinio()) { |
| | | if (cmd.isUploadMinio()) { |
| | | //åå
¥minio |
| | | String BucketName = cmd.getRecordBucketName(); |
| | | String ObjectName = cmd.getRecordObjectName(); |