Wenn du eine Event-Table definierst (Table size festlegen und einen Namen für die Tabelle vergeben), dann kannst du diese Tabelle kopieren.macrospank hat geschrieben:Na gut, auf „Ring-Eventbus” können wir uns einigen. Ebenfalls richtig erkannt das es da ohne "Bremsen" zu Eventloops kommt.herw hat geschrieben:Das wäre dann ja ein „Ring-Eventbus”?
Da müsste man Bremsen einbauen, damit es nicht zu einem Eventloop kommt.
Eine sichere Alternative ist, eine Event-Table mit clients zu benutzen.
Wenn es den Rahmen dieses Threads nich sprengt.....
Kannst du mir bitte Event-Table "Clients" kurz erklären oder mich zu einer Erklärung Verweisen?
cheers
Die neue Tabelle greift dann als Client auf die Daten der ersten Tabelle zurück. Mit anderen Worten: die neue Tabelle legt nur einen Zeiger auf die erste Tabelle.
Das hat zur Folge, dass jeder Zugriff auf die Originaltabelle oder deren Clients eigentlich nur ein Zugriff auf ein und dieselbe Tabelle ist.
Wenn Du nun über einen Eventbus beispielsweise die Daten in einer Tabelle veränderst, dann kann an jeder anderen Stelle des Eventbusses (also auch „vorne”) direkt auf die neuen Daten über die Clients zugegriffen werden.
Mit anderen Worten: eine Eventtabelle mit ihren Clients ist ein zentrales Speicherfeld in der Primary-Ebene.
Natürlich ist es lästig, über einen Eventbus einzelne Zellen zu verändern. Man möchte natürlich wie in PRISM beispielsweise ganze Gruppen von Daten auf einen Schlag verändern. Dies geschieht über Eventblockbusse, d.h es werden ganze Datenblöcke auf einmal (sequentiell) durch den Datenbus geschickt und ausgewertet. Dies benutze ich im modular X. Dort wird beispielsweise das gewählte Kabel mit Anfangs- und Zielpunktkoordinaten, den Farbkomponenten, der Anzahl der Eingänge und Ausgänge, gewählter Ein- und Ausgang etc. in einem Eventblock übertragen und auch teilweise in Eventtabellen abgespeichert und natürlich auch in ein snapshotarray eingeschrieben bzw. ausgelesen.
In Prism werden dazu aber nicht Eventtabellen benutzt, sondern Datenarrays in Core.
Die ganze Organisation drumherum, wie man einen solchen Datentyp (Eventblock) behandelt (Indizierung, Anzahl der Daten, lesen, schreiben, filtern, mischen, anordnen, umordnen etc.), erfordert ein umfangreiches Werk an Modulen und Makros, die gut und sicher und eindeutig miteinander arbeiten müssen. Ich hoffe, dass da mal irgendwann etwas kommt
Das ganze Thema ist hochinteressant und beschäftigt mich schon seit gut einem dreiviertel Jahr und irgendwann werde ich es auch bei Interesse intensiv zur Diskussion stellen wollen.
Die Möglichkeiten eines solchen Eventblockbusses sind kolossal, obwohl man sich dabei nicht aus REAKTOR 5 entfernt.
ciao herw