From 9b63c2f3c4c08105be2d267407d97e7e5e30fad6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 02 十二月 2024 17:59:00 +0800
Subject: [PATCH] 1

---
 src/main/java/com/se/simu/service/Hdf5Service.java |   27 ++++++++++++++++++++-------
 libs/jarhdf5-3.3.2.jar                             |    0 
 pom.xml                                            |   18 +++++++++++++++---
 3 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/libs/jarhdf5-3.3.2.jar b/libs/jarhdf5-3.3.2.jar
new file mode 100644
index 0000000..70f758b
--- /dev/null
+++ b/libs/jarhdf5-3.3.2.jar
Binary files differ
diff --git a/pom.xml b/pom.xml
index b2a4172..caa8009 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,8 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.7.18</version>
+        <!--<version>2.7.18</version>-->
+        <version>2.6.4</version>
         <relativePath/>
     </parent>
     <packaging>jar</packaging>
@@ -142,11 +143,22 @@
             <version>2.9.3</version>
         </dependency>
         <!--hdf5-->
-        <dependency>
+        <!--<dependency>
             <groupId>org.hdfgroup</groupId>
             <artifactId>hdf-java</artifactId>
             <version>2.6.1</version>
-        </dependency>
+        </dependency>-->
+        <!--<dependency>
+            <groupId>org.hdfgroup</groupId>
+            <artifactId>jarhdf5</artifactId>
+            <version>3.3.2</version>
+        </dependency>-->
+        <dependency>
+            <groupId>hdf.hdf5lib</groupId>
+            <artifactId>h5</artifactId>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/libs/jarhdf5-3.3.2.jar</systemPath>
+        </dependency><!---->
     </dependencies>
 
     <build>
diff --git a/src/main/java/com/se/simu/service/Hdf5Service.java b/src/main/java/com/se/simu/service/Hdf5Service.java
index 2cd1f67..b7eb05e 100644
--- a/src/main/java/com/se/simu/service/Hdf5Service.java
+++ b/src/main/java/com/se/simu/service/Hdf5Service.java
@@ -5,11 +5,11 @@
 import com.se.simu.domain.dto.LayerDto;
 import com.se.simu.domain.dto.ResultDto;
 import com.se.simu.domain.po.DataPo;
-import lombok.extern.slf4j.Slf4j;
-import ncsa.hdf.hdf5lib.H5;
-import ncsa.hdf.hdf5lib.HDF5Constants;
-import org.springframework.stereotype.Service;
 
+import hdf.hdf5lib.H5;
+import hdf.hdf5lib.HDF5Constants;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.File;
 
@@ -35,6 +35,7 @@
         process(dto, layer);
     }
 
+    // https://blog.51cto.com/u_16213355/12235346
     private void process(ResultDto dto, LayerDto layer) throws Exception {
         int fileId = 0;
         int datasetId = 0;
@@ -44,7 +45,18 @@
             fileId = H5.H5Fopen(dto.getH5Path(), HDF5Constants.H5F_ACC_RDONLY, HDF5Constants.H5P_DEFAULT);
             if (fileId == 0) return;
 
-            datasetId = H5.H5Dopen(fileId, "data");
+            // H5F_OBJ_DATASET,H5E_DATASET,H5G_DATASET=1,
+            //int dsCount = H5.H5Fget_obj_count(fileId, HDF5Constants.H5G_DATASET);
+            //for (int i = 0; i < dsCount; i++) {
+            //    System.out.println("Dataset: " + "");
+            //}
+
+            //datasetId = H5.H5Dopen(fileId, "", HDF5Constants.H5P_DEFAULT);
+
+            int groupId = H5.H5Gopen(fileId, "data");
+            if (groupId == 0) return;
+
+            /*datasetId = H5.H5Dopen(fileId, "data", HDF5Constants.H5P_DEFAULT);
             if (datasetId == 0) return;
 
             // 鑾峰彇鏁版嵁闆嗙殑缁村害
@@ -57,11 +69,12 @@
             int herr = H5.H5Dread(datasetId, HDF5Constants.H5T_NATIVE_INT, HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, HDF5Constants.H5P_DEFAULT, buffer);
 
             // 杈撳嚭璇诲彇鍒扮殑鏁版嵁
-            System.out.println(buffer[0]);
+            System.out.println(buffer[0]);*/
+
+            H5.H5Dclose(groupId);
         } catch (Exception ex) {
             ex.printStackTrace();
         } finally {
-            if (datasetId > 0) H5.H5Dclose(datasetId);
             if (fileId > 0) H5.H5Dclose(fileId);
         }
     }

--
Gitblit v1.9.3