ard-work/pom.xml
@@ -30,21 +30,11 @@ <groupId>net.java.jna</groupId> <artifactId>jna</artifactId> <version>1.0.0</version> <!-- <groupId>com.sun.jna</groupId>--> <!-- <artifactId>yx</artifactId>--> <!-- <version>0.0.1</version>--> <!-- <scope>system</scope>--> <!-- <systemPath>${project.basedir}/lib/jna.jar</systemPath>--> </dependency> <dependency> <groupId>net.java.examples</groupId> <artifactId>examples</artifactId> <version>1.0.0</version> <!-- <groupId>com.sun.jna.examples</groupId>--> <!-- <artifactId>yx</artifactId>--> <!-- <version>0.0.1</version>--> <!-- <scope>system</scope>--> <!-- <systemPath>${project.basedir}/lib/examples.jar</systemPath>--> </dependency> <dependency> <groupId>org.springframework.boot</groupId> ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java
@@ -14,5 +14,6 @@ public static Map<String,Object> priorityMap=new HashMap<>(); static { priorityMap.put("sys_radar_fire",999); priorityMap.put("sys_tube_leak",998); } } ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -97,14 +97,7 @@ //注é sdk.loginOut(camera.getId()); //ç»å½ camera = sdk.login(camera); if (camera.getLoginId() >= 0) { log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½æåï¼" + camera.getLoginId()); camera.setUpdateBy(SecurityUtils.getUsername()); ardCamerasService.updateArdCameras(camera); } else { log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½å¤±è´¥ï¼" + camera.getLoginId()); } sdk.login(camera); return toAjax(ardCamerasService.insertArdCameras(camera)); } @@ -120,13 +113,7 @@ if (i > 0) { ArdCameras cameras = ardCamerasService.selectArdCamerasById(camera.getId()); sdk.loginOut(cameras.getId()); camera = sdk.login(cameras); if (camera.getLoginId() >= 0) { log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½æåï¼" + camera.getLoginId()); ardCamerasService.updateArdCameras(camera); } else { log.info("ç¸æº" + camera.getIp() + ":" + camera.getPort() + "ç»å½å¤±è´¥ï¼" + camera.getLoginId()); } sdk.login(cameras); } return toAjax(i); } ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java
@@ -1,5 +1,6 @@ package com.ruoyi.device.camera.domain; import com.sun.jna.Structure; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
@@ -17,7 +17,7 @@ void loadHCNetSDKLib(); //ç»å½ ArdCameras login(ArdCameras cameras); void login(ArdCameras cameras); //ç»å½ææç¸æº void loginAll(); ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -16,6 +16,7 @@ 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; @@ -98,15 +99,14 @@ } /** * @æè¿° 注åç»å½ * @æè¿° 注åç»å½ åªæ¯æåæ¥ç»éï¼ä¸å®æ¹ä¸å»ºè®®ç´æ¥å¨æ¤æ¥å£ä¸åèæ¶æä½ * @åæ° [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åå§å失败"); @@ -114,9 +114,9 @@ //æå°æµ·åº·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(); @@ -144,6 +144,60 @@ } /** * @æè¿° 注åç»å½ éæäº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 @@ -152,32 +206,12 @@ * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ @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()); ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/MapCoordinateToPTZ.java
ÎļþÒÑɾ³ý ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.ruoyi.device.hiksdk.util.hikSdkUtil; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.hiksdk.common.GlobalVariable; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @Description: 弿¥ç»å½åè° * @ClassName: FLoginResultCallBack * @Author: åèä¹ * @Date: 2023å¹´06æ12æ¥13:34 * @Version: 1.0 **/ @Slf4j(topic = "hikSdk") public class LoginResultCallBack implements HCNetSDK.FLoginResultCallBack { private ArdCameras camera; public LoginResultCallBack(ArdCameras camera) { this.camera = camera; } @Override public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) { if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } if (dwResult == 1) { GlobalVariable.loginMap.put(camera.getId(), lUserID); log.info(camera.getIp() + ":" + camera.getPort() + "ç»å½æå"); camera.setLoginId(lUserID); camera.setChannel((int) lpDeviceinfo.byChanNum); } else { log.info(camera.getIp() + ":" + camera.getPort() + "ç»å½å¤±è´¥"); camera.setChannel(0); camera.setLoginId(-1); } ArdCamerasMapper ardCamerasMapper = SpringUtils.getBean(ArdCamerasMapper.class); ardCamerasMapper.updateArdCameras(camera); return 1; } } ard-work/src/main/resources/templates/test.html
@@ -162,7 +162,7 @@ } }) opt = {"username": "admin", "password": "admin123"}; opt = {"username": "liusuyi", "password": "5959932"}; $.ajax({ headers: { 'Accept': 'application/json', pom.xml
@@ -37,7 +37,6 @@ <!-- ä¾èµå£°æ --> <dependencyManagement> <dependencies> <!-- SpringBootçä¾èµé ç½®--> <dependency> <groupId>org.springframework.boot</groupId> ruoyi-admin/src/main/resources/application-ard.yml
@@ -17,7 +17,7 @@ #mqtt mqtt: host: tcp://192.168.1.15:1883 clientId: m3 clientId: m3c username: admin password: xzx12345 topic: tube ruoyi-admin/src/main/resources/application.yml
@@ -67,7 +67,7 @@ devtools: restart: # çé¨ç½²å¼å ³ enabled: true enabled: false # redis é ç½® redis: # å°å ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
@@ -38,6 +38,6 @@ //å·¡æ£ä»»å¡ public void scanRun() { /* ardVideoInspectTaskService.autoTaskRun();*/ ardVideoInspectTaskService.autoTaskRun(); } }