From 97629da6a002b534da10f828187fd6cd65941aa4 Mon Sep 17 00:00:00 2001 From: dcb <xgybdcb@163.com> Date: 星期一, 07 七月 2025 17:14:13 +0800 Subject: [PATCH] 模拟间隔支持毫秒级 --- src/main/java/com/se/nsl/service/RealTimeSimulationService.java | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java index 9c1622b..308b480 100644 --- a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java +++ b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java @@ -50,7 +50,7 @@ private RealTimeSimulationConfig rtsConfig; private static final long MILLIS_OF_ONE_DAY = 86400000; - public String realTimeSimulate(Simu simu) throws IOException { + public String startSimulation(Simu simu) throws IOException { InputStream stream = RealTimeSimulationService.class.getResourceAsStream("/device_info.json"); List<DeviceInfo> deviceInfos = mapper.readValue(stream, mapper.getTypeFactory().constructCollectionType(List.class, DeviceInfo.class)); @@ -181,18 +181,19 @@ String serviceNameDirPath = serviceNameDir.getAbsolutePath(); configVo.setTerrain(serviceNameDirPath + File.separator + DEM_TIF); configVo.setLanduse(serviceNameDirPath + File.separator + "Landuse.tif"); + configVo.setEvaporation(config.getEvaporation()); File stationFile = new File(serviceNameDir, "Station.tif"); if (stationFile.exists()) { configVo.setStation(stationFile.getAbsolutePath()); } int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s - int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂� + Double realTimeInterval = rtsConfig.getFrameInterval(); //姣忓抚鐨勯棿闅旀椂闂� List<String> rainGauge = new ArrayList<>(); rainGauge.add(newDatFile.getAbsolutePath());//raingage file rainGauge.add("mm/min"); configVo.setRaingage(rainGauge); String saveName = serviceNameDir + File.separator + RESULT_ZARR; - ResultVo result = new ResultVo(saveName, realTimeSimulateTime / realTimeInterval, + ResultVo result = new ResultVo(saveName, (int) (realTimeSimulateTime / realTimeInterval), realTimeInterval,"continue", null); result.setSave_interval(realTimeInterval); result.setSave_timestamp0(TimeFormatUtil.formatTime(currentTime, YYYY_MM_DD_HH_MM_SS)); @@ -211,7 +212,7 @@ configVo.setStation(stationFile.getAbsolutePath()); } int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s - int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂� + Double realTimeInterval = rtsConfig.getFrameInterval(); //姣忓抚鐨勯棿闅旀椂闂� configVo.getRaingage().set(0, newDatFile.getAbsolutePath()); //raingage file ResultVo result = configVo.getResult(); Integer lastFrames = result.getLastFrames(); @@ -219,10 +220,10 @@ lastFrames = 0; } Integer saveStart = result.getSave_start(); - Integer saveInterval = result.getSave_interval(); + Double saveInterval = result.getSave_interval(); Integer saveFrames = result.getSave_frames(); - int newStartPoint = saveStart + (saveFrames - lastFrames) * saveInterval; - int newSaveFrames = saveFrames + (realTimeSimulateTime / realTimeInterval); + int newStartPoint = (int) (saveStart + (saveFrames - lastFrames) * saveInterval); + int newSaveFrames = (int) (saveFrames + (realTimeSimulateTime / realTimeInterval)); result.setSave_start(newStartPoint); //璧峰鏃堕棿瑕佸湪涓婃鏃堕棿鐨勫熀纭�涓婂紑濮� result.setLastFrames(saveFrames); result.setSave_frames(newSaveFrames); //淇濈暀5甯э紝鍦ㄥ師鏉ョ殑鍩虹涓婂鍔�5甯� -- Gitblit v1.9.3