diff --git a/src/main/java/de/neemann/digital/core/Model.java b/src/main/java/de/neemann/digital/core/Model.java index 8c65152b2..d7483d413 100644 --- a/src/main/java/de/neemann/digital/core/Model.java +++ b/src/main/java/de/neemann/digital/core/Model.java @@ -60,6 +60,7 @@ public class Model implements Iterable { private boolean isInitialized = false; private WindowPosManager windowPosManager; private HashSet oscillatingNodes; + private boolean isInvalidSignal = false; /** * Creates a new model @@ -422,7 +423,8 @@ public class Model implements Iterable { if (signal.isValid()) { signals.add(signal); inputs.add(signal); - } + } else + isInvalidSignal = true; } /** @@ -441,7 +443,15 @@ public class Model implements Iterable { if (signal.isValid()) { signals.add(signal); outputs.add(signal); - } + } else + isInvalidSignal = true; + } + + /** + * @return true if there was an invalid signal + */ + public boolean isInvalidSignal() { + return isInvalidSignal; } /** diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index bd4e826e9..c5a655b56 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -861,6 +861,13 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS public void actionPerformed(ActionEvent e) { try { Model model = new ModelCreator(circuitComponent.getCircuit(), library).createModel(false); + + if (model.isInvalidSignal()) + JOptionPane.showMessageDialog(Main.this, + new LineBreaker().toHTML().breakLines(Lang.get("msg_invalidSignalsAnalysed")), + Lang.get("msg_warning"), + JOptionPane.WARNING_MESSAGE); + new TableDialog(Main.this, new ModelAnalyser(model).analyse(), library, shapeFactory, getBaseFileName()) .setVisible(true); ensureModelIsStopped(); diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml index e3e05e8bd..bcc112986 100644 --- a/src/main/resources/lang/lang_de.xml +++ b/src/main/resources/lang/lang_de.xml @@ -921,6 +921,8 @@ Die Icons stammen aus dem Tango Desktop Project. Aufgetreten in Datei {0}. Betroffen sind: {0}. Leitung {0} + Wenn Ein- oder Ausgänge keinen Namen haben, werden diese nicht + als Variablen in die Analyse einbezogen, sondern wie Konstanten behandelt! Ok diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml index 5fd3391fc..c7777e46c 100644 --- a/src/main/resources/lang/lang_en.xml +++ b/src/main/resources/lang/lang_en.xml @@ -908,6 +908,8 @@ The icons are taken from the Tango Desktop Project. Occurred in file {0}. Affected are: {0}. Signal {0} + If inputs or outputs have no name set, they are not included + as variables in the analysis, but treated as constants! Ok