From 1fedb1d2bc267cb09372a1b72c299a3e7b9b7040 Mon Sep 17 00:00:00 2001 From: naumueller <> Date: Wed, 4 Feb 2026 00:12:04 +0100 Subject: [PATCH 1/3] Resources, README created --- README.md | 18 ++++++++++ .../virtueller_gesundheitsassistent/App.java | 34 +++++++++++++++---- .../view/MainView.fxml | 0 .../view/components/AvatarView.fxml | 0 .../view/components/CameraView.fxml | 0 .../view/designs/CompactView.fxml | 0 .../view/designs/DashboardView.fxml | 0 .../view/designs/ImmersiveView.fxml | 0 .../view/designs/MinimalView.fxml | 0 9 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 README.md rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/components/AvatarView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/components/CameraView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/designs/CompactView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/designs/DashboardView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/designs/ImmersiveView.fxml (100%) rename src/main/{java => resources}/efi/projekt/virtueller_gesundheitsassistent/view/designs/MinimalView.fxml (100%) diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a75db0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +Virtueller Gesundheitsassistent +Überblick +Dieses Projekt implementiert einen virtuellen Gesundheits- und Fahrassistenten +auf Basis von JavaFX. Die Anwendung visualisiert den aktuellen Zustand des +Fahrers (z.B. Müdigkeit, Ablenkung, Stress) und integriert: +- ein ML-Modell, das Zustände klassifiziert +- eine JavaFX-GUI mit mehreren Designvarianten +- OpenCV für Kamera-Preview +- Unreal Engine Pixel Streaming für einen sprechenden Avatar +- WebSocket-Kommunikation zur Steuerung des Avatars + +Features +Architektur +Services +Views & UI-Struktur +Java-Version & Build +MQTT & Datenfluss +OpenCV \ No newline at end of file diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java index 9feade9..92d58ca 100644 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java @@ -1,5 +1,8 @@ package efi.projekt.virtueller_gesundheitsassistent; +import efi.projekt.virtueller_gesundheitsassistent.service.ClassificationService; +import efi.projekt.virtueller_gesundheitsassistent.service.MqttClientService; +import efi.projekt.virtueller_gesundheitsassistent.service.UnrealWebSocketService; import java.io.IOException; import javafx.application.Application; import static javafx.application.Application.launch; @@ -17,13 +20,31 @@ public class App extends Application { @Override public void start(Stage primaryStage) throws IOException { - // Lade FXML - FXMLLoader loader = new FXMLLoader(getClass().getResource("/efi/projekt/virtueller_gesundheitsassistent/view/FxView.fxml")); - Parent root = loader.load(); - // Erzeuge Model & ViewModel + // ========================= + // Services initialisieren + // ========================= + + // MQTT + MqttClientService mqttClientService = new MqttClientService(); + new ClassificationService(mqttClientService); + + // Unreal WebSocket + // new UnrealWebSocketService("ws://localhost;8080/avatar"); + + + + // ========================= + // UI laden + // ========================= + + FXMLLoader loader = new FXMLLoader( + getClass().getResource( + "/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml" + ) + ); - Scene scene = new Scene(root, 1280, 720); + Scene scene = new Scene(loader.load(), 1400, 900); primaryStage.setTitle("Virtueller Gesundheitsassistent"); primaryStage.setScene(scene); @@ -38,7 +59,6 @@ public class App extends Application { } public static void main(String[] args) { - launch(); + launch(args); } - } \ No newline at end of file diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/MainView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/components/AvatarView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/components/AvatarView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/components/AvatarView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/components/AvatarView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/components/CameraView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/components/CameraView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/components/CameraView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/components/CameraView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/CompactView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/CompactView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/CompactView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/CompactView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/DashboardView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/DashboardView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/DashboardView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/DashboardView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/ImmersiveView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/ImmersiveView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/ImmersiveView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/ImmersiveView.fxml diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/MinimalView.fxml b/src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/MinimalView.fxml similarity index 100% rename from src/main/java/efi/projekt/virtueller_gesundheitsassistent/view/designs/MinimalView.fxml rename to src/main/resources/efi/projekt/virtueller_gesundheitsassistent/view/designs/MinimalView.fxml -- 2.47.2 From b68cbe795cd3b41e69fd578da6cf95ccb5b724ac Mon Sep 17 00:00:00 2001 From: naumueller <> Date: Tue, 10 Feb 2026 21:07:05 +0100 Subject: [PATCH 2/3] Persistence, Statistics and Evaluation Logic added. Tests still pending --- pom.xml | 5 ++ .../virtueller_gesundheitsassistent/App.java | 3 - .../model/AppState.java | 26 +++++++++ .../model/AssistantState.java | 34 ------------ .../model/ClassificationType.java | 13 ----- .../model/ProblemLevel.java | 12 ++++ .../service/ClassificationService.java | 37 ------------- .../service/DataPersistenceService.java | 55 +++++++++++++++++++ .../service/EvaluationService.java | 51 +++++++++++++++++ .../service/StateService.java | 6 +- .../service/StatisticsService.java | 46 ++++++++++++++++ src/main/java/module-info.java | 1 + 12 files changed, 199 insertions(+), 90 deletions(-) create mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AppState.java delete mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AssistantState.java delete mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ClassificationType.java create mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ProblemLevel.java delete mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/ClassificationService.java create mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/DataPersistenceService.java create mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java create mode 100644 src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StatisticsService.java diff --git a/pom.xml b/pom.xml index 119a984..7524240 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,11 @@ 4.12.0 jar + + org.xerial + sqlite-jdbc + 3.51.1.0 + diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java index 92d58ca..bfbbfa4 100644 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java @@ -1,8 +1,6 @@ package efi.projekt.virtueller_gesundheitsassistent; -import efi.projekt.virtueller_gesundheitsassistent.service.ClassificationService; import efi.projekt.virtueller_gesundheitsassistent.service.MqttClientService; -import efi.projekt.virtueller_gesundheitsassistent.service.UnrealWebSocketService; import java.io.IOException; import javafx.application.Application; import static javafx.application.Application.launch; @@ -27,7 +25,6 @@ public class App extends Application { // MQTT MqttClientService mqttClientService = new MqttClientService(); - new ClassificationService(mqttClientService); // Unreal WebSocket // new UnrealWebSocketService("ws://localhost;8080/avatar"); diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AppState.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AppState.java new file mode 100644 index 0000000..73f045e --- /dev/null +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AppState.java @@ -0,0 +1,26 @@ +package efi.projekt.virtueller_gesundheitsassistent.model; + +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; + +/** + * + * @author naumueller + */ +public class AppState { + + private final ObjectProperty problemLevel = + new SimpleObjectProperty<>(ProblemLevel.NONE); + + public ObjectProperty problemLevelProperty() { + return problemLevel; + } + + public ProblemLevel getProblemLevel() { + return problemLevel.get(); + } + + public void setProblemLevel(ProblemLevel level) { + problemLevel.set(level); + } +} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AssistantState.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AssistantState.java deleted file mode 100644 index 963e25b..0000000 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/AssistantState.java +++ /dev/null @@ -1,34 +0,0 @@ -package efi.projekt.virtueller_gesundheitsassistent.model; - -import javafx.beans.property.BooleanProperty; -import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleObjectProperty; - -/** - * - * @author naumueller - */ -public class AssistantState { - - private final ObjectProperty classification = - new SimpleObjectProperty<>(ClassificationType.NORMAL); - - private final BooleanProperty speaking = - new SimpleBooleanProperty(false); - - private final BooleanProperty monitoring = - new SimpleBooleanProperty(true); - - public ObjectProperty classificationProperty() { - return classification; - } - - public BooleanProperty speakingProperty() { - return speaking; - } - - public BooleanProperty monitoringProperty() { - return monitoring; - } -} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ClassificationType.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ClassificationType.java deleted file mode 100644 index 1c6da2f..0000000 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ClassificationType.java +++ /dev/null @@ -1,13 +0,0 @@ -package efi.projekt.virtueller_gesundheitsassistent.model; - -/** - * - * @author naumueller - */ -public enum ClassificationType { - NORMAL, - MUEDIGKEIT, - ABLENKUNG, - STRESS, - REAKTION -} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ProblemLevel.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ProblemLevel.java new file mode 100644 index 0000000..52149d3 --- /dev/null +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/model/ProblemLevel.java @@ -0,0 +1,12 @@ +package efi.projekt.virtueller_gesundheitsassistent.model; + +/** + * + * @author naumueller + */ +public enum ProblemLevel { + NONE, + WARNING, + HIGH, + DISASTER +} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/ClassificationService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/ClassificationService.java deleted file mode 100644 index 57811b4..0000000 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/ClassificationService.java +++ /dev/null @@ -1,37 +0,0 @@ -package efi.projekt.virtueller_gesundheitsassistent.service; - -import efi.projekt.virtueller_gesundheitsassistent.model.ClassificationType; -import efi.projekt.virtueller_gesundheitsassistent.util.Logger; -import javafx.application.Platform; - -/** - * - * @author naumueller - */ -public class ClassificationService { - - private static final String TOPIC = "Text"; - - public ClassificationService(MqttClientService mqtt) { - - mqtt.subscribe(TOPIC, payload -> { - - ClassificationType type = switch (payload) { - case "0" -> ClassificationType.NORMAL; - case "1" -> ClassificationType.MUEDIGKEIT; - case "2" -> ClassificationType.ABLENKUNG; - case "3" -> ClassificationType.REAKTION; - case "4" -> ClassificationType.STRESS; - default -> ClassificationType.NORMAL; - }; - - Logger.info("STATE", "Neue Klassifizierung: " + type); - - Platform.runLater(() -> - StateService.getState() - .classificationProperty() - .set(type) - ); - }); - } -} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/DataPersistenceService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/DataPersistenceService.java new file mode 100644 index 0000000..955d329 --- /dev/null +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/DataPersistenceService.java @@ -0,0 +1,55 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package efi.projekt.virtueller_gesundheitsassistent.service; + +import efi.projekt.virtueller_gesundheitsassistent.util.Logger; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.time.LocalDateTime; + +/** + * + * @author naumueller + */ +public class DataPersistenceService { + + private static final String DB_URL = "jdbc:sqlite:data/health.db"; + + public DataPersistenceService() { + init(); + } + + private void init() { + try ( + Connection c = DriverManager.getConnection(DB_URL); Statement s = c.createStatement()) { + + s.execute(""" + CREATE TABLE IF NOT EXISTS binary_event ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + value INTEGER NOT NULL, + timestamp DATETIME NOT NULL + ) + """); + + Logger.info("DB", "Datenbank initialisiert"); + + } catch (SQLException e) { + Logger.error("DB", "Datenbank initialisierung fehlgeschlagen", e); + } + } + + public void store(int value) { + try (Connection c = DriverManager.getConnection(DB_URL); PreparedStatement ps = c.prepareStatement("INSERT INTO binary_event (value, timestamp) VALUES (?, ?)")) { + ps.setInt(1, value); + ps.setString(2, LocalDateTime.now().toString()); + ps.executeUpdate(); + } catch (SQLException e) { + Logger.error("DB", "Database Insert fehlgeschlagen", e); + } + } +} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java new file mode 100644 index 0000000..4cd1e1c --- /dev/null +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java @@ -0,0 +1,51 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package efi.projekt.virtueller_gesundheitsassistent.service; + +import efi.projekt.virtueller_gesundheitsassistent.model.AppState; +import efi.projekt.virtueller_gesundheitsassistent.model.ProblemLevel; + +/** + * + * @author naumueller + */ +public class EvaluationService { + + private final StatisticsService statisticsService; + private final AppState appState; + private final UnrealWebSocketService unrealService; + + public EvaluationService( + StatisticsService statisticsService, + AppState appState, + UnrealWebSocketService unrealService + ) { + + this.statisticsService = statisticsService; + this.appState = appState; + this.unrealService = unrealService; + } + + public void evaluate() { + double ratio = statisticsService.getRatio(10); + + ProblemLevel level; + + if (ratio >= 0.9) { + level = ProblemLevel.DISASTER; + } else if (ratio >= 0.7) { + level = ProblemLevel.HIGH; + } else if (ratio >= 0.4) { + level = ProblemLevel.WARNING; + } else { + level = ProblemLevel.NONE; + } + + if (level != appState.getProblemLevel()) { + appState.setProblemLevel(level); + unrealService.speak(level.name()); + } + } +} diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StateService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StateService.java index ea8db4e..3936a64 100644 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StateService.java +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StateService.java @@ -1,6 +1,6 @@ package efi.projekt.virtueller_gesundheitsassistent.service; -import efi.projekt.virtueller_gesundheitsassistent.model.AssistantState; +import efi.projekt.virtueller_gesundheitsassistent.model.AppState; /** * @@ -8,11 +8,11 @@ import efi.projekt.virtueller_gesundheitsassistent.model.AssistantState; */ public class StateService { - private static final AssistantState STATE = new AssistantState(); + private static final AppState STATE = new AppState(); private StateService() {} - public static AssistantState getState() { + public static AppState getState() { return STATE; } } diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StatisticsService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StatisticsService.java new file mode 100644 index 0000000..a0bdc8b --- /dev/null +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/StatisticsService.java @@ -0,0 +1,46 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package efi.projekt.virtueller_gesundheitsassistent.service; + +import efi.projekt.virtueller_gesundheitsassistent.util.Logger; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * + * @author naumueller + */ +public class StatisticsService { + + private static final String DB_URL = "jdbc:sqlite:data/health.db"; + + public double getRatio(int lastN) { + String query = """ + SELECT AVG(value) + FROM ( + SELECT value + FROM binary_event + ORDER BY timestamp DESC + LIMIT ? + ) + """; + + try (Connection c = DriverManager.getConnection(DB_URL); PreparedStatement ps = c.prepareStatement(query)) { + ps.setInt(1, lastN); + + ResultSet rs = ps.executeQuery(); + if (rs.next()) { + return rs.getDouble(1); + } + } catch (SQLException e) { + Logger.error("Evaluation", "Couldn't get ratio.", e); + } + + return 0.0; + } +} diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 1b6dc33..b4aca24 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -6,6 +6,7 @@ module efi.projekt.virtueller_gesundheitsassistent { requires javafx.web; requires jakarta.websocket.client; requires opencv; + requires java.sql; opens efi.projekt.virtueller_gesundheitsassistent to javafx.fxml; -- 2.47.2 From e7b13fb896d30678edf0917930c21a89472e511f Mon Sep 17 00:00:00 2001 From: naumueller <> Date: Wed, 11 Feb 2026 17:57:47 +0100 Subject: [PATCH 3/3] EvaluationService with new thresholds and App with Service-init --- .../virtueller_gesundheitsassistent/App.java | 31 ++++++++++++++++--- .../service/EvaluationService.java | 4 +-- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java index bfbbfa4..1977a02 100644 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/App.java @@ -1,6 +1,11 @@ package efi.projekt.virtueller_gesundheitsassistent; +import efi.projekt.virtueller_gesundheitsassistent.model.AppState; +import efi.projekt.virtueller_gesundheitsassistent.service.DataPersistenceService; +import efi.projekt.virtueller_gesundheitsassistent.service.EvaluationService; import efi.projekt.virtueller_gesundheitsassistent.service.MqttClientService; +import efi.projekt.virtueller_gesundheitsassistent.service.StatisticsService; +import efi.projekt.virtueller_gesundheitsassistent.service.UnrealWebSocketService; import java.io.IOException; import javafx.application.Application; import static javafx.application.Application.launch; @@ -16,6 +21,15 @@ import javafx.stage.Stage; */ public class App extends Application { + private final AppState appState = new AppState(); + + // Services + private DataPersistenceService persistenceService; + private StatisticsService statisticsService; + private EvaluationService evaluationService; + private UnrealWebSocketService unrealService; + private MqttClientService mqttService; + @Override public void start(Stage primaryStage) throws IOException { @@ -23,11 +37,20 @@ public class App extends Application { // Services initialisieren // ========================= - // MQTT - MqttClientService mqttClientService = new MqttClientService(); + // Unreal-WebService + unrealService = new UnrealWebSocketService("127.0.0.1"); + + // MQTT-Service + mqttService = new MqttClientService(); - // Unreal WebSocket - // new UnrealWebSocketService("ws://localhost;8080/avatar"); + // Datenbank initialisieren + persistenceService = new DataPersistenceService(); + + // Statistik-Service + statisticsService = new StatisticsService(); + + // Evaluationsservice + evaluationService = new EvaluationService(statisticsService, appState, unrealService); diff --git a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java index 4cd1e1c..1e67062 100644 --- a/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java +++ b/src/main/java/efi/projekt/virtueller_gesundheitsassistent/service/EvaluationService.java @@ -35,9 +35,9 @@ public class EvaluationService { if (ratio >= 0.9) { level = ProblemLevel.DISASTER; - } else if (ratio >= 0.7) { + } else if (ratio >= 0.8) { level = ProblemLevel.HIGH; - } else if (ratio >= 0.4) { + } else if (ratio >= 0.5) { level = ProblemLevel.WARNING; } else { level = ProblemLevel.NONE; -- 2.47.2