Seite 1 von 1

default-Wert eines snap-value-Moduls ändern

Verfasst: 29. April 2007, 08:42
von herw
ein unscheinbarer Fehler (bug?), der sehr unwahrscheinlich ist und wohl noch niemanden aufgefallen sein mag. Mich hat es allerdings etwa vier Nachmittage gekostet, den Fehler zu lokalisieren und auszumerzen.

Folgende Situation: ich speichere die Werte eine Reglers (mit mouse area gesteuertes multipicture) ab; dabei habe ich auch als erstes einen snap erzeugt, der alle Regler auf die default-Werte der zugehörigen snap-value-Module auf die Defualt-Werte setzt(man klickt im snap-Fenster auf den Kasten "default"). Da ich den von Reaktor standardmäßig angebotenen default-Wert von 0,5 nicht gebrauchen konnte, habe ich diesen auf 0 gesetzt. Dann habe ich den snap abgespeichert. Beim Aufruf gab dieses snap-value-Modul aber immer noch den alten default-Wert von 0,5 aus.
silly snap value.gif
Schließlich half nur noch eines: man muss mit irgendeinem Wert das snap-value-Modul mal angesteuert haben und abspeichern. Dann wird auch der neue default-Wert abgespeichert.
Da soll man drauf kommen!

Da ich gerne einen snap mit allen derfault-Werten abspeichere, heißt das für mich: alle Regler, Schalter (arbeiten bei mir auch mit mouse area und snap-values) etc. muss man einmal bewegt oder bedient haben und dann als snap 1 abspeichern. Darauf aufbauend kann man dann seine snaps erstellen.

ciao herw (genervt und nun erleichtert)

Verfasst: 29. April 2007, 12:41
von magneton
jetzt wo Du es erwähnst...
da bin ich auch mal verzweifelt hängen geblieben. ich habe dann (das mir leicht unheimliche) snapvalue modul gelöscht und durch ein neues ersetzt (und das dann mit neuen werten gefüttert).
bei sehr kritischen angelegenheiten ziehe ich es vor das snap value array modul zu nehmen, auch wenn das array nur die länge 1 hat.

Verfasst: 29. April 2007, 16:55
von herw
magneton hat geschrieben:jetzt wo Du es erwähnst...
da bin ich auch mal verzweifelt hängen geblieben. ich habe dann (das mir leicht unheimliche) snapvalue modul gelöscht und durch ein neues ersetzt (und das dann mit neuen werten gefüttert).
bei sehr kritischen angelegenheiten ziehe ich es vor das snap value array modul zu nehmen, auch wenn das array nur die länge 1 hat.
das Löschen und wieder Einfügen habe ich auch ausprobiert. Nach einigen Reaktor-Sitzungen lieferte auch dieses wieder den Wert 0,5.
Warum ist denn das snap-array-Modul besser? Krümelmonster erwähnte dies auch in einem Telefonat.

Verfasst: 29. April 2007, 18:01
von herw
Dieses hier beschriebene Problem ist nur schwer allgemein übertragbar.
Ich habe mal ein ganz einfaches Ensemble erstellt, das nur den aktuellen Wert eines Reglers in einem snap value und in einem snap value array abspeichert. Den Defaultwert des Reglers habe ich auf 0 gestellt, die default-Werte der snap-Module bei 0,5 belassen. Beim Aufruf der Default-Werte im snapshot-Fenster springen die ausgegebenen Werte auf die default-Werte der sanp-Module - ok.
Dann habe ich den Regler weggenommen und wieder die Default-Werte aufgerufen. Das snap-Value-Modul sendet seinen Wert einmal das snap-value array zweimal. Das kann schon wichtig sein, z.B. wenn dahinter beispielsweise ein FlipFlop angesteuert wird. Ein Stepfilter hilft dann auch nicht, wenn der default-Wert nochmals aufgerufen werden soll. Viel Logik ist nötig für ein eigentlich harmloses Problem.
snap value und - array.ens.zip
Daraufhin habe ich mal ein etwas komplizierteres Beispiel ausprobiert: Ein Button schaltet über ein IC_send einen send-receive-Verbindung.
snap und IC-1.gif
Ich schalte den Button aus: Erstaunlich ist schon mal, dass nun beide snap-Module ihre Werte zweimal aussenden, allerdings beim ersten Mal das snap-value-Array nur einmal (!???).
snap und IC-2.gif
und nun der Hammer; ich schalte den Button auf on:
snap und IC-3.gif
wieder werden alle Werte zweimal ausgesendet, das sva allerdings liefert hinten die Werte 1 und 0 (??????). Komischerweise reagiert aber das IC-send nicht darauf.

Das verstehe ich nun gar nicht !!!???????!!!!! Der eventwatcher zum Beispiel reagiert ja darauf und gibt den Wert 0 auch an. Das IC-send bleibt dagegen auf dem Zustand 1 stehen.

Verfasst: 3. Mai 2007, 11:32
von magneton
in diesem bereich gibt es in der tat dinge, die nur schwer oder gar nicht zu verstehen sind. es hilft nur geduldiges ausprobieren.
ich erinnere mich gelegentlich an stellen mit "1" zu multiplizieren oder in gottes namen die ausgabe einer "0" zu akzeptieren (stepfilter nachschalten und die werte dann neu skalieren).
auch habe ich festgestellt dass die auftauchenden probleme nicht zu verallgemeinern sind (weswegen ich hier mich nicht zu wort gemeldet habe).
aber einen trost habe ich dennoch: wenn es mal funktioniert, dann ist es auch stabil.

Verfasst: 4. Mai 2007, 09:28
von herw
magneton hat geschrieben:in diesem bereich gibt es in der tat dinge, die nur schwer oder gar nicht zu verstehen sind. es hilft nur geduldiges ausprobieren.
ich erinnere mich gelegentlich an stellen mit "1" zu multiplizieren oder in gottes namen die ausgabe einer "0" zu akzeptieren (stepfilter nachschalten und die werte dann neu skalieren).
auch habe ich festgestellt dass die auftauchenden probleme nicht zu verallgemeinern sind (weswegen ich hier mich nicht zu wort gemeldet habe).
aber einen trost habe ich dennoch: wenn es mal funktioniert, dann ist es auch stabil.
Die Ursache der zusätzlichen 0 habe ich herausgefunden: Das snap-value-array hat beim Einfügen standardmäßig die Größe 2. Es gibt also auch zwei Werte aus. Würde man eine andere Größe wählen werden immer genauso viele Werte gesendet. Interessant ist, dass sich die nachfolgenden Module immer den passenden Wert heraussuchen, obwohl ja mehr Daten gesendet werden.
Es dürfte interessant sein, dies systematischer zu überprüfen! Da kann man bestimmt einige mit Tricks gestalten. Ich ahne, dass die Regel, die dahintersteckt, nicht so schwer ist.

ciao herw

Verfasst: 6. Mai 2007, 19:01
von krümelmonster
Hallihallo,
ich denke mir, daß sich die Sache mit den default-Werten folgendermaßen erklären läßt:
Setzt man ein Snap-(Value)-array ein, ist der default-Wert zunächst einmal 0,5.
Dieses Modul "merkt" sich den letzten aktualisierten Wert.
Ganz egal also, wie der default-Wert anschließend gesetzt wird, der erstmals - beim Einfügen- "gemerkte" Wert kann nur durch eine wenigstens einmalige Änderung des Inputs verändert werden.
Anschließend abspeichern - sonst hat sich der Snap ja nie verändert und der erstmalige default-Wert bleibt der zuletzt "gemerkte".

Die ganze Snap-(Value)-Geschichte bleibt auf jeden Fall spannend, da die ganzen Konfigurationsmöglichkeiten so üppig sind.

Was ich aus den bisherigen Beiträgen nicht verstanden habe:

... sich die nachfolgenden Module ihren Werte selbst suchen ...
Ich schätze, daß sie das nur tun, wenn man ihnen via Idx-Ausgabe diesen auch zulenkt.

... die IC-Send reagieren nicht ...
Hmmmh, ich bin immer noch bei R5.1.1, kann also das Beispielensemble nicht öffnen - aber - sorry, wenn das jetzt ganz schräg rüberkommt - sind die IC-Sends überhaupt angeschlossen ?

Sie erhalten doch ein Event-Signal, aber woran liefern sie es ?

Beste Grüße, Gerald.

Verfasst: 6. Mai 2007, 19:26
von herw
krümelmonster hat geschrieben:...... die IC-Send reagieren nicht ...
Hmmmh, ich bin immer noch bei R5.1.1, kann also das Beispielensemble nicht öffnen - aber - sorry, wenn das jetzt ganz schräg rüberkommt - sind die IC-Sends überhaupt angeschlossen ?

Sie erhalten doch ein Event-Signal, aber woran liefern sie es ?

Beste Grüße, Gerald.
Och nee krümel, das habe ich doch schon oft erläutert ;-)
die IC-send steuern selbstverständlich die Receive-Schalter (virtual wires !!) und sind auch angeschlossen.

ciao herw

PS: du w(s)olltest doch noch etwas schreiben ;-)

Herzliche Grüße an Dich

Verfasst: 8. Mai 2007, 02:02
von krümelmonster
herw hat geschrieben: Och nee krümel, ....
...o.k....o.k....o.k...... - hätte ich mir ja auch denken können, klappt nur nicht immer - :wink:

Also weshalb das IC-send bei der "nachgereichten" 0 nicht mit umspringt, weiß ich leider auch nicht einfach zu erklären.
Ehrlich gesagt machen mir die "doppelten" Ausgaben der Snap-Module viel mehr Kummer, zumal eigentlich keine Reinitialisierungssituation vorzuliegen scheint.
Über diese hätte man auch einen Erklärungsversuch hinsichtlich der oben erwähnten 0 vornehmen können.
Viele liebe Grüße, Gerald.

Verfasst: 8. Mai 2007, 10:48
von helmsklamm
schön, das sich NI mühe gibt, die wartezeit auf R6 mit derartigen forschungsobjekten zu verkürzen.

@krümel:

deine erklärung zum neu-defaulten - das müsste ja dann bei allen elementen die dieses feature bieten ebenso der fall sein. i habs grad nich verififiziert, aber aus der erinnerung ist das bei knobs nicht der fall. setz n neuen default und bemüh den entsprechenden snap-schalter und schon sind sie korrekt gesetzt.

@herw:

der vorschlag ändert zwar nix an der seltsamkeit, aber spart dir erstmal arbeit: nutz einfach den snap-random für neu-default-snap - dann musste nich jeden regler händisch ändern;-)


achja, magnetons tip mit der "sinnlosen" 1multiplikition kann ich, zwar nicht in diesem, aber in anderen zusammenhängen ebenfalls empfehlen - ich hatte ulkige fälle, wo das sv beim snapwechsel nichts neu setzte, mit x1 DAHINTER gings plötzlich.

Verfasst: 8. Mai 2007, 12:50
von herw
helmsklamm hat geschrieben:...achja, magnetons tip mit der "sinnlosen" 1multiplikition kann ich, zwar nicht in diesem, aber in anderen zusammenhängen ebenfalls empfehlen - ich hatte ulkige fälle, wo das sv beim snapwechsel nichts neu setzte, mit x1 DAHINTER gings plötzlich.
nun das ist dann klar, da ja der Faktor 1 eine Konstante ist und diese bei jeder Intialisierung ihren Wert sendet, damit auch das Multilplikationsmodul und dadurch letzlich (scheinbar) das snap-Modul - guter Hinweis!

ciao herw

Verfasst: 14. Mai 2007, 18:40
von helmsklamm
was mir neulich zufällig aufgeallen ist:
das SV bietet ne option "event at store" - vielleicht hilft die ja?