Fixes an error in the new counter that occurred when the counter value

was changed by the measured value dialog.
This commit is contained in:
hneemann 2018-03-21 18:00:06 +01:00
parent 3e839a54ec
commit b86462e2ea
3 changed files with 11 additions and 8 deletions

View File

@ -99,14 +99,17 @@ public class CounterPreset extends Node implements Element {
counter = in.getValue();
}
if (dir)
ovfOut = (counter == 0) && enable;
else
ovfOut = (counter == maxValue) && enable;
ovfOut = getOvfValue(counter, dir, enable);
lastClock = clock;
}
private boolean getOvfValue(long counter, boolean dir, boolean enable) {
if (dir)
return (counter == 0) && enable;
else
return (counter == maxValue) && enable;
}
@Override
public void writeOutputs() throws NodeException {
ovf.setBool(ovfOut);
@ -135,7 +138,7 @@ public class CounterPreset extends Node implements Element {
if (probe)
model.addSignal(new Signal(label, out, (v, z) -> {
counter = v;
boolean o = (counter == maxValue) && enable.getBool();
boolean o = getOvfValue(counter, dir.getBool(), enable.getBool());
out.setValue(counter);
ovf.setBool(o);
}));

View File

@ -528,7 +528,7 @@
<string name="elem_Counter_pin_en">Der Zähler zählt nur, wenn dieser Eingang auf 1 gesetzt ist.</string>
<string name="elem_CounterPreset">Zähler, beschreibbar</string>
<string name="elem_CounterPreset_tt">Zähler, dessen Wert gesetzt werden kann.</string>
<string name="elem_CounterPreset_tt">Zähler, dessen Wert gesetzt werden kann. Zudem kann ein Maximalwert und eine Zählrichtung vorgegeben werden.</string>
<string name="elem_CounterPreset_short">Zähler</string>
<string name="elem_CounterPreset_pin_out">Gibt den gezählten Wert aus.</string>
<string name="elem_CounterPreset_pin_ovf">Overflow Ausgang. Wird auf 1 gesetzt, der 'en' Eingang auf 1 gesetzt ist

View File

@ -531,7 +531,7 @@
<string name="elem_Counter_pin_en">If set to 1 the counter is enabled!</string>
<string name="elem_CounterPreset">Counter with preset</string>
<string name="elem_CounterPreset_tt">Counter with preset.</string>
<string name="elem_CounterPreset_tt">A counter whose value can be set. In addition, a maximum value and a counting direction can be specified.</string>
<string name="elem_CounterPreset_short">Counter</string>
<string name="elem_CounterPreset_pin_out">Returns the counted value.</string>
<string name="elem_CounterPreset_pin_ovf">Overflow output. It is set to 1 if the 'en' input is set to 1 and if the