diff --git a/.gitignore b/.gitignore
index 5ff6309..a91c35d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,5 @@ build/
.vscode/
### Mac OS ###
-.DS_Store
\ No newline at end of file
+.DS_Store
+/.idea/
diff --git a/pom.xml b/pom.xml
index d97f8c2..d58b88c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,7 +90,7 @@
default-cli
- fabrik.simulator.pic16f84/fabrik.simulator.pic16f84.HelloApplication
+ fabrik.simulator.pic16f84/fabrik.simulator.pic16f84.CreateWindow
app
app
app
diff --git a/src/main/java/fabrik/simulator/pic16f84/HelloApplication.java b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java
similarity index 58%
rename from src/main/java/fabrik/simulator/pic16f84/HelloApplication.java
rename to src/main/java/fabrik/simulator/pic16f84/CreateWindow.java
index 6ccd04f..cd66e57 100644
--- a/src/main/java/fabrik/simulator/pic16f84/HelloApplication.java
+++ b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java
@@ -7,12 +7,12 @@ import javafx.stage.Stage;
import java.io.IOException;
-public class HelloApplication extends Application {
+public class CreateWindow extends Application {
@Override
public void start(Stage stage) throws IOException {
- FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
- Scene scene = new Scene(fxmlLoader.load(), 320, 240);
- stage.setTitle("Hello!");
+ FXMLLoader fxmlLoader = new FXMLLoader(CreateWindow.class.getResource("FileSelector.fxml"));
+ Scene scene = new Scene(fxmlLoader.load(), 1200, 800);
+ stage.setTitle("PIC16F84-Simulator - Datei auswählen");
stage.setScene(scene);
stage.show();
}
diff --git a/src/main/java/fabrik/simulator/pic16f84/FileSelect.java b/src/main/java/fabrik/simulator/pic16f84/FileSelect.java
new file mode 100644
index 0000000..a9e2250
--- /dev/null
+++ b/src/main/java/fabrik/simulator/pic16f84/FileSelect.java
@@ -0,0 +1,36 @@
+package fabrik.simulator.pic16f84;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Node;
+import javafx.scene.Scene;
+import javafx.stage.FileChooser;
+import javafx.stage.Stage;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+
+public class FileSelect {
+ @FXML
+ protected void selectFileLST(ActionEvent event) throws IOException {
+ FileChooser fileChooser = new FileChooser();
+ fileChooser.setTitle("Open LST File");
+ fileChooser.getExtensionFilters().addAll(
+ new FileChooser.ExtensionFilter("LST-Dateien", "*.LST", "*.lst"),
+ new FileChooser.ExtensionFilter("Alle Dateien", "*.*"));
+ File selectedFile = fileChooser.showOpenDialog(new Stage());
+
+ if (selectedFile != null) {
+ int [] prog = ParseFile.parseTestDatei(selectedFile.getAbsolutePath());
+ System.out.println(Arrays.toString(prog));
+ Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
+ FXMLLoader fxmlLoader = new FXMLLoader(CreateWindow.class.getResource("MainBody.fxml"));
+ Scene scene = new Scene(fxmlLoader.load(), 1200, 800);
+ stage.setTitle("PIC16F84-Simulator - Hauptseite");
+ stage.setScene(scene);
+ stage.show();
+ }
+ }
+
+}
diff --git a/src/main/java/fabrik/simulator/pic16f84/MainBody.java b/src/main/java/fabrik/simulator/pic16f84/MainBody.java
new file mode 100644
index 0000000..1903648
--- /dev/null
+++ b/src/main/java/fabrik/simulator/pic16f84/MainBody.java
@@ -0,0 +1,4 @@
+package fabrik.simulator.pic16f84;
+
+public class MainBody {
+}
diff --git a/src/main/java/fabrik/simulator/pic16f84/stringTObefehl.java b/src/main/java/fabrik/simulator/pic16f84/ParseFile.java
similarity index 68%
rename from src/main/java/fabrik/simulator/pic16f84/stringTObefehl.java
rename to src/main/java/fabrik/simulator/pic16f84/ParseFile.java
index 3ec2e1b..8662455 100644
--- a/src/main/java/fabrik/simulator/pic16f84/stringTObefehl.java
+++ b/src/main/java/fabrik/simulator/pic16f84/ParseFile.java
@@ -6,21 +6,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-public class stringTObefehl {
-
- public static void main(String[] args) {
- String dateiPfad = "C:\\CloudStation\\Eigene Daten\\DHBW-Studium\\Simulator_git\\src\\main\\java\\fabrik\\simulator\\pic16f84\\TPicSim1.LST"; // Pfad zur Testdatei ---> hier musst du deine Variable einfügen Paul
- int[] programmspeicher = parseTestDatei(dateiPfad);
-
- // Programmspeicher
- System.out.println("Programmspeicher wird ausgegebene:");
- for (int i = 0; i < programmspeicher.length; i++) {
- if (programmspeicher[i] != 0) {
- System.out.printf("0x%04X: 0x%04X%n", i, programmspeicher[i]);
- }
- }
- }
-
+public class ParseFile {
public static int[] parseTestDatei(String dateiPfad) {
List zeilen = new ArrayList<>();
@@ -36,12 +22,12 @@ public class stringTObefehl {
}
// Initialisierung des Programmspeichers mit 1024 Speicherplätzen
- int[] programmspeicher = new int[1024]; // Wie viele Programmspeicherplätze gibt es? --> 1024
+ int[] programmspeicher = new int[1024]; // Wie viele Programmspeicherplätze gibt es? → 1024
// Adresse und Befehle werden ignoriert und nur die Befehle werden in den Programmspeicher gespeichert
for (String zeile : zeilen) {
- String[] teile = zeile.split("\\s+"); // Spaltenweise werden die einzelnen Befehle getrennen
+ String[] teile = zeile.split("\\s+"); // Spaltenweise werden die einzelnen Befehle getrennt
if (teile.length >= 2) {
try {
int adresse = Integer.parseInt(teile[0], 16); // Adresse in Hexadezimal umwandeln
@@ -52,9 +38,8 @@ public class stringTObefehl {
programmspeicher[adresse] = befehl; // Befehl im Programmspeicher speichern
} catch (NumberFormatException e) {
- // Wenn ein Fehler aufkommt wird diese Zeile ignoriert funktioniert
+ // Wenn ein Fehler aufkommt, wird diese Zeile ignoriert funktioniert
System.err.println("Fehler beim Parsen einer Zeile: " + zeile);
- continue;
}
}
}
diff --git a/src/main/resources/fabrik/simulator/pic16f84/FileSelector.fxml b/src/main/resources/fabrik/simulator/pic16f84/FileSelector.fxml
new file mode 100644
index 0000000..7055104
--- /dev/null
+++ b/src/main/resources/fabrik/simulator/pic16f84/FileSelector.fxml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/fabrik/simulator/pic16f84/MainBody.fxml b/src/main/resources/fabrik/simulator/pic16f84/MainBody.fxml
new file mode 100644
index 0000000..8925dc1
--- /dev/null
+++ b/src/main/resources/fabrik/simulator/pic16f84/MainBody.fxml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/fabrik/simulator/pic16f84/hello-view.fxml b/src/main/resources/fabrik/simulator/pic16f84/hello-view.fxml
deleted file mode 100644
index 199588a..0000000
--- a/src/main/resources/fabrik/simulator/pic16f84/hello-view.fxml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-