ソースを参照

夜视和切换帧率开发

gao.qiang 8 ヶ月 前
コミット
cdbd239015

+ 4 - 1
business-service/src/main/java/com/ozs/service/entity/vo/Codec.java

@@ -2,10 +2,13 @@ package com.ozs.service.entity.vo;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author Administrator
  */
 @Data
 public class Codec {
-    private Venc0 venc0;
+    private List<Venc> venc;
+    private Day2night day2night;
 }

+ 14 - 0
business-service/src/main/java/com/ozs/service/entity/vo/Day2night.java

@@ -0,0 +1,14 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class Day2night {
+    private  Integer mode;
+    private  Integer n2i_thr=16000;
+    private  Integer i2n_thr=250;
+    private  Integer light1=0;
+    private  Integer light2=0;
+    private  Integer btime=21600;
+    private  Integer etime=64800;
+}

+ 20 - 0
business-service/src/main/java/com/ozs/service/entity/vo/Venc.java

@@ -0,0 +1,20 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class Venc {
+    private Integer index = 0;
+    private Integer type = 0;
+    private Integer width = 1920;
+    private Integer height = 1080;
+    private Integer gop = 1;
+    private Integer bitrate = 4096;
+    private Integer profile = 1;
+    private Integer rcmode = 1;
+    private Integer qfactor = 0;
+    private Double fps;
+}

+ 0 - 11
business-service/src/main/java/com/ozs/service/entity/vo/Venc0.java

@@ -1,11 +0,0 @@
-package com.ozs.service.entity.vo;
-
-import lombok.Data;
-
-/**
- * @author Administrator
- */
-@Data
-public class Venc0 {
-    private Double fps;
-}

+ 11 - 11
business-service/src/main/java/com/ozs/service/service/impl/BaseCameraVersionServiceImpl.java

@@ -158,17 +158,17 @@ public class BaseCameraVersionServiceImpl extends ServiceImpl<BaseCameraVersionM
                 it.remove();
             }
         }
-        if ("3".equals(baseCameraVersionVo.getUpgradeType())){
-            log.info("cameraVersionUpgrade--------3");
-            List<BaseVersionCameraParam> baseVersionCameraParamList = baseCameraVersionVo.getBaseVersionCameraParamList();
-            for (BaseVersionCameraParam baseVersionCameraParam : baseVersionCameraParamList) {
-                if ("threshold".equals(baseVersionCameraParam.getParamKey())) {
-                    PublishClient.confidenceCoefficient(baseCameraVersionVo, baseVersionCameraParam.getParamValue());
-                } else if ("fps".equals(baseVersionCameraParam.getParamKey())) {
-                    PublishClient.configFrameRate(baseCameraVersionVo, baseVersionCameraParam.getParamValue());
-                }
-            }
-        }
+//        if ("3".equals(baseCameraVersionVo.getUpgradeType())){
+//            log.info("cameraVersionUpgrade--------3");
+//            List<BaseVersionCameraParam> baseVersionCameraParamList = baseCameraVersionVo.getBaseVersionCameraParamList();
+//            for (BaseVersionCameraParam baseVersionCameraParam : baseVersionCameraParamList) {
+//                if ("threshold".equals(baseVersionCameraParam.getParamKey())) {
+//                    PublishClient.confidenceCoefficient(baseCameraVersionVo, baseVersionCameraParam.getParamValue());
+//                } else if ("fps".equals(baseVersionCameraParam.getParamKey())) {
+//                    PublishClient.configFrameRate(baseCameraVersionVo, baseVersionCameraParam.getParamValue());
+//                }
+//            }
+//        }
         PublishClient.updateDeviceSn(baseCameraVersionVo);
         return AjaxResult.success("已经为您提交升级申请,请您到“日志管理>相机升级日志”页面查看升级结果。");
     }

+ 37 - 38
business-service/src/main/java/com/ozs/service/utils/PublishClient.java

@@ -7,14 +7,8 @@ import com.alibaba.fastjson2.filter.SimplePropertyPreFilter;
 import com.ozs.common.utils.sign.Md5Utils;
 import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.common.utils.uuid.IdUtils;
-import com.ozs.service.entity.vo.BaseCameraVersionVo;
-import com.ozs.service.entity.vo.Codec;
-import com.ozs.service.entity.vo.Data;
-import com.ozs.service.entity.vo.Heartbeat;
-import com.ozs.service.entity.vo.Param;
-import com.ozs.service.entity.vo.Svp;
-import com.ozs.service.entity.vo.UpdateDeviceSn;
-import com.ozs.service.entity.vo.Venc0;
+import com.ozs.service.entity.BaseCameraManagement;
+import com.ozs.service.entity.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
@@ -113,14 +107,20 @@ public class PublishClient {
     }
 
     public static void main(String[] args) {
-        UpdateDeviceSn updateDeviceSn = new UpdateDeviceSn();
-        updateDeviceSn.setName("UpdateRequest");
-        updateDeviceSn.setType(2);
-        updateDeviceSn.setMd5("2");
-        updateDeviceSn.setSign(IdUtils.fastSimpleUUID());
-        updateDeviceSn.setUrl("3");
-
-        String s = JSON.toJSONString(updateDeviceSn);
+        JSONObject res = new JSONObject();
+        res.put("Name", "ConfigRequest");
+        Codec codec = new Codec();
+        Venc venc = new Venc();
+        venc.setFps(Double.valueOf(11));
+        ArrayList<Venc> vencList = new ArrayList<>();
+        vencList.add(venc);
+        codec.setVenc(vencList);
+        Map<String, Object> map = new HashMap<>();
+        res.put("device_sn", "11");
+        res.put("sign", "rate" + IdUtils.fastSimpleUUID());
+        map.put("codec",codec);
+        res.put("data", map);
+        String s = JSONObject.toJSONString(res);
 
         System.out.println(s);
 
@@ -165,22 +165,24 @@ public class PublishClient {
         }
     }
 
-    public static void confidenceCoefficient(BaseCameraVersionVo baseCameraVersionVo, String value) {
+    public static void confidenceCoefficient(BaseCameraManagement baseCameraManagement, String value) {
         /**
          * 发布客户端
          */
-        for (String code : baseCameraVersionVo.getCameraCodeList()) {
             try {
                 JSONObject res = new JSONObject();
                 res.put("Name", "ConfigRequest");
-                Svp svp = new Svp();
-                Param param = new Param();
-                param.setThreshold(Double.valueOf(value));
-                svp.setParam(param);
+                Codec codec = new Codec();
+                Venc venc = new Venc();
+                venc.setFps(Double.valueOf(value));
+                ArrayList<Venc> vencList = new ArrayList<>();
+                vencList.add(venc);
+                codec.setVenc(vencList);
                 Map<String, Object> map = new HashMap<>();
-                map.put("svp", svp);
+                res.put("device_sn", baseCameraManagement.getCameraSn());
+                res.put("sign", "rate" + IdUtils.fastSimpleUUID());
+                map.put("codec",codec);
                 res.put("data", map);
-                res.put("sign", "cien" + IdUtils.fastSimpleUUID());
                 String s = JSONObject.toJSONString(res);
 
                 MqttMessage message = new MqttMessage();
@@ -191,7 +193,7 @@ public class PublishClient {
                 /**
                  * 消息保留
                  */
-//               message.setRetained(false);
+//              message.setRetained(false);
                 /**
                  * 消息内容
                  */
@@ -199,31 +201,29 @@ public class PublishClient {
                 /**
                  * 发布
                  */
-                publish(getMqttTopic("config_" + code), message);
+                publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
             } catch (MqttException e) {
                 System.out.println(e.getMessage());
             }
-        }
     }
 
-    public static void configFrameRate(BaseCameraVersionVo baseCameraVersionVo, String value) {
+    public static void configFrameRate(BaseCameraManagement baseCameraManagement,Integer mode) {
         /**
          * 发布客户端
          */
-        for (String code : baseCameraVersionVo.getCameraCodeList()) {
             try {
                 JSONObject res = new JSONObject();
-                res.put("Name", "ConfigRequest");
+                res.put("Name", "HeartRequest");
                 Codec codec = new Codec();
-                Venc0 venc0 = new Venc0();
-                venc0.setFps(Double.valueOf(value));
-                codec.setVenc0(venc0);
+                Day2night day2night = new Day2night();
+                day2night.setMode(mode);
+                codec.setDay2night(day2night);
                 Map<String, Object> map = new HashMap<>();
-                map.put("codec", codec);
-                res.put("data", map);
+                res.put("device_sn", baseCameraManagement.getCameraSn());
                 res.put("sign", "rate" + IdUtils.fastSimpleUUID());
+                map.put("codec",codec);
+                res.put("data", map);
                 String s = JSONObject.toJSONString(res);
-
                 MqttMessage message = new MqttMessage();
                 /**
                  * 保证消息能到达一次
@@ -240,11 +240,10 @@ public class PublishClient {
                 /**
                  * 发布
                  */
-                publish(getMqttTopic("config_" + code), message);
+                publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
             } catch (MqttException e) {
                 System.out.println(e.getMessage());
             }
-        }
     }
 
     @PostConstruct

+ 27 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -25,6 +25,7 @@ import com.ozs.framework.config.ServerConfig;
 import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.service.*;
+import com.ozs.service.utils.PublishClient;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictTypeService;
@@ -994,6 +995,32 @@ public class BaseCameraManagementController extends BaseController {
         return success();
     }
 
+    /**
+     * 夜视
+     * @param deviceStateResp
+     * @return
+     */
+    @GetMapping("/nightVision/{code}/{mode}")
+    public AjaxResult nightVision(@PathVariable String code,Integer mode){
+        BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(new LambdaQueryWrapper<BaseCameraManagement>()
+                .eq(BaseCameraManagement::getCameraCode, code));
+        PublishClient.configFrameRate(baseCameraManagement,mode);
+        return success();
+    }
+
+    /**
+     * 切换帧率
+     * @param code
+     * @return
+     */
+    @GetMapping("/switchFrameRate/{code}/{fps}")
+    public AjaxResult switchFrameRate(@PathVariable String code,String fps){
+        BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(new LambdaQueryWrapper<BaseCameraManagement>()
+                .eq(BaseCameraManagement::getCameraCode, code));
+        PublishClient.confidenceCoefficient(baseCameraManagement,fps);
+        return success();
+    }
+
     /**
      * 设备状态页面
      *