diff --git a/src/main/java/Enigma/model/Hardware.java b/src/main/java/Enigma/model/Hardware.java new file mode 100644 index 0000000000000000000000000000000000000000..12f208eae012389f33458f4651cdb06282987786 --- /dev/null +++ b/src/main/java/Enigma/model/Hardware.java @@ -0,0 +1,120 @@ +package Enigma.model; + +public class Hardware { + + private Walze[] walzen; + private Steckbrett steckbrett; + private Reflektor reflektor; + private String nachricht; + private String kenngruppe; + + /** + * Setzt eine Walze ein + * + * @param walze : int : Setzt die Walze mit der angegebenen Nummer ein + * @param walzenNr : int : Die Nummer der einzusetzenden Walze + */ + public void setzeWalzenNr(int walze, int walzenNr) { + } + + /** + * Setzt den Notch der Walze + * + * @param walze : int : Position der Walze + * @param position : int : Umspringpunkt auf der Walze + */ + public void setzeRing(int walze, int position) { + } + + /** + * Setzt den Startwert (position) der Walze (walze) + * + * @param walze + * @param buchstabe + */ + public void setzePosition(int walze, char buchstabe) { + } + + // Befehl die Nachricht an den Funker zu übergeben + public void sendeNachricht() { + new Funkraum().sendeFunkspruch(new Morsecode().convertBuchstabeToMorsecode(this.nachricht), this.kenngruppe); + } + + /** + * Gibt die letzte empfangene Nachricht zurück + * <p> + * String[0] = Die verschlüsselte Nachricht + * String[1] = Nachricht im Klartext + */ + public String[] empfangeNachricht() { + String[] result = new String[2]; + + return result; + } + + /** + * Fügt die gedrückte Taste der Nachricht hinzu + * + * @param buchstabe char : Der zu verschlüsselnde Buchstabe + * @return char : Der verschlüsselte Buchstabe + */ + public char tippeBuchstabe(char buchstabe) { + buchstabe = this.steckbrett.codiere(buchstabe); + buchstabe = this.walzen[1].codiere(buchstabe); + buchstabe = this.walzen[2].codiere(buchstabe); + buchstabe = this.walzen[3].codiere(buchstabe); + buchstabe = this.reflektor.codiere(buchstabe); + buchstabe = this.walzen[3].codiere2(buchstabe); + buchstabe = this.walzen[2].codiere2(buchstabe); + buchstabe = this.walzen[1].codiere2(buchstabe); + buchstabe = this.steckbrett.codiere2(buchstabe); + + this.nachricht += buchstabe; + + return buchstabe; + } + + /** + * Nachricht entschlüsseln + * + * @param nachricht : String : Verschlüsselte Nachricht + * @return String : Die Klartext Nachricht + */ + private String decodiereNachricht(String nachricht) { + String result = ""; + + return result; + } + + public Walze[] getWalzen() { + return this.walzen; + } + + public void setWalzen(int walze, int position, char ringstellung) { + this.walzen[position] = new Walze(walze, ringstellung); + } + + public Steckbrett getSteckbrett() { + return steckbrett; + } + + public void setSteckbrett(Steckbrett steckbrett) { + this.steckbrett = steckbrett; + } + + public Reflektor getReflektor() { + return reflektor; + } + + public void setReflektor(Reflektor reflektor) { + this.reflektor = reflektor; + } + + public String getKenngruppe() { + return kenngruppe; + } + + public void setKenngruppe(String kenngruppe) { + this.kenngruppe = kenngruppe; + } +}