ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java
@@ -4,6 +4,7 @@ import com.ruoyi.alarm.radar.domain.ArdAlarmRadar; import com.ruoyi.alarm.radar.domain.RadarAlarmData; import com.ruoyi.alarm.radar.service.ArdRadarService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; @@ -69,12 +70,7 @@ ptzMap.put("t", t); ptzMap.put("z", cameraPTZ[2]); cmd.setPtzMap(ptzMap); boolean res = iCameraSdkService.setPtz(cmd); if (res) { log.debug("强å¶å¼å¯¼æå"); } else { log.debug("强å¶å¼å¯¼å¤±è´¥"); } iCameraSdkService.setPtz(cmd); } else { log.debug("æªè·åå°é·è¾¾å¡ä¸çå çµ"); } @@ -127,4 +123,4 @@ log.error("é·è¾¾è¿½è¸ªå¼å¯¼å¼å¸¸:" + ex.getMessage()); } } } } ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -7,6 +7,7 @@ import com.ruoyi.common.constant.CameraConstants; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.domain.DeptAndCamerasDto; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.device.camera.service.ICameraSdkService; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -193,7 +194,12 @@ Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(true); return AjaxResult.success(deptAndCamera); } @GetMapping("/getDeptAndCamera1") @ApiOperation("è·åé¨é¨åç¸æº1") public AjaxResult getDeptAndCamera1() { List<DeptAndCamerasDto> deptAndCamera = ardCamerasService.getChildDeptAndCamera(); return AjaxResult.success(deptAndCamera); } @GetMapping("/getDeptAndCameraWithCheckBox") @ApiOperation("è·åé¨é¨åç¸æº(å¼å¯å¤éæ¡)") public AjaxResult getDeptAndCameraWithCheckBox() { ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java
@@ -94,7 +94,7 @@ public @ResponseBody AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(cameraSdkService.pTZControl(cmd)); return cameraSdkService.pTZControl(cmd); } @ApiOperation("è°ç¨é¢ç½®ç¹") @@ -167,7 +167,7 @@ public @ResponseBody AjaxResult setPTZ(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(cameraSdkService.setPtz(cmd)); return cameraSdkService.setPtz(cmd); } @ApiOperation("æåç®æ ") ard-work/src/main/java/com/ruoyi/device/camera/domain/DeptAndCamerasDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.device.camera.domain; import com.ruoyi.common.core.domain.entity.SysDept; import lombok.Data; import java.util.List; /** * @Description: * @ClassName: deptAndCamerasDto * @Author: åèä¹ * @Date: 2024å¹´03æ05æ¥8:21:22 **/ @Data public class DeptAndCamerasDto { SysDept sysDept; List<ArdCameras> ardCamerasList; } ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java
@@ -1,5 +1,6 @@ package com.ruoyi.device.camera.factory; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.channel.domain.ArdChannel; @@ -26,7 +27,7 @@ boolean isOnLine(CameraCmd cmd); //äºå°æ§å¶ boolean pTZControl(CameraCmd cmd); AjaxResult pTZControl(CameraCmd cmd); //设置èç¦å¼ boolean setFocusPos(CameraCmd cmd); @@ -78,10 +79,10 @@ Map<String, Object> getPtzScope(CameraCmd cmd); //设置ptz1(䏿¯æ2ééçZå¼è®¾ç½®åè·å) boolean setPtz1(CameraCmd cmd); AjaxResult setPtz1(CameraCmd cmd); //设置ptz(é«ç²¾åº¦ptz设置) boolean setPtz(CameraCmd cmd); AjaxResult setPtz(CameraCmd cmd); //è®¾ç½®é¶æ¹ä½è§ boolean setZeroPtz(CameraCmd cmd); ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java
@@ -8,19 +8,20 @@ import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.domain.DeptAndCamerasDto; import com.ruoyi.scheduling.domian.SchedulingParam; /** * ç¸æºè®¾å¤Serviceæ¥å£ * * * @author åèä¹ * @date 2023-02-11 */ public interface IArdCamerasService public interface IArdCamerasService { /** * æ¥è¯¢ç¸æºè®¾å¤ * * * @param id ç¸æºè®¾å¤ä¸»é® * @return ç¸æºè®¾å¤ */ @@ -28,7 +29,7 @@ /** * æ¥è¯¢ç¸æºè®¾å¤å表 * * * @param ardCameras ç¸æºè®¾å¤ * @return ç¸æºè®¾å¤éå */ @@ -42,7 +43,7 @@ public List<ArdCameras> selectArdCamerasListNoDataScope(ArdCameras ardCameras); /** * æ°å¢ç¸æºè®¾å¤ * * * @param ardCameras ç¸æºè®¾å¤ * @return ç»æ */ @@ -50,7 +51,7 @@ /** * ä¿®æ¹ç¸æºè®¾å¤ * * * @param ardCameras ç¸æºè®¾å¤ * @return ç»æ */ @@ -58,7 +59,7 @@ /** * æ¹éå é¤ç¸æºè®¾å¤ * * * @param ids éè¦å é¤çç¸æºè®¾å¤ä¸»é®éå * @return ç»æ */ @@ -66,7 +67,7 @@ /** * å é¤ç¸æºè®¾å¤ä¿¡æ¯ * * * @param id ç¸æºè®¾å¤ä¸»é® * @return ç»æ */ @@ -106,7 +107,7 @@ * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public Map getChildDeptAndCamera(Boolean disabled); public List<DeptAndCamerasDto> getChildDeptAndCamera(); public TreeMap getNearCamerasBycoordinate(CameraCmd cmd); ard-work/src/main/java/com/ruoyi/device/camera/service/ICameraSdkService.java
@@ -19,7 +19,7 @@ boolean isOnLine(CameraCmd cmd); //äºå°æ§å¶ boolean pTZControl(CameraCmd cmd); AjaxResult pTZControl(CameraCmd cmd); //设置èç¦å¼ boolean setFocusPos(CameraCmd cmd); @@ -76,7 +76,7 @@ Map<String, Object> getPtzScope(CameraCmd cmd); //设置ptz boolean setPtz(CameraCmd cmd); AjaxResult setPtz(CameraCmd cmd); //è®¾ç½®é¶æ¹ä½è§ boolean setZeroPtz(CameraCmd cmd); ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -17,10 +17,12 @@ import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.domain.DeptAndCamerasDto; import com.ruoyi.device.channel.domain.ArdChannel; import com.ruoyi.device.channel.mapper.ArdChannelMapper; import com.ruoyi.media.service.IVtduService; import com.ruoyi.scheduling.domian.SchedulingParam; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.utils.gis.GisUtil; import com.ruoyi.utils.tools.ArdTool; import com.ruoyi.device.camera.domain.ArdCameras; @@ -52,7 +54,8 @@ private SysDeptMapper sysDeptMapper; @Resource private RedisCache redisCache; @Autowired private ISysDeptService deptService; @Resource private ArdChannelMapper ardChannelMapper; @Resource @@ -306,7 +309,6 @@ * @å建æ¶é´ 2023/6/2 10:58 * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ @Override public Map getChildDeptAndCamera(Boolean disabled) { Long deptId = SecurityUtils.getDeptId(); @@ -315,6 +317,11 @@ return map; } @Override public List<DeptAndCamerasDto> getChildDeptAndCamera() { List<SysDept> depts = deptService.selectDeptList(new SysDept()); return fetchChildDepartments(depts); } /** * @æè¿° é彿¥è¯¢ * @åæ° [sysDept] @@ -354,7 +361,26 @@ } map.put("children", childList); return map; } /** * è·åææé¨é¨åé¨é¨ä¸çç¸æº * åèä¹ * 2024/3/4 14:45:03 */ public List<DeptAndCamerasDto> fetchChildDepartments(List<SysDept> sysDepts) { List<DeptAndCamerasDto> deptAndCamerasList = sysDepts.stream() .map(sysDept -> { List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasByDeptId(sysDept.getDeptId()); DeptAndCamerasDto deptAndCamerasDto = new DeptAndCamerasDto(); deptAndCamerasDto.setSysDept(sysDept); deptAndCamerasDto.setArdCamerasList(ardCameras); return deptAndCamerasDto; }) .collect(Collectors.toList()); return deptAndCamerasList; } /** ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -130,20 +130,15 @@ //äºå°æ§å¶ @Override public boolean pTZControl(CameraCmd cmd) { try { boolean result = false; String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); result = cameraSDK.pTZControl(cmd); } return result; } catch (Exception ex) { log.error("ptzæ§å¶å¼å¸¸ï¼" + ex.getMessage()); return false; public AjaxResult pTZControl(CameraCmd cmd) { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.pTZControl(cmd); } else { return AjaxResult.error("æå头ä¸åå¨"); } } @@ -403,9 +398,7 @@ String gdtype = ardCamera.getGdtype(); if (gdtype.equals("1")) { map = cameraSDK.getPtz(cmd); } else { } else { map = cameraSDK.getPtz1(cmd); } } @@ -435,27 +428,27 @@ //设置ptz @Override public boolean setPtz(CameraCmd cmd) { boolean result = false; public AjaxResult setPtz(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); String gdtype = ardCamera.getGdtype(); if (gdtype.equals("1")) { //大å çµä½¿ç¨é«ç²¾åº¦ptz设置 result = cameraSDK.setPtz(cmd); } else { result = cameraSDK.setPtz1(cmd); } if (ardCamera == null) { return AjaxResult.error("æå头ä¸åå¨"); } CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(ardCamera.getFactory()); String gdtype = ardCamera.getGdtype(); if (gdtype.equals("1")) { //大å çµä½¿ç¨é«ç²¾åº¦ptz设置 return cameraSDK.setPtz(cmd); } else { return cameraSDK.setPtz1(cmd); } } catch (Exception ex) { log.error("设置ptzå¼å¸¸ï¼" + ex.getMessage()); AjaxResult.error("设置ptzå¼å¸¸:" + ex.getMessage()); } return result; return AjaxResult.success(); } //è®¾ç½®é¶æ¹ä½è§ @@ -529,8 +522,7 @@ cmd.setCameraId(cameraId); //è·åæè¿ç¸æºç对象 Optional<ArdWellGuideCamera> first = ardWellGuideCameraList.stream().filter(s -> s.getCameraId().equals(cameraId)).findFirst(); if(first.isPresent()) { if (first.isPresent()) { ArdWellGuideCamera ardWellGuideCamera = first.get(); Map<String, Double> ptzMap = null; //éè¿ééè·åé¢ç½®ä½ @@ -557,11 +549,7 @@ if (ptzMap != null) { //使ç¨ptzå¼å¯¼ cmd.setPtzMap(ptzMap); boolean res = setPtz(cmd); if (!res) { return AjaxResult.error("ptzå¼å¯¼å¤±è´¥", "cameraId:" + cameraId); } return AjaxResult.success("ptzå¼å¯¼æå", "cameraId:" + cameraId); return setPtz(cmd); } } ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.ruoyi.utils.sdk.common; import com.ruoyi.common.utils.StringUtils; /** * sdkéè¯¯ç æä¸¾ * åèä¹ * 2024/3/7 10:50:52 */ public enum SdkErrorCodeEnum { NET_DVR_PASSWORD_ERROR(1, "ç¨æ·åå¯ç éè¯¯ãæ³¨åæ¶è¾å ¥çç¨æ·åæè å¯ç é误"), NET_DVR_NOINIT(3, "SDKæªåå§å"), NET_DVR_NETWORK_FAIL_CONNECT(7, "è¿æ¥è®¾å¤å¤±è´¥ã设å¤ä¸å¨çº¿æç½ç»åå å¼èµ·çè¿æ¥è¶ æ¶ç"); /** * æä¸¾ç */ private Integer code; /** * æä¸¾æè¿° */ private String desc; private SdkErrorCodeEnum(Integer code, String desc) { this.code = code; this.desc = desc; } public Integer getCode() { return code; } public String getDesc() { return desc; } /** * æ ¹æ®æä¸¾ç è·åæä¸¾ * * @param code æä¸¾ç * @return æä¸¾ */ public static final SdkErrorCodeEnum getByCode(Integer code) { if (StringUtils.isNull(code)) { return null; } for (SdkErrorCodeEnum item : SdkErrorCodeEnum.values()) { if (item.getCode() == code) { return item; } } return null; } /** * æ ¹æ®æä¸¾ç è·åæä¸¾æè¿° * * @param code æä¸¾ç * @return æä¸¾æè¿° */ public static final String getDescByCode(Integer code) { if (StringUtils.isNull(code)) { return "é误ç 为空"; } for (SdkErrorCodeEnum item : SdkErrorCodeEnum.values()) { if (item.getCode() == code) { return item.getDesc(); } } return "æ¾ä¸å°é误ç 对åºçé误æè¿°,请è系管çå"; } } ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/controller/DhSdkController.java
@@ -47,7 +47,7 @@ public @ResponseBody AjaxResult pTZControl(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(sdk.pTZControl(cmd)); return sdk.pTZControl(cmd); } @ApiOperation("è·åPTZ") @@ -79,7 +79,7 @@ public @ResponseBody AjaxResult setPTZ(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(sdk.setPtz(cmd)); return sdk.setPtz(cmd); } @ApiOperation("è®¾ç½®é¶æ¹ä½è§") @@ -124,4 +124,4 @@ String url = sdk.recordStopToMinio(cmd); return AjaxResult.success(url); } } } ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/lib/ToolKits.java
@@ -32,7 +32,7 @@ public class ToolKits { static NetSDKLib netsdkapi = NetSDKLib.NETSDK_INSTANCE; static NetSDKLib configapi = NetSDKLib.CONFIG_INSTANCE; /*************************************************************************************************** * å·¥å ·æ¹æ³ * ***************************************************************************************************/ @@ -48,7 +48,7 @@ pJavaStu.size()); pJavaStu.read(); } public static void GetPointerDataToStructArr(Pointer pNativeData, Structure []pJavaStuArr) { long offset = 0; for (int i=0; i<pJavaStuArr.length; ++i) @@ -57,10 +57,10 @@ offset += pJavaStuArr[i].size(); } } /** * å°ç»æä½æ°ç»æ·è´å°å å * @param pNativeData * @param pNativeData * @param pJavaStuArr */ public static void SetStructArrToPointerData(Structure []pJavaStuArr, Pointer pNativeData) { @@ -70,41 +70,41 @@ offset += pJavaStuArr[i].size(); } } public static void SetStructDataToPointer(Structure pJavaStu, Pointer pNativeData, long OffsetOfpNativeData){ pJavaStu.write(); Pointer pJavaMem = pJavaStu.getPointer(); pNativeData.write(OffsetOfpNativeData, pJavaMem.getByteArray(0, pJavaStu.size()), 0, pJavaStu.size()); } public static void savePicture(byte[] pBuf, String sDstFile) throws IOException { FileOutputStream fos=null; try { fos = new FileOutputStream(sDstFile); fos.write(pBuf); fos.write(pBuf); } catch (Exception e){ e.printStackTrace(); }finally{ fos.close(); fos.close(); } } public static void savePicture(byte[] pBuf, int dwBufOffset, int dwBufSize, String sDstFile) throws IOException { FileOutputStream fos=null; try { { fos = new FileOutputStream(sDstFile); fos.write(pBuf, dwBufOffset, dwBufSize); } catch (Exception e){ e.printStackTrace(); }finally{ fos.close(); fos.close(); } } public static void savePicture(Pointer pBuf, int dwBufSize, String sDstFile) throws IOException { FileOutputStream fos=null; @@ -115,10 +115,10 @@ } catch (Exception e){ e.printStackTrace(); }finally{ fos.close(); fos.close(); } } public static void savePicture(Pointer pBuf, int dwBufOffset, int dwBufSize, String sDstFile) throws IOException { FileOutputStream fos=null; @@ -129,12 +129,12 @@ } catch (Exception e){ e.printStackTrace(); }finally{ fos.close(); fos.close(); } } // å°Pointerå¼è½¬ä¸ºbyte[] public static String GetPointerDataToByteArr(Pointer pointer) { public static String GetPointerDataToByteArr(Pointer pointer) { String str = ""; if(pointer == null) { return str; @@ -143,14 +143,14 @@ int length = 0; byte[] bufferPlace = new byte[1]; for(int i = 0; i < 2048; i++) { pointer.read(i, bufferPlace, 0, 1); for(int i = 0; i < 2048; i++) { pointer.read(i, bufferPlace, 0, 1); if(bufferPlace[0] == '\0') { length = i; break; } } if(length > 0) { byte[] buffer = new byte[length]; pointer.read(0, buffer, 0, length); @@ -159,58 +159,58 @@ } catch (UnsupportedEncodingException e) { return str; } } } return str; } // è·åå½åæ¶é´ public static String getDate() { SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = simpleDate.format(new java.util.Date()).replace(" ", "_").replace(":", "-"); return date; } // è·åå½åæ¶é´ public static String getDay() { SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd"); String date = simpleDate.format(new java.util.Date()); String date = simpleDate.format(new java.util.Date()); return date; } // éå¶JTextField é¿åº¦ï¼ä»¥åå 容 public static void limitTextFieldLength(final JTextField jTextField, final int size) { jTextField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { String number = "0123456789" + (char)8; public void keyTyped(KeyEvent e) { String number = "0123456789" + (char)8; if(number.indexOf(e.getKeyChar()) < 0 || jTextField.getText().trim().length() >= size) { e.consume(); return; } } } @Override public void keyReleased(KeyEvent e) { public void keyReleased(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { public void keyPressed(KeyEvent e) { } }); } // è·åå½åçªå£ public static JFrame getFrame(ActionEvent e) { JButton btn = (JButton)e.getSource(); JFrame frame = (JFrame)btn.getRootPane().getParent(); return frame; } // è·åæä½å¹³å°ä¿¡æ¯ public static String getLoadLibrary(String library) { String path = ""; @@ -223,7 +223,7 @@ return (path + library); } public static String getOsName() { String osName = ""; String os = System.getProperty("os.name"); @@ -232,10 +232,10 @@ } else if(os.toLowerCase().startsWith("linux")) { osName = "linux"; } return osName; } /** * 读åå¾çå¤§å° * @param filePath å¾çè·¯å¾ @@ -251,13 +251,13 @@ return 0; } } /** * 读åå¾çæ°æ® * @param file å¾çè·¯å¾ * @param memory å¾çæ°æ®ç¼å * @param memory å¾çæ°æ®ç¼å * @return * @throws IOException * @throws IOException */ public static boolean ReadAllFileToMemory(String file, Memory memory) throws IOException { if (memory != Memory.NULL) @@ -273,7 +273,7 @@ if (infile.canRead()) { in = new FileInputStream(infile); int buffLen = 1024; int buffLen = 1024; byte[] buffer = new byte[buffLen]; long currFileLen = 0; int readLen = 0; @@ -282,7 +282,7 @@ readLen = in.read(buffer); memory.write(currFileLen, buffer, 0, readLen); currFileLen += readLen; } } return true; } else @@ -297,17 +297,17 @@ }finally{ if(in!=null){ in.close(); } } } } return false; } static class JPGFilter extends FileFilter { public boolean accept(File f) { if(f.getName().toLowerCase().endsWith(".JPG") || f.getName().toLowerCase().endsWith(".jpg") || f.getName().toLowerCase().endsWith(".jpg") || f.isDirectory()) { return true; } @@ -319,19 +319,19 @@ return "*.jpg; *.JPG"; } } /* * ç¨éæ©å¨éæ©å¾ç, è·åå¾çè·¯å¾ï¼å¹¶å¨ç颿¾ç¤º */ public static String openPictureFile(PaintPanel paintPanel) { public static String openPictureFile(PaintPanel paintPanel) { try { UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } } String picPath = ""; // 读åå¾ç JFileChooser jfc = new JFileChooser("d:/"); jfc.setMultiSelectionEnabled(false); // ä¸å¯ä»¥æéå¤ä¸ªæä»¶ @@ -341,10 +341,10 @@ JPGFilter filter = new JPGFilter(); jfc.addChoosableFileFilter(filter); jfc.setFileFilter(filter); if( jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { picPath = jfc.getSelectedFile().getAbsolutePath(); /* * è¯»åæ¬å°å¾ç, å¹¶å¨é¢æ¿ä¸æ¾ç¤º */ @@ -352,22 +352,22 @@ if(picPath == null || picPath.equals("")) { return ""; } File file = new File(picPath); if(!file.exists()) { return ""; } try { bufferedImage = ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); } if(bufferedImage == null) { paintPanel.setOpaque(true); paintPanel.repaint(); System.err.println("æå¼å¾ç失败ï¼è¯·éæ°éæ©ï¼"); return ""; } else { @@ -376,19 +376,19 @@ paintPanel.repaint(); } } try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } } return picPath; } /* * ä¼ å ¥å¾çè·¯å¾, æå¼å¾ç, å¹¶å¨é¢æ¿æ¾ç¤º */ public static File openPictureFile(String picPath, PaintPanel paintPanel) { public static File openPictureFile(String picPath, PaintPanel paintPanel) { /* * è¯»åæ¬å°å¾ç, å¹¶å¨é¢æ¿ä¸æ¾ç¤º */ @@ -396,22 +396,22 @@ if(picPath == null || picPath.equals("")) { return null; } File file = new File(picPath); if(!file.exists()) { return null; } try { bufferedImage = ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); } if(bufferedImage == null) { paintPanel.setOpaque(true); paintPanel.repaint(); System.err.println("æå¼å¾ç失败ï¼è¯·éæ°éæ©ï¼"); return null; } else { @@ -419,24 +419,24 @@ paintPanel.setImage(bufferedImage); paintPanel.repaint(); } return file; } /** * 读åå¾ç * @return å¾çç¼å * @throws IOException * @throws IOException */ public static Memory readPictureFile(String picPath) throws IOException { int nPicBufLen = 0; Memory memory = null; /* * è¯»åæ¬å°å¾çå¤§å° */ nPicBufLen = (int)ToolKits.GetFileSize(picPath); nPicBufLen = (int)ToolKits.GetFileSize(picPath); // 读åæä»¶å¤§å°å¤±è´¥ if (nPicBufLen <= 0) { System.err.println("读åå¾ç大å°å¤±è´¥ï¼è¯·éæ°éæ©ï¼"); @@ -448,46 +448,46 @@ */ memory = new Memory(nPicBufLen); // ç³è¯·ç¼å memory.clear(); if (!ToolKits.ReadAllFileToMemory(picPath, memory)) { System.err.println("读åå¾çæ°æ®ï¼è¯·éæ°éæ©ï¼"); return null; } return memory; } /** * ç»å½è®¾å¤è®¾å¤éè¯¯ç¶æ, ç¨äºç颿¾ç¤º */ public static String getErrorCodeShow() { return ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()); } /** * è·åæ¥å£é误ç åé误信æ¯ï¼ç¨äºæå° * @return */ public static String getErrorCodePrint() { return "\n{error code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").åè NetSDKLib.java }" + " - {error info:" + ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + "}\n"; return "Error Code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +")" + " Error Info:" + ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + ""; } /** * è·åå个é ç½® * @param hLoginHandle ç»é奿 * @param nChn ééå·ï¼-1 è¡¨ç¤ºå ¨éé * @param strCmd é ç½®åç§° * @param cmdObject é 置对åºçç»æä½å¯¹è±¡ * @return æåè¿å true * @return æåè¿å true */ public static boolean GetDevConfig(LLong hLoginHandle, int nChn, String strCmd, Structure cmdObject) { boolean result = false; IntByReference error = new IntByReference(0); int nBufferLen = 2*1024*1024; byte[] strBuffer = new byte[nBufferLen]; if(netsdkapi.CLIENT_GetNewDevConfig( hLoginHandle, strCmd , nChn, strBuffer, nBufferLen,error,3000)) { if(netsdkapi.CLIENT_GetNewDevConfig( hLoginHandle, strCmd , nChn, strBuffer, nBufferLen,error,3000)) { cmdObject.write(); if (configapi.CLIENT_ParseData(strCmd, strBuffer, cmdObject.getPointer(), cmdObject.size(), null)) { @@ -501,10 +501,10 @@ System.err.printf("Get %s Config Failed!Last Error = %s\n" , strCmd , getErrorCodePrint()); result = false; } return result; } /** * 设置å个é ç½® * @param hLoginHandle ç»é奿 @@ -519,11 +519,11 @@ byte szBuffer[] = new byte[nBufferLen]; for(int i=0; i<nBufferLen; i++)szBuffer[i]=0; IntByReference error = new IntByReference(0); IntByReference restart = new IntByReference(0); IntByReference restart = new IntByReference(0); cmdObject.write(); if (configapi.CLIENT_PacketData(strCmd, cmdObject.getPointer(), cmdObject.size(), szBuffer, nBufferLen)) { szBuffer, nBufferLen)) { cmdObject.read(); if( netsdkapi.CLIENT_SetNewDevConfig(hLoginHandle, strCmd , nChn , szBuffer, nBufferLen, error, restart, 3000)) { result = true; @@ -535,38 +535,38 @@ System.err.println("Packet " + strCmd + " Config Failed!" + getErrorCodePrint()); result = false; } return result; } // Winä¸ï¼å°GBK Stringç±»åç转为Pointer public static Pointer GetGBKStringToPointer(String src) { public static Pointer GetGBKStringToPointer(String src) { Pointer pointer = null; try { byte[] b = src.getBytes("GBK"); pointer = new Memory(b.length+1); pointer.clear(b.length+1); pointer.write(0, b, 0, b.length); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return pointer; } /** * å符串æ·è´ï¼ç¨äºå è·åï¼å设置(src â dst) * @param src * @param src * @param dst */ public static void StringToByteArray(String src, byte[] dst) { for(int i = 0; i < dst.length; i++) { dst[i] = 0; } System.arraycopy(src.getBytes(), 0, dst, 0, src.getBytes().length); } /** * æ°ç»æ·è´ï¼ ç¨äºå è·åï¼å设置(src â dst) * @param src @@ -576,7 +576,7 @@ for(int i = 0; i < dst.length; i++) { dst[i] = 0; } System.arraycopy(src, 0, dst, 0, src.length); } } ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -4,6 +4,7 @@ import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.alarm.global.service.impl.QueueHandler; import com.ruoyi.common.annotation.SdkOperate; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.common.utils.spring.SpringUtils; @@ -19,6 +20,7 @@ import com.ruoyi.utils.gis.GisUtil; import com.ruoyi.utils.minio.MinioUtil; import com.ruoyi.utils.sdk.common.GlobalVariable; import com.ruoyi.utils.sdk.dhsdk.common.ErrorCode; import com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib; import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.EM_NEW_CONFIG; import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE; @@ -317,14 +319,14 @@ */ @Override @SdkOperate public boolean pTZControl(CameraCmd cmd) { public AjaxResult pTZControl(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer chanNo = cmd.getChanNo(); Integer speed = cmd.getSpeed(); Integer code = cmd.getCode(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; return AjaxResult.error("è®¾å¤æªç»å½"); } NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId); int dwStop; @@ -391,8 +393,9 @@ boolean bool = PtzControlModule.ptzControl(loginId, chanNo - 1, dwPTZCommand, speed, speed, 0, dwStop); if (!bool) { log.error("æ§å¶å¤±è´¥,请ç¨åéè¯" + getErrorCodePrint()); return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); } return bool; return AjaxResult.success(); } /** @@ -429,7 +432,7 @@ } @Override public boolean setPtz1(CameraCmd cmd) { public AjaxResult setPtz1(CameraCmd cmd) { return setPtz(cmd) ; } @@ -443,12 +446,12 @@ */ @Override @SdkOperate public boolean setPtz(CameraCmd cmd) { public AjaxResult setPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; return AjaxResult.error("è®¾å¤æªç»å½"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -460,11 +463,12 @@ boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0); if (!bool) { log.error("æ§å¶å¤±è´¥,请ç¨åéè¯" + getErrorCodePrint()); return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); } return bool; return AjaxResult.success(); } catch (Exception ex) { log.error(ex.getMessage()); return false; return AjaxResult.error(ex.getMessage()); } } ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java
@@ -85,7 +85,7 @@ public @ResponseBody AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(sdk.pTZControl(cmd)); return sdk.pTZControl(cmd); } @ApiOperation("è°ç¨é¢ç½®ç¹") @@ -158,7 +158,7 @@ public @ResponseBody AjaxResult setPTZ(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(sdk.setPtz(cmd)); return sdk.setPtz(cmd); } @ApiOperation("æåç®æ ") ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -4,6 +4,7 @@ import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.alarm.global.service.impl.QueueHandler; import com.ruoyi.common.annotation.SdkOperate; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.common.utils.spring.SpringUtils; @@ -19,6 +20,7 @@ import com.ruoyi.utils.gis.GisUtil; import com.ruoyi.utils.minio.MinioUtil; import com.ruoyi.utils.sdk.common.GlobalVariable; import com.ruoyi.utils.sdk.common.SdkErrorCodeEnum; import com.ruoyi.utils.sdk.hiksdk.lib.ExceptionCallBack; import com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK; import com.sun.jna.NativeLong; @@ -220,7 +222,10 @@ //忥ç»å½ int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (lUserID < 0) { log.debug("Login Failed ã " + camera.getIp() + ":" + camera.getPort() + " ã,Error Codeï¼" + hCNetSDK.NET_DVR_GetLastError()); int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.debug("Login Failed ã " + camera.getIp() + ":" + camera.getPort() + " ã," + "Error Code:" + errorCode + " " + "Error Info:" + SdkErrorCodeEnum.getDescByCode(errorCode)); camera.setChanNum(0); camera.setLoginId(-1); camera.setState("0"); @@ -376,14 +381,14 @@ */ @Override @SdkOperate public boolean pTZControl(CameraCmd cmd) { public AjaxResult pTZControl(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChanNo(); Integer speed = cmd.getSpeed(); Integer code = cmd.getCode(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; return AjaxResult.error("ç¸æºæªç»å½"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); int dwStop; @@ -452,8 +457,9 @@ if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("æ§å¶å¤±è´¥,请ç¨åéè¯" + errorCode); return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return bool; return AjaxResult.success(); } /** @@ -992,12 +998,12 @@ */ @Override @SdkOperate public boolean setPtz1(CameraCmd cmd) { public AjaxResult setPtz1(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; return AjaxResult.error("è®¾å¤æªç»å½"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); @@ -1013,13 +1019,14 @@ m_ptzPosCurrent.write(); boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置PTZåæ°å¤±è´¥,请ç¨åéè¯:" + code); int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("设置PTZåæ°å¤±è´¥,请ç¨åéè¯:" + errorCode); return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return bool; return AjaxResult.success(); } catch (Exception ex) { log.error(ex.getMessage()); return false; return AjaxResult.error("设置PTZåæ°å¼å¸¸:" + ex.getMessage()); } } @@ -1033,13 +1040,13 @@ */ @Override @SdkOperate public boolean setPtz(CameraCmd cmd) { public AjaxResult setPtz(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; return AjaxResult.error("è®¾å¤æªç»å½"); } Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId); IntByReference pchannel = new IntByReference(chanNo); @@ -1071,14 +1078,15 @@ lpConfigParam6697.write(); boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置é«ç²¾åº¦PTZåæ°å¤±è´¥,请ç¨åéè¯:" + code); int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("设置é«ç²¾åº¦PTZåæ°å¤±è´¥,请ç¨åéè¯:" + errorCode); return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return bool; return AjaxResult.success(); } catch (Exception ex) { log.error("设置é«ç²¾åº¦PTZåæ°å¼å¸¸", ex); return false; return AjaxResult.error("设置é«ç²¾åº¦PTZåæ°å¼å¸¸:" + ex); } }