Seite 1 von 2

SVA: self iteration nerv

Verfasst: 5. September 2007, 19:53
von helmsklamm
das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.

es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?

Re: SVA: self iteration nerv

Verfasst: 7. September 2007, 21:51
von herw
helmsklamm hat geschrieben:das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.

es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
das ist zu allgemein, lade mal ein Beispiel hier hoch, dann kann man konkret den Ablauf sehen.

Verfasst: 8. September 2007, 08:54
von helmsklamm
kannste dir ganz schnell selber machen:
das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric. jetzt "inite" irgendwie.
hinten liegt immer 5 an unabhängig davon welche konstante vorne anliegt. das heisst, das auch diese zelle aktuell hinten rauskommt und NICHT die durchs idx gewünschte. kannst ja beides auch eventwatchen.

als fix kannst dir jetzt das delay hinter die konstante hängen, dann gehts. anstelle delay kannste auch n hold (H = unbeschaltet) und dahinter das trig/value nehmen (verzögert, glaub ich, nur ein event und dürfte ressourcenfreundlicher sein).

wenn mans weiss, is es schnell zu fixen, uU sucht man sich aber esrt n wolf. das gewünschte verhalten entspricht der intuitiven erwartung, und gehört ins modul oder zumindest in die beschreibung dazu.

Verfasst: 8. September 2007, 09:32
von herw
also nee, da ist die Beschreibung ja länger als das fixe "Selbermachen"

Verfasst: 8. September 2007, 09:48
von helmsklamm
hä? die bastel-anleitung sind 3 kurze sätze:

"das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric."

das geht mit nem screeni niemals schneller, da du auch da erklärungen hinzufügen musst.

Verfasst: 8. September 2007, 14:47
von herw
helmsklamm hat geschrieben:hä? die bastel-anleitung sind 3 kurze sätze:

"das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric."

das geht mit nem screeni niemals schneller, da du auch da erklärungen hinzufügen musst.
ich meinte auch kein screeny sondern ein ensemble. Ich bastele mich hier nämlich noch wund, wenn ich alles nachbaue.
Laden ist viel angenehmer.

Verfasst: 8. September 2007, 19:10
von helmsklamm
aber auch hier wieder: das ganze ist schneller gebaut als gedownt, entzippt, verschoben und geladen.

aber in zukunft, wenns mehr als 3 strippen sind, mach ichs.

Verfasst: 8. September 2007, 23:53
von toxonic
mhh, ja - haste recht..... aber welchen zweck erfüllt die self-iteration eigentlich? wozu alle werte im array beim init lesen und ausgeben?

Verfasst: 9. September 2007, 06:55
von herw
und was ist jetzt dein Problem?
SVA.gif

Verfasst: 9. September 2007, 09:20
von helmsklamm
wie du siehst liegt hinten bei idx als letztes 5 an. ich sehe also das du 5 zellen definiert hast und für zelle 5 (aber auch alle anderen) ist in diesem snap der wert 0.5 gespeichert.
leider hast du vorne ne konstante die höher als mögliche idxiez ist.
- mein fehler ich meinte natürlich <5 - sorry.

in diesem falle, nehmen wir 3, würdest du hinten trotzdem idx # 5 als letzter wert ausgelesen und gehalten, obwohl du vorne 3 spezifiziert hättest. und nehmen wir an, dein gespeicherter wert für idx #3 wäre ungleich 0.5, wie diener für # 5 ist, hättest du hinten am out nen "falschen" wert.
das ist (war) "mein" problem.

wie gesagt, es lässt sich ja mit ner event-verzögerung leicht beheben, aber bis ich die ursache gefunden und gefixt hatte, war wieder ne stunde lebenszeit UNNÖTIG weg.

@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?

Re: SVA: self iteration nerv

Verfasst: 9. September 2007, 10:55
von herw
helmsklamm hat geschrieben:das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
Was ist daran schlimm; das Modul gibt seinen kompletten Inhalt bei einer Initialisierung aus, dafür ist es gedacht und genau so funktioniert die Self-Iteration. Wenn Du zusätzlich einen bestimmten Wert auslesen möchtest, dann ist das Deine Aufgabe, das zu organisieren. Nicht alle möglichen Anwendungen lassen sich vorhersehen. Ich will nur mal als mögliche andere Aufgabe angeben, dass vielleicht jemand anderer nur jede zweiten Wert benötigt oder gar die Werte unbedingt rückwärts ausgegeben haben möchte. Das muss der User selbst regeln.
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.

es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
das mit nutella verstehe ich nicht. Ich weiß auch nicht, wieso das nicht einfach hinzubiegen ist, du musst doch nur mit einem Compare und ein oder zwei Routern den gewünschten Wert bei der self interation herausfiltern und dann hast Du es; das sind drei triviale Module und sechs Kabelverbindungen ( ;-) sorry den Seitenhieb kann ich mir nicht verkneifen).
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
ich weiß nicht, was du mit vorher meinst; wenn ich das so herausfiltere wie oben beschrieben und das mit der Ausgabe beim eventwatcher vergleiche, werden doch zunächst der Index und dann der passende Wert ausgegeben.
Also alles funktioniert so, wie es gut ist, und völlig ordentlich. Ich kann keinen Makel finden.

Verfasst: 9. September 2007, 11:09
von toxonic
@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
:? nee, ehrlich gesagt, es leuchtet mir nicht ein.... evtl. um bei der initialisierung gleich die gespeicherten werte in nen table zu schreiben? das wäre ne möglichkeit, aber da fällt mir jetzt keine praktische anwendung für ein... oder doch? meinst du sowas?
also, wenn es den zweck erfüllen soll, ist ja wohl auch klar, warum das sva array diesen auslesevorgang WÄHREND der initialisierung machen muss und nicht VORHER! demnach is die lösung mit dem delay doch auch ganz ok!
btw: habs noch net ausprobiert.... geht das auch mit nem unit delay? wahrscheinlich nicht, oder?

Verfasst: 9. September 2007, 11:42
von herw
toxonic hat geschrieben:
@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
:? nee, ehrlich gesagt, es leuchtet mir nicht ein.... evtl. um bei der initialisierung gleich die gespeicherten werte in nen table zu schreiben? das wäre ne möglichkeit, aber da fällt mir jetzt keine praktische anwendung für ein... oder doch? meinst du sowas?
also, wenn es den zweck erfüllen soll, ist ja wohl auch klar, warum das sva array diesen auslesevorgang WÄHREND der initialisierung machen muss und nicht VORHER! demnach is die lösung mit dem delay doch auch ganz ok!
btw: habs noch net ausprobiert.... geht das auch mit nem unit delay? wahrscheinlich nicht, oder?
@helmsklamm

ich versteh auch nicht die Sache mit dem Delay. Willst Du nun einen bestimmten Wert bei der Intialisierung haben oder was? Mit Raterei kommen wir hier nicht weiter.

Verfasst: 9. September 2007, 14:01
von toxonic
nun, so wie ich das verstehe, will er wohl, das, wie bei self-iteration vorgesehen, die werte bei init alle ausgelesen werden (um z.b. damit einen eventtable oder was weis ich auch immer zu beschreiben...) und anschliessend die per index angewählte zelle ausgelesen wird!
da das snap value array aber, wie der name schon sagt, zum abspeichern von werten innerhalb eines snapshots dient, brauchst du ja im prinzip nur die ganze sache mit dem gewünschten index input wert als snap zu speichern und fertig, dann wird beim nächsten aufruf des snaps und der damit verbundenen initialisierung am schluss der self-iteration der im snap gespeicherte wert ausgegeben? oder?
wenn dir das so nicht gefällt, musst du wahrscheinlich auf die delay version zurückgreifen, das funktioniert ja so, wie du's willst! eine andere möglichkeit sehe ich da erstmal nicht, ich habe die modulproperties soweit alle durchgecheckt, im modul selber wirst du da keine lösung finden, denke ich!

Verfasst: 9. September 2007, 19:37
von herw
toxonic hat geschrieben:nun, so wie ich das verstehe, will er wohl, das, wie bei self-iteration vorgesehen, die werte bei init alle ausgelesen werden (um z.b. damit einen eventtable oder was weis ich auch immer zu beschreiben...) und anschliessend die per index angewählte zelle ausgelesen wird!
da das snap value array aber, wie der name schon sagt, zum abspeichern von werten innerhalb eines snapshots dient, brauchst du ja im prinzip nur die ganze sache mit dem gewünschten index input wert als snap zu speichern und fertig, dann wird beim nächsten aufruf des snaps und der damit verbundenen initialisierung am schluss der self-iteration der im snap gespeicherte wert ausgegeben? oder?
wenn dir das so nicht gefällt, musst du wahrscheinlich auf die delay version zurückgreifen, das funktioniert ja so, wie du's willst! eine andere möglichkeit sehe ich da erstmal nicht, ich habe die modulproperties soweit alle durchgecheckt, im modul selber wirst du da keine lösung finden, denke ich!
ich verstehe immer noch nicht wozu das delay sein soll. Ich kann doch den Wert, den ich haben möchte zusätzlich herausfiltern und mit dem abschließenden GateOff-Befehl des SVA ausgeben; da braucht man kein delay. Das SVA bietet doch diesen Luxus und die Speicherung des Indexwertes durch ein normales snap ist doch absolut ok und im Sinne des Erfinders.