From 594271831da00421a30afae28f852a321ed62a27 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Thu, 16 Jan 2025 11:43:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=8E=E6=B2=B9=E8=89=B2=E8=B0=B1?= =?UTF-8?q?=E5=9B=BE=E6=96=87=E4=BB=B6=E8=AF=BB=E5=8F=96=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E6=88=90java=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xydl/cac/model/spectrogram/YspModel.java | 30 ++++++++++++++++--- .../xydl/cac/model/spectrogram/YspWay.java | 21 +++++++++++-- .../cac/model/spectrogram/YspWayHump.java | 19 +++++++++++- .../xydl/cac/spectrogram/ProcessorYsp.java | 23 +++++++++++++- .../cac/spectrogram/SpectrogramHandler.java | 4 ++- 5 files changed, 87 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/xydl/cac/model/spectrogram/YspModel.java b/src/main/java/com/xydl/cac/model/spectrogram/YspModel.java index 71433d3..cab0d54 100644 --- a/src/main/java/com/xydl/cac/model/spectrogram/YspModel.java +++ b/src/main/java/com/xydl/cac/model/spectrogram/YspModel.java @@ -2,17 +2,39 @@ package com.xydl.cac.model.spectrogram; import lombok.Data; +import java.io.DataInputStream; +import java.util.ArrayList; import java.util.List; @Data public class YspModel extends SpectrogramModel { + Integer code; + Integer length; Long createTime; Integer flag; Float xInterval; Float yMax; - String xUnit; - String yUnit; + Integer xUnit; + Integer yUnit; Integer k; - Integer num; - List wayList; + Integer m; + List wayList = new ArrayList<>(); + + public void readFrom(DataInputStream dis) throws Exception { + code = dis.read(); + length = dis.readInt(); + createTime = dis.readLong(); + flag = dis.read(); + xInterval = dis.readFloat(); + yMax = dis.readFloat(); + xUnit = dis.read(); + yUnit = dis.read(); + k = dis.readInt(); + m = dis.read(); + for (int i = 0; i < m; i++) { + YspWay way = new YspWay(); + way.readFrom(dis, k); + wayList.add(way); + } + } } diff --git a/src/main/java/com/xydl/cac/model/spectrogram/YspWay.java b/src/main/java/com/xydl/cac/model/spectrogram/YspWay.java index a2cbaf6..a3d7f64 100644 --- a/src/main/java/com/xydl/cac/model/spectrogram/YspWay.java +++ b/src/main/java/com/xydl/cac/model/spectrogram/YspWay.java @@ -2,11 +2,26 @@ package com.xydl.cac.model.spectrogram; import lombok.Data; +import java.io.DataInputStream; +import java.util.ArrayList; import java.util.List; @Data public class YspWay { - Integer count; - List humpList; - List valueList; + Integer n; + List humpList = new ArrayList<>(); + List valueList = new ArrayList<>(); + + public void readFrom(DataInputStream dis, Integer k) throws Exception { + n = dis.read(); + for (int i = 0; i < n; i++) { + YspWayHump hump = new YspWayHump(); + hump.readFrom(dis); + humpList.add(hump); + } + for (int i = 0; i < k; i++) { + Float v = dis.readFloat(); + valueList.add(v); + } + } } diff --git a/src/main/java/com/xydl/cac/model/spectrogram/YspWayHump.java b/src/main/java/com/xydl/cac/model/spectrogram/YspWayHump.java index 1c7359c..44c6643 100644 --- a/src/main/java/com/xydl/cac/model/spectrogram/YspWayHump.java +++ b/src/main/java/com/xydl/cac/model/spectrogram/YspWayHump.java @@ -2,13 +2,30 @@ package com.xydl.cac.model.spectrogram; import lombok.Data; +import java.io.DataInputStream; + @Data public class YspWayHump { String name; - Integer number; + Integer j; Float time; Float startTime; Float endTime; Float high; Float area; + + public void readFrom(DataInputStream dis) throws Exception { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 10; i++) { + char c = (char) dis.readByte(); + sb.append(c); + } + name = sb.toString(); + j = dis.read(); + time = dis.readFloat(); + startTime = dis.readFloat(); + endTime = dis.readFloat(); + high = dis.readFloat(); + area = dis.readFloat(); + } } diff --git a/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java b/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java index 07a03d5..af27b64 100644 --- a/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java +++ b/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java @@ -1,13 +1,34 @@ package com.xydl.cac.spectrogram; +import com.xydl.cac.model.spectrogram.YspModel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.io.DataInputStream; +import java.io.FileInputStream; + @Service @Slf4j public class ProcessorYsp { - public void process(String localFilePath) { + public YspModel process(String localFilePath) { + try (DataInputStream dis = new DataInputStream(new FileInputStream(localFilePath))) { + YspModel model = this.readOneBlock(dis); + return model; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + private YspModel readOneBlock(DataInputStream dis) throws Exception { + YspModel model = new YspModel(); + model.readFrom(dis); + return model; + } + public static void main(String[] args) { + ProcessorYsp processorYsp = new ProcessorYsp(); + processorYsp.process("C:/Code/cac/谱图文件/0312B12000042A3840001_203_07_20250113163055.dat"); } } diff --git a/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java b/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java index 2b82d31..a1f9013 100644 --- a/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java +++ b/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java @@ -1,5 +1,6 @@ package com.xydl.cac.spectrogram; +import com.xydl.cac.model.spectrogram.SpectrogramModel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -15,9 +16,10 @@ public class SpectrogramHandler { public void processFile(Integer typeId, String localFilePath) { // 油色谱谱图 if (typeId == 1) { - processorYsp.process(localFilePath); + SpectrogramModel model = processorYsp.process(localFilePath); } else { log.error("缺少该类型" + typeId + "的谱图处理模块"); } } + }