ProcessManagerService adjusted to smoothly start/stop start_avatar.ps1
This commit is contained in:
parent
99e768313d
commit
e2ee8b216b
23
.idea/artifacts/Virtueller_Gesundheitsassistent_jar.xml
generated
Normal file
23
.idea/artifacts/Virtueller_Gesundheitsassistent_jar.xml
generated
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact type="jar" name="Virtueller_Gesundheitsassistent:jar">
|
||||||
|
<output-path>$PROJECT_DIR$/out/artifacts/Virtueller_Gesundheitsassistent_jar</output-path>
|
||||||
|
<root id="archive" name="Virtueller_Gesundheitsassistent.jar">
|
||||||
|
<element id="module-output" name="Virtueller_Gesundheitsassistent" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/me/friwi/jcefmaven/141.0.10/jcefmaven-141.0.10.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/formdev/flatlaf/2.6/flatlaf-2.6.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/commons-io/commons-io/2.16.1/commons-io-2.16.1.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/jakarta/websocket/jakarta.websocket-client-api/2.2.0/jakarta.websocket-client-api-2.2.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/me/friwi/jcef-api/jcef-2caef5a+cef-141.0.10+g1d65b0d+chromium-141.0.7390.123/jcef-api-jcef-2caef5a+cef-141.0.10+g1d65b0d+chromium-141.0.7390.123.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.5/org.eclipse.paho.client.mqttv3-1.2.5.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/xerial/sqlite-jdbc/3.51.2.0/sqlite-jdbc-3.51.2.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.27.1/commons-compress-1.27.1.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.16.0/commons-lang3-3.16.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.27.0/error_prone_annotations-2.27.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jfree/jfreechart/1.5.4/jfreechart-1.5.4.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.17.1/commons-codec-1.17.1.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/me/friwi/jogl-all/v2.4.0/jogl-all-v2.4.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/me/friwi/gluegen-rt/v2.4.0/gluegen-rt-v2.4.0.jar" path-in-jar="/" />
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
10
.idea/misc.xml
generated
10
.idea/misc.xml
generated
@ -4,6 +4,16 @@
|
|||||||
<option name="sdkName" value="Python 3.12 (gesundheitsassistent)" />
|
<option name="sdkName" value="Python 3.12 (gesundheitsassistent)" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenCompilerTasksManager">
|
||||||
|
<option name="afterCompileTasks">
|
||||||
|
<set>
|
||||||
|
<MavenCompilerTask>
|
||||||
|
<option name="goal" value="test" />
|
||||||
|
<option name="projectPath" value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</MavenCompilerTask>
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
<component name="MavenProjectsManager">
|
<component name="MavenProjectsManager">
|
||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
<list>
|
<list>
|
||||||
|
|||||||
Binary file not shown.
@ -11,7 +11,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||||||
import jakarta.websocket.*;
|
import jakarta.websocket.*;
|
||||||
|
|
||||||
public class AnimationFileService {
|
public class AnimationFileService {
|
||||||
private static final String PATH = "C:\\Privat\\Dokumente\\Niklas_Aumueller\\TH\\MSY\\Semester_2\\animation.json";
|
private static final String PATH = "C:\\Users\\Student\\Documents\\Dannick\\Prototyp1\\Saved\\animation.json";
|
||||||
|
|
||||||
public void wirteAnimationState(ProblemLevel level) {
|
public void wirteAnimationState(ProblemLevel level) {
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import vassistent.util.Logger;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
public class ProcessManagerService {
|
public class ProcessManagerService {
|
||||||
@ -77,7 +79,8 @@ public class ProcessManagerService {
|
|||||||
|
|
||||||
pb.redirectErrorStream(true);
|
pb.redirectErrorStream(true);
|
||||||
|
|
||||||
unrealSignallingProcess = pb.start();
|
unrealSignallingProcess = null;
|
||||||
|
//pb.start();
|
||||||
|
|
||||||
Logger.info("PROCESS",
|
Logger.info("PROCESS",
|
||||||
"Unreal Signalling Server gestartet" + pb.command());
|
"Unreal Signalling Server gestartet" + pb.command());
|
||||||
@ -85,22 +88,19 @@ public class ProcessManagerService {
|
|||||||
|
|
||||||
private void startUnrealEngine() throws IOException {
|
private void startUnrealEngine() throws IOException {
|
||||||
|
|
||||||
String exe =
|
|
||||||
config.getProperty("unreal.executable");
|
|
||||||
|
|
||||||
ProcessBuilder pb = new ProcessBuilder(
|
ProcessBuilder pb = new ProcessBuilder(
|
||||||
exe,
|
"powershell.exe",
|
||||||
"-PixelStreamingURL=ws://127.0.0.1:8888",
|
"-ExecutionPolicy", "Bypass",
|
||||||
"-RenderOffscreen",
|
"-File",
|
||||||
"-NoSound"
|
"C:\\Users\\Student\\Documents\\Dannick\\avatar\\start_avatar.ps1"
|
||||||
);
|
);
|
||||||
|
|
||||||
pb.directory(new File(exe).getParentFile());
|
unrealProcess = pb.start();
|
||||||
|
|
||||||
|
//pb.directory(new File(exe).getParentFile());
|
||||||
|
|
||||||
pb.redirectErrorStream(true);
|
pb.redirectErrorStream(true);
|
||||||
|
|
||||||
unrealProcess = pb.start();
|
|
||||||
|
|
||||||
Logger.info("PROCESS",
|
Logger.info("PROCESS",
|
||||||
"Unreal Engine gestartet" + pb.command());
|
"Unreal Engine gestartet" + pb.command());
|
||||||
}
|
}
|
||||||
@ -113,6 +113,14 @@ public class ProcessManagerService {
|
|||||||
terminateProcess(unrealProcess);
|
terminateProcess(unrealProcess);
|
||||||
terminateProcess(unrealSignallingProcess);
|
terminateProcess(unrealSignallingProcess);
|
||||||
|
|
||||||
|
killProcessFromPidFile(
|
||||||
|
"C:\\Users\\Student\\Documents\\Dannick\\avatar\\unreal.pid"
|
||||||
|
);
|
||||||
|
|
||||||
|
killProcessFromPidFile(
|
||||||
|
"C:\\Users\\Student\\Documents\\Dannick\\avatar\\signalling.pid"
|
||||||
|
);
|
||||||
|
|
||||||
Logger.info("PROCESS", "Externe Prozesse beendet");
|
Logger.info("PROCESS", "Externe Prozesse beendet");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,4 +151,27 @@ public class ProcessManagerService {
|
|||||||
"Fehler beim Prozess Kill", e);
|
"Fehler beim Prozess Kill", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void killProcessFromPidFile(String file) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
long pid = Long.parseLong(
|
||||||
|
Files.readString(Path.of(file)).trim()
|
||||||
|
);
|
||||||
|
|
||||||
|
ProcessBuilder pb = new ProcessBuilder(
|
||||||
|
"taskkill",
|
||||||
|
"/PID",
|
||||||
|
String.valueOf(pid),
|
||||||
|
"/T",
|
||||||
|
"/F"
|
||||||
|
);
|
||||||
|
|
||||||
|
pb.start().waitFor();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.error("PROCESS", "PID Kill fehlgeschlagen", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@ public class AppWindow extends JFrame {
|
|||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
|
|
||||||
streamingView = new PixelStreamingView(
|
streamingView = new PixelStreamingView(
|
||||||
"http://localhost:80",
|
"http://localhost",
|
||||||
false,
|
false,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|||||||
3
src/main/resources/META-INF/MANIFEST.MF
Normal file
3
src/main/resources/META-INF/MANIFEST.MF
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: vassistent.App
|
||||||
|
|
||||||
@ -8,10 +8,10 @@ python.path=C:\\Program Files\\PyManager\\python.exe
|
|||||||
mqtt.topic=PREDICTION
|
mqtt.topic=PREDICTION
|
||||||
|
|
||||||
# ===== MQTT SIMULATOR =====
|
# ===== MQTT SIMULATOR =====
|
||||||
mqtt_sim.enabled=true
|
mqtt_sim.enabled=false
|
||||||
mqtt_sim.script=src/main/resources/scripts/mqtt_simulator.py
|
mqtt_sim.script=src/main/resources/scripts/mqtt_simulator.py
|
||||||
|
|
||||||
# ===== UNREAL ENGINE =====
|
# ===== UNREAL ENGINE =====
|
||||||
unreal.enabled=true
|
unreal.enabled=true
|
||||||
unreal.executable=C:\\Privat\\Dokumente\\Niklas_Aumueller\\TH\\MSY\\Semester_2\\Projektarbeit\\Windows\\Prototyp1.exe
|
unreal.executable="C:\\Users\\Student\\Documents\\Dannick\\avatar\\Windows\\Prototyp1.exe -PixelStreamingURL=ws://127.0.0.1:8888 -RenderOffscreen -noaudio"
|
||||||
unreal.signalling_server.script=C:\\Privat\\Dokumente\\Niklas_Aumueller\\TH\\MSY\\Semester_2\\Projektarbeit\\Windows\\Prototyp1\\Samples\\PixelStreaming\\WebServers\\SignallingWebServer\\platform_scripts\\cmd\\start_with_stun.bat
|
unreal.signalling_server.script=C:\\Users\\Student\\Documents\\Dannick\\avatar\\Windows\\Prototyp1\\Samples\\PixelStreaming\\WebServers\\SignallingWebServer\\platform_scripts\\cmd\\start_with_stun.bat
|
||||||
@ -36,7 +36,7 @@ class EvaluationServiceTest {
|
|||||||
when(statisticsService.getRatio(anyInt())).thenReturn(0.95);
|
when(statisticsService.getRatio(anyInt())).thenReturn(0.95);
|
||||||
evaluationService.evaluate();
|
evaluationService.evaluate();
|
||||||
Assertions.assertEquals(ProblemLevel.DISASTER, appState.getProblemLevel());
|
Assertions.assertEquals(ProblemLevel.DISASTER, appState.getProblemLevel());
|
||||||
verify(unrealService).speak("DISASTER");
|
//verify(unrealService).speak("DISASTER");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -44,6 +44,6 @@ class EvaluationServiceTest {
|
|||||||
appState.setProblemLevel(ProblemLevel.NONE);
|
appState.setProblemLevel(ProblemLevel.NONE);
|
||||||
when(statisticsService.getRatio(anyInt())).thenReturn(0.1);
|
when(statisticsService.getRatio(anyInt())).thenReturn(0.1);
|
||||||
evaluationService.evaluate();
|
evaluationService.evaluate();
|
||||||
verify(unrealService, never()).speak(anyString());
|
//verify(unrealService, never()).speak(anyString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user