From ff37b865449043cdb5a8d0e7d56916da31b8a8f4 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期六, 22 三月 2025 16:00:14 +0800
Subject: [PATCH] 海康摄像头温度点位接口

---
 src/main/java/com/whyc/dto/Point.java                    |   39 +++++++++++++++++++
 src/main/java/com/whyc/dto/TempPoint.java                |   35 +++++++++++++++++
 src/main/java/com/whyc/service/HikTempService.java       |   19 +++++----
 src/main/java/com/whyc/controller/HikTempController.java |    3 +
 4 files changed, 86 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/whyc/controller/HikTempController.java b/src/main/java/com/whyc/controller/HikTempController.java
index 2ff7047..764aebc 100644
--- a/src/main/java/com/whyc/controller/HikTempController.java
+++ b/src/main/java/com/whyc/controller/HikTempController.java
@@ -6,6 +6,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.IOException;
@@ -19,7 +20,7 @@
     private HikTempService service;
 
     @GetMapping("getTempPoint")
-    public Response getTempPoint(String ip) throws IOException, InterruptedException {
+    public Response getTempPoint(@RequestParam String ip) throws IOException, InterruptedException {
         return service.getTempPoint(ip);
     }
 
diff --git a/src/main/java/com/whyc/dto/Point.java b/src/main/java/com/whyc/dto/Point.java
new file mode 100644
index 0000000..363833b
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Point.java
@@ -0,0 +1,39 @@
+package com.whyc.dto;
+
+/**
+ * 鍧愭爣鐐�,鐢ㄤ簬瀹氫箟鏋佸�兼俯搴︾殑x,y鍧愭爣
+ */
+public class Point {
+    private Integer x;
+    private Integer y;
+
+
+    public Point(Integer x, Integer y) {
+        this.x = x;
+        this.y = y;
+    }
+
+    public Integer getX() {
+        return x;
+    }
+
+    public void setX(Integer x) {
+        this.x = x;
+    }
+
+    public Integer getY() {
+        return y;
+    }
+
+    public void setY(Integer y) {
+        this.y = y;
+    }
+
+    @Override
+    public String toString() {
+        return "Point{" +
+                "x=" + x +
+                ", y=" + y +
+                '}';
+    }
+}
diff --git a/src/main/java/com/whyc/dto/TempPoint.java b/src/main/java/com/whyc/dto/TempPoint.java
new file mode 100644
index 0000000..be2be70
--- /dev/null
+++ b/src/main/java/com/whyc/dto/TempPoint.java
@@ -0,0 +1,35 @@
+package com.whyc.dto;
+
+import java.util.List;
+
+/**
+ * 娓╁害鍧愭爣,鐢ㄤ簬瀹氫箟鏋佸�兼俯搴︾殑x,y鍧愭爣
+ */
+public class TempPoint {
+    private Float temp;
+    private List<Point> points;
+
+    public Float getTemp() {
+        return temp;
+    }
+
+    public void setTemp(Float temp) {
+        this.temp = temp;
+    }
+
+    public List<Point> getPoints() {
+        return points;
+    }
+
+    public void setPoints(List<Point> points) {
+        this.points = points;
+    }
+
+    @Override
+    public String toString() {
+        return "TempPoint{" +
+                "temp=" + temp +
+                ", points=" + points +
+                '}';
+    }
+}
diff --git a/src/main/java/com/whyc/service/HikTempService.java b/src/main/java/com/whyc/service/HikTempService.java
index d41ac6d..4664742 100644
--- a/src/main/java/com/whyc/service/HikTempService.java
+++ b/src/main/java/com/whyc/service/HikTempService.java
@@ -5,11 +5,8 @@
 import com.whyc.dto.Point;
 import com.whyc.dto.Response;
 import com.whyc.dto.TempPoint;
-import com.whyc.hik.ChannelParamCfg;
 import com.whyc.hik.Commom.osSelect;
-import com.whyc.hik.DevManager;
 import com.whyc.hik.NetSDKDemo.HCNetSDK;
-import com.whyc.hik.SdkSysCfg;
 import org.springframework.stereotype.Service;
 
 import java.io.FileOutputStream;
@@ -88,7 +85,7 @@
         m_strJpegWithAppendData.dwJpegPicLen = 2*1024*1024;
         m_strJpegWithAppendData.dwP2PDataLen = 2*1024*1024;
         m_strJpegWithAppendData.write();
-        Map<String, TempPoint> tempPointMap;
+        Map<String, Object> tempPointMap;
         boolean resBoolean = hCNetSDK.NET_DVR_CaptureJPEGPicture_WithAppendData(lUserID, 2, m_strJpegWithAppendData);
         if (resBoolean) {
             System.out.println("鎶撳浘鎴愬姛");
@@ -105,7 +102,7 @@
             fos.write(pP2PDataBuff.getByteArray(0, m_strJpegWithAppendData.dwP2PDataLen), 0, m_strJpegWithAppendData.dwP2PDataLen);
 
             //鑾峰彇绾㈠缁撴灉骞惰В鏋�
-            tempPointMap = analyzeData(m_strJpegWithAppendData.dwP2PDataLen, cFilename, cFilename2);
+            tempPointMap = analyzeData(m_strJpegWithAppendData, cFilename, cFilename2);
         }else {
             System.out.printf("鎶撶儹鍥惧け璐�:%s",hCNetSDK.NET_DVR_GetLastError());
             return new Response().set(1,false,String.format("鎶撶儹鍥惧け璐�:%s",hCNetSDK.NET_DVR_GetLastError()));
@@ -264,14 +261,16 @@
         return true;
     }
 
-    public Map<String,TempPoint> analyzeData(int dwP2PDataLen, String cFilename, String cFilename2) throws IOException {
-        Map<String,TempPoint> tempMap = new HashMap<String, TempPoint>();
+    public Map<String,Object> analyzeData(HCNetSDK.NET_DVR_JPEGPICTURE_WITH_APPENDDATA m_strJpegWithAppendData, String cFilename, String cFilename2) throws IOException {
+        Map<String,Object> tempMap = new LinkedHashMap<>();
         // 鎵撳紑鏈湴淇濆瓨鐨勬枃浠�
         String inputFilename = cFilename;
         String outputFilename = cFilename2;
 
-        int m_AnalysisHotPic_W = 384; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚瀹絛wJpegPicWidth杩涜璧嬪��
-        int m_AnalysisHotPic_H = 288; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚楂榙wJpegPicHeight杩涜璧嬪��
+        //int m_AnalysisHotPic_W = 384; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚瀹絛wJpegPicWidth杩涜璧嬪��
+        //int m_AnalysisHotPic_H = 288; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚楂榙wJpegPicHeight杩涜璧嬪��
+        int m_AnalysisHotPic_W = m_strJpegWithAppendData.dwJpegPicWidth; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚瀹絛wJpegPicWidth杩涜璧嬪��
+        int m_AnalysisHotPic_H = m_strJpegWithAppendData.dwJpegPicHeight; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚楂榙wJpegPicHeight杩涜璧嬪��
         int bufSize = m_AnalysisHotPic_H * m_AnalysisHotPic_W * 4;
 
         try (RandomAccessFile datafilefp = new RandomAccessFile(inputFilename, "r");
@@ -347,6 +346,8 @@
 
             System.out.println("Min Temperature: " + minTempPoint);
             System.out.println("Max Temperature: " + maxTempPoint);
+            tempMap.put("pixelX",m_strJpegWithAppendData.dwJpegPicWidth);
+            tempMap.put("pixelY",m_strJpegWithAppendData.dwJpegPicHeight);
             tempMap.put("minTempPoint",minTempPoint);
             tempMap.put("maxTempPoint",maxTempPoint);
         }

--
Gitblit v1.9.1