From 7c4d3d957c431aad12f90511770e2fe429bcd380 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 24 十二月 2024 16:38:25 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java | 35 ++++++++++++++++++++++++-----------
1 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
index c8046ed..2a6d863 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
@@ -85,6 +85,26 @@
});
}
+ private File pythonFile = null;
+
+ private File loadPythonFile() {
+ File scriptFile = null;
+ try {
+ Resource resource = new ClassPathResource("agv.py");
+
+ InputStream is = resource.getInputStream();
+ scriptFile = File.createTempFile("agv", ".py");
+ scriptFile.deleteOnExit();
+
+ Files.copy(is, scriptFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
+
+ scriptFile.setExecutable(true);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return scriptFile;
+ }
+
public void calcWaveScope() {
Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
boolean lockAcquired = false;
@@ -102,20 +122,13 @@
AgvModel agvModel = agvModelService.selectByType(AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()); // can be optimized
Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR);
- Resource resource = new ClassPathResource("agv.py");
-
- File tempScript = null;
-
- InputStream is = resource.getInputStream();
- tempScript = File.createTempFile("agv", ".py");
- tempScript.deleteOnExit();
-
- Files.copy(is, tempScript.toPath(), StandardCopyOption.REPLACE_EXISTING);
- tempScript.setExecutable(true);
+ if (null == pythonFile) {
+ pythonFile = loadPythonFile();
+ }
ProcessBuilder processBuilder = new ProcessBuilder(
"python" // 鎴栬�� "python3" 鍙栧喅浜庣郴缁熼厤缃�
- , tempScript.getAbsolutePath()
+ , pythonFile.getAbsolutePath()
, String.valueOf(avoidDistance)
, redisProperties.getHost()
, redisProperties.getPassword()
--
Gitblit v1.9.1