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