diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/MainApp.class b/Praktikum/VINF_MaerklinControl/bin/gui/MainApp.class index d1bc6059aa050e2c06bbb3b9be55f174a6c28c3c..67a8e26df7da05a7d1adc22d906d86af0f829128 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/MainApp.class and b/Praktikum/VINF_MaerklinControl/bin/gui/MainApp.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController$1.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController$1.class index 8a1705c8c565be6d30afac690cb28db1b5505e45..bbaaca2ed86652e45302461af36e8e8a53323fab 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController$1.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController$1.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController.class index 53db6af0fef88ce05f017d0770de6b5df7ec4b20..9e5035f048599bfb7d9a77ba59c9cfba7bac826b 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/EngineController.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/RootLayoutController.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/RootLayoutController.class index b4140357c2889d53743a6e76e50633463ec60f71..788da3721828d30c851e5caaef548b61a9a1aaae 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/RootLayoutController.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/RootLayoutController.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/SettingsController.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/SettingsController.class index ea4c300665f0836cdbfbbe5e16a462e625317a18..452c6fc6ce0a59a4897dd1510c42cb5193b24593 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/SettingsController.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/SettingsController.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl$1.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl$1.class index b3aca2314b3b8a4b7116cb336e9323fb0af5bbb5..a4459978b00983113e466821b5d7de759925669d 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl$1.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl$1.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl.class index 4f6570f76d536d2918fe8ca3a0aa4355e39eb40c..99f12c81d2776d55e81bd07b580397c41cc5e06a 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchControl.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchListController.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchListController.class index 5eb98fedcfc1591bfcd2e801fc283727840a13c5..4fdee574b5b1dbf7de1e5f8b7f1905f504703285 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchListController.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/SwitchListController.class differ diff --git a/Praktikum/VINF_MaerklinControl/bin/gui/view/TurntableController.class b/Praktikum/VINF_MaerklinControl/bin/gui/view/TurntableController.class index 00da853b45178b3a87ddd07aa3ff6ee1db3d7ef9..c21adb1fb3fb59b414caf8f9799f72036f49df01 100644 Binary files a/Praktikum/VINF_MaerklinControl/bin/gui/view/TurntableController.class and b/Praktikum/VINF_MaerklinControl/bin/gui/view/TurntableController.class differ diff --git a/Praktikum/VINF_MaerklinControl/src/common/Properties.java b/Praktikum/VINF_MaerklinControl/src/common/Properties.java index f4fc6cb5e2a631c3b9bbf46719bf43c4744aadde..6c684e7aa939d8f95877d88b1c6697c26320dc83 100644 --- a/Praktikum/VINF_MaerklinControl/src/common/Properties.java +++ b/Praktikum/VINF_MaerklinControl/src/common/Properties.java @@ -1,9 +1,9 @@ package common; /* - * In dieser Klasse werden alle klassenübergreifen verwendeten Werte einmalig deklariert, - * so dass potentielle Änderungen lediglich einmalig an dieser Stelle durchgeführt werden - * müssen und Code-Vervielfachung vermieden wird (Einhaltung des DRY-Prinzips). + * In dieser Klasse werden alle klassenuebergreifend verwendeten Werte einmalig deklariert, + * so dass potentielle Aenderungen lediglich einmalig an dieser Stelle durchgefuehrt werden + * muessen und Code-Vervielfachung vermieden wird (Einhaltung des DRY-Prinzips). */ public class Properties { diff --git a/Praktikum/VINF_MaerklinControl/src/gui/MainApp.java b/Praktikum/VINF_MaerklinControl/src/gui/MainApp.java index f0b31a5889e04b24529df99365f8b56f07aff5f0..309010fda8e84b703a0ea47626ef9e95393a1f56 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/MainApp.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/MainApp.java @@ -31,7 +31,7 @@ import common.Properties; /* * Die Klasse MainApp stellt die Hauptklasse der Clients dar. In ihr wird die GUI initialisiert - * und geladen sowie sämtliche "nach außen" (zum Server) gerichteten Funktionalitäten implementiert. + * und geladen sowie saemtliche "nach aussen" (zum Server) gerichteten Funktionalitaeten implementiert. */ public class MainApp extends Application { @@ -83,11 +83,11 @@ public class MainApp extends Application { } - // Initializes the loading of the GUI + // Initializes the GUI @Override public void start(Stage primaryStage) { this.primaryStage = primaryStage; - this.primaryStage.setTitle("M�rklin Control Client"); + this.primaryStage.setTitle("M�rklin Control Client"); this.primaryStage.getIcons().add(new Image("file:res/BO.png")); initRootLayout(); initTabs(); @@ -112,7 +112,7 @@ public class MainApp extends Application { } } - // Shows the control tabs inside the root layout. + // Shows the control tabs inside the tab pane of the root layout. public void initTabs() { try { FXMLLoader loader = new FXMLLoader(); diff --git a/Praktikum/VINF_MaerklinControl/src/gui/model/Engine.java b/Praktikum/VINF_MaerklinControl/src/gui/model/Engine.java index 49d87f682ecec11eb10706d09e82a9dcebd140fb..617e48196c39d195369a453ba46ff64d384fe4dd 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/model/Engine.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/model/Engine.java @@ -12,7 +12,7 @@ import javafx.beans.property.StringProperty; import javafx.scene.image.Image; /* - * Modell-Klasse für einen Zug. + * Modell-Klasse fuer einen Zug. */ public class Engine { diff --git a/Praktikum/VINF_MaerklinControl/src/gui/model/Settings.java b/Praktikum/VINF_MaerklinControl/src/gui/model/Settings.java index fba05f56e323485f7da484e539a3294257bf0508..f2db8d0165abfe4f6aa02309cb4772c8e66093bc 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/model/Settings.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/model/Settings.java @@ -7,7 +7,7 @@ import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; /* - * Modell-Klasse für die Einstellungen der App. + * Modell-Klasse fuer die Einstellungen der App. */ public class Settings { private final ObjectProperty<InetSocketAddress> server; diff --git a/Praktikum/VINF_MaerklinControl/src/gui/model/Switch.java b/Praktikum/VINF_MaerklinControl/src/gui/model/Switch.java index 7f76416bec8a90e82d1f2a304062c00fe31449e3..1db5a7203bafa6a1251405d865f53eda64304df5 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/model/Switch.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/model/Switch.java @@ -11,7 +11,7 @@ import javafx.beans.property.StringProperty; import javafx.beans.property.ObjectProperty; /* - * Modell-Klasse für eine Weiche. + * Modell-Klasse fuer eine Weiche. */ public class Switch{ diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/EngineController.java b/Praktikum/VINF_MaerklinControl/src/gui/view/EngineController.java index 72473ad1a5aa51918562b40b6c302374cace9ea6..fa17d126b00401d2f88b0513380bdbe224d63d57 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/EngineController.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/EngineController.java @@ -10,6 +10,10 @@ import javafx.scene.image.ImageView; import gui.MainApp; import gui.model.Engine; +/* + * Die Klasse EngineController stellt den Controller f�r die Bedienelemente zur Steuerung der Lokomotiven bereit. + */ + public class EngineController { @FXML private ImageView engineImage; @@ -38,9 +42,11 @@ public class EngineController { @FXML private void initialize() { engineSpeedSlider.setValue(0); - engineFwdButton.setSelected(true); // initializes the forward Button as pressed + engineFwdButton.setSelected(true); // initializes the forward Button as pressed - default direction + + // updates the local reference of the selected engine to the Engine selected in the ChoiceBox engineChoiceBox.getSelectionModel().selectedItemProperty().addListener( - (observable, oldValue, newValue) -> setSelectedEngine(newValue)); + (observable, oldValue, newValue) -> setSelectedEngine(newValue)); engineSpeedSlider.valueProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue<? extends Number> ov, @@ -64,12 +70,14 @@ public class EngineController { engineImage.setImage(mainApp.getEngines().get(0).getImg().get()); } + // Is called if the state of the direction buttons changes and updates the engine model accordingly public void handleEngineDirection(){ eng.setDirection(engineFwdButton.isSelected()); mainApp.setEngineDirection(eng); updateEngineStatus(); } + // updates the GUI to the values of the currently selected engine public void updateEngineStatus(){ engineImage.setImage(eng.getImg().get()); engineSpeedSlider.setValue(eng.getSpeed().get()/10); @@ -80,15 +88,21 @@ public class EngineController { engineFwdButton.setSelected(eng.getDirection().get()); engineRevButton.setSelected(!eng.getDirection().get()); if (eng.getDirection().get()) - status.append("vorw�rts"); + status.append("vorw�rts"); else - status.append("r�ckw�rts"); + status.append("r�ckw�rts"); mainApp.setStatus(status.toString()); } + + /** + * updates the local reference of the selected engine to the given one + * + * @param Engine + */ public void setSelectedEngine(Engine eng){ this.eng = eng; - mainApp.setStatus(eng.toString() + " ausgew�hlt"); + mainApp.setStatus(eng.toString() + " ausgew�hlt"); updateEngineStatus(); } diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/RootLayoutController.java b/Praktikum/VINF_MaerklinControl/src/gui/view/RootLayoutController.java index f47880d0f782ae54864ad646cee46dc944ef21e3..3432ca83460de551981d3302cc20b603038708d1 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/RootLayoutController.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/RootLayoutController.java @@ -7,6 +7,10 @@ import org.controlsfx.control.StatusBar; import gui.MainApp; +/* + * Die Klasse RootLayoutController stellt den Controller f�r die Bedienelemente des Basislayouts bereit. + */ + public class RootLayoutController { @FXML private TabPane rootTabPane; @@ -17,18 +21,29 @@ public class RootLayoutController { // Reference to the main application. private MainApp mainApp; + /** + * Is called by the main application to give a reference back to itself. + * + * @param mainApp + */ public void setMainApp(MainApp mainApp) { this.mainApp = mainApp; } + /** + * get the tabs from the main app and load them into the local tabPane + * can't be done in the constructor, since mainApp has to be set first + */ public void loadTabs(){ - rootTabPane.getTabs().addAll(mainApp.getTabs()); //can't be in the constructor + rootTabPane.getTabs().addAll(mainApp.getTabs()); } + // sets the StatusBar text public void setStatus(String status){ statusBar.setText(status); } + // passes the Emergency Stop command to the mainApp public void emergencyStopHandler(){ mainApp.emergencyStopHandler(); } diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/SettingsController.java b/Praktikum/VINF_MaerklinControl/src/gui/view/SettingsController.java index 85161fac87685a5a2c937269a3abacca54bcd7d9..590111f0ea7dd30ca94381c950513d9bc57e6332 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/SettingsController.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/SettingsController.java @@ -39,7 +39,11 @@ public class SettingsController { public void setMainApp(MainApp mainApp) { this.mainApp = mainApp; } - + /** + * is called by an OnClick event caused by the Connect Button. + * updates the Settings model to the currently selected IP Adress and + * calls the establishConnection method of the mainApp. + */ @FXML private void connectHandler(){ InetSocketAddress address = new InetSocketAddress(serverIP.getText(), settings.getSocketAddress().get().getPort()); @@ -47,7 +51,8 @@ public class SettingsController { updateSettingsStatus(); mainApp.establishConnetion(); } - + + // updates the GUI public void updateSettingsStatus(){ InetSocketAddress addr = settings.getSocketAddress().get(); StringBuilder status = new StringBuilder("Verbindung herstellen mit "); @@ -62,6 +67,11 @@ public class SettingsController { } } + /** + * updates the local reference of the selected settings model to the given one + * + * @param Settings + */ public void setSettings(Settings settings) { this.settings = settings; } diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchControl.java b/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchControl.java index e14c05fbe2f93d2884930cc518fcc5cee7d41e00..4d4154547a677ca8e6577d57bdaffc74dc246dbb 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchControl.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchControl.java @@ -15,6 +15,11 @@ import org.controlsfx.control.ToggleSwitch; import gui.MainApp; import gui.model.Switch; +/* + * Die Klasse SwitchControl stellt ein Sonderbedienelement dar. Sie l�dt die Bedienelemente f�r jeweils eine Weiche + * und fungiert gleichzeitig als deren Controller. Ihr wird im Konstruktor das zugeh�rige Weichen-Objekt �bergeben. + */ + public class SwitchControl extends HBox{ @FXML private Label nameLabel; @@ -37,6 +42,8 @@ public class SwitchControl extends HBox{ /** * The constructor. * The constructor is called before the initialize() method. + * Unique in that it does also load the Switch.fxml, which is usally done in an + * higher class, not in the controller itself. */ public SwitchControl(Switch sw) { this.sw = sw; @@ -80,7 +87,7 @@ public class SwitchControl extends HBox{ this.mainApp = mainApp; } - + // updates the GUI elements to reflect the current state of the switch public void updateSwitchStatus(){ stateToggleSwitch.setSelected(sw.getState().get()); diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchListController.java b/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchListController.java index de5eebb19ff70962904f45575d52bb181f31be79..31bef5d8251a682d5726f5f6c7d54ddbfe0c3c6e 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchListController.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/SwitchListController.java @@ -40,7 +40,11 @@ public class SwitchListController { this.mainApp = mainApp; } - + /** + * this is where the magic happens! + * kidding aside, this method creates and assigns a new SwitchControl instance to every switch defined in the mainApp. + * it then adds these SwitchControls to the VBox provided in the SwitchList.fxml + */ public void setSwitchControls(){ ObservableList<Switch> switches = mainApp.getSwitches(); ObservableList<SwitchControl> switchControls = FXCollections.observableArrayList(); diff --git a/Praktikum/VINF_MaerklinControl/src/gui/view/TurntableController.java b/Praktikum/VINF_MaerklinControl/src/gui/view/TurntableController.java index 0c8c6c16ae5ea763adf615195f6e70b1a7ad1cb2..324001bbfb237adbbbb462981dab13a6536e47f7 100644 --- a/Praktikum/VINF_MaerklinControl/src/gui/view/TurntableController.java +++ b/Praktikum/VINF_MaerklinControl/src/gui/view/TurntableController.java @@ -5,6 +5,10 @@ import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ChoiceBox; +/* + * Die Klasse TurntableController stellt den Controller f�r die Bedienelemente zur Steuerung der Drehscheibe bereit. + */ + public class TurntableController { @FXML @@ -34,11 +38,13 @@ public class TurntableController { } + // Is called by an onClick event on the left button and calls the according function in the main app public void handleTurnCCW (){ mainApp.turntableTurnCCW(); mainApp.setStatus("Letztes Kommando: Drehteller links drehen"); } + // Is called by an onClick event on the right button and calls the according function in the main app public void handleTurnCW (){ mainApp.turntableTurnCW(); mainApp.setStatus("Letztes Kommando: Drehteller rechts drehen"); diff --git a/Praktikum/VINF_MaerklinControl/src/server/Engine.java b/Praktikum/VINF_MaerklinControl/src/server/Engine.java index 33c450314ffcebd41135cf643c9fd4fae3181fe3..090944a012f551d536a402cf7c256e5a7502401e 100644 --- a/Praktikum/VINF_MaerklinControl/src/server/Engine.java +++ b/Praktikum/VINF_MaerklinControl/src/server/Engine.java @@ -4,8 +4,8 @@ package server; import java.util.ArrayList; /* - * Diese Klasse stellt das Modell für einen Zug auf Serverseite dar. - * Weiterhin lassen sich über eine lokale Instanz des Maerklin-Protokolls + * Diese Klasse stellt das Modell fuer einen Zug auf Serverseite dar. + * Weiterhin lassen sich ueber eine lokale Instanz des Maerklin-Protokolls * Befehle an die Maerklin-C2-Steuerung senden. */ public class Engine { diff --git a/Praktikum/VINF_MaerklinControl/src/server/MaerklinProtocol.java b/Praktikum/VINF_MaerklinControl/src/server/MaerklinProtocol.java index e44d6ba1812ca0c24b0c8c930afa958721e8a3a3..8c98b30c6e5703e51723db06748401a2471891ac 100644 --- a/Praktikum/VINF_MaerklinControl/src/server/MaerklinProtocol.java +++ b/Praktikum/VINF_MaerklinControl/src/server/MaerklinProtocol.java @@ -4,8 +4,8 @@ import java.net.*; /* * Diese Klasse implementiert das Maerklin-Protokoll zur Kommunikation - * mit der Maerklin-C2-Steuerung. Die Datagramme werden mittels UDP - * gesendet; für jedes Datagram wird ein neuer Sockel geöffnet. + * mit der Maerklin-CS2-Steuerung. Die Datagramme werden mittels UDP + * gesendet; fuer jedes Datagram wird ein neuer Sockel geoeffnet. */ public class MaerklinProtocol { diff --git a/Praktikum/VINF_MaerklinControl/src/server/MaerklinServer.java b/Praktikum/VINF_MaerklinControl/src/server/MaerklinServer.java index 63c137d25977294fd5ca8ff69583b7dbab9ebbe0..650262da53efbc60443beee21b6473003700ec96 100644 --- a/Praktikum/VINF_MaerklinControl/src/server/MaerklinServer.java +++ b/Praktikum/VINF_MaerklinControl/src/server/MaerklinServer.java @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import javax.xml.bind.DatatypeConverter; +//import javax.xml.bind.DatatypeConverter; import common.Properties; @@ -18,8 +18,8 @@ import common.Properties; * MaerklinServer stellt die Hauptklasse des Servers dar. Alle verwendeten * Objekte und Services (bspw. Executer-Services) werden initialisiert und * der Server-Thread wird gestartet. Weiterhin implementiert diese Klasse - * das Maerklin-Protokoll und dient damit für alle anderen abgeleiteten oder - * erzeugten Objekte als Referenz für die Kommunikation mit dem Server. + * das Maerklin-Protokoll und dient damit fuer alle anderen abgeleiteten oder + * erzeugten Objekte als Referenz fuer die Kommunikation mit dem Server. * Grundlegende Funktionen wie der Notaus werden direkt von dieser Klasse * umgesetzt. */ @@ -178,8 +178,8 @@ public class MaerklinServer{ } /* - * Diese Klasse öffnet einen Server-Port und erstellt einen neue Client-Thread-Instanz - * für jeden Client, der sich neu an dem Server anmeldet. + * Diese Klasse oeffnet einen Server-Port und erstellt einen neue Client-Thread-Instanz + * fuer jeden Client, der sich neu an dem Server anmeldet. */ class ServerThread implements Runnable { @@ -221,7 +221,7 @@ class ServerThread implements Runnable { /* * Die Klasse ClientThread verwaltet die Kommunikation mit dem Client - * im Hintergrund und öffnet bei eingehenden Befehlen einen neuen Handling-Thread. + * im Hintergrund und oeffnet bei eingehenden Befehlen einen neuen Handling-Thread. */ class ClientThread implements Runnable { @@ -407,7 +407,7 @@ class HandleThread implements Runnable { /* * Diese Klasse konvertiert bei Aufruf den aktuellen Status der (serverseitigen) - * Modelle in Byte-Format und wandelt diese unter Hinzufügen von Start- End- und + * Modelle in Byte-Format und wandelt diese unter Hinzufuegen von Start- End- und * Trenn-Bytes in ein Datagram um, dass an den Client gesendet wird. */ class UpdateThread implements Runnable { diff --git a/Praktikum/VINF_MaerklinControl/src/server/MaerklinServerApplication.java b/Praktikum/VINF_MaerklinControl/src/server/MaerklinServerApplication.java index ec89c47754700c5eebb7d3d176131a30ce1dfdaf..8d8d5379200a20f573e9212a23c02b33d57cf17a 100644 --- a/Praktikum/VINF_MaerklinControl/src/server/MaerklinServerApplication.java +++ b/Praktikum/VINF_MaerklinControl/src/server/MaerklinServerApplication.java @@ -4,7 +4,7 @@ package server; /* * MaerklinServerApplication startet den Server sowie den Listener, der * die serverseitigen Modelle aktualisiert. Weiterhin initialisiert die Klasse - * zyklisch ein synchrones Status-Update für alle registrierten Clients. + * zyklisch ein synchrones Status-Update fuer alle registrierten Clients. */ public class MaerklinServerApplication { diff --git a/Praktikum/VINF_MaerklinControl/src/server/Switch.java b/Praktikum/VINF_MaerklinControl/src/server/Switch.java index d4880af8c0e99f60869b7704e373b76c86b8145d..418adf90c51d8067562fb47617e72bbdc94c6230 100644 --- a/Praktikum/VINF_MaerklinControl/src/server/Switch.java +++ b/Praktikum/VINF_MaerklinControl/src/server/Switch.java @@ -3,7 +3,7 @@ package server; import java.util.ArrayList; /* - * Diese Klasse stellt das Modell für eine Weiche auf Serverseite dar. + * Diese Klasse stellt das Modell fuer eine Weiche auf Serverseite dar. * Weiterhin lassen sich über eine lokale Instanz des Maerklin-Protokolls * Befehle an die Maerklin-C2-Steuerung senden. */