|
Autor
|
Thema: Methode triggern (4002 mal gelesen)
|
ver-PLANT Mitglied Student
 Beiträge: 6 Registriert: 11.09.2007
|
erstellt am: 11. Sep. 2007 22:48 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Folgendes: Ich möchte eine Methode triggern und zwar ähnlich dem Triggern einer Quelle zur BE Erstellung o.ä. Ich weiß, dass bei einem Aufruf immer nur der alte und neue Wert des Triggers in eine Methode übergeben werden (ausprobiert habe ich es auch). Was ich mir wünsche ist, dass meine Methode nicht nur ein einziges mal, zu Beginn einer Stunde aufgerufen wird, sondern in einer Stunde mehrmals ausgelöst wird und das auch noch statistisch verteilt, also "zufällig" aus Seedwerten generiert. Eben so, wie es beim Triggern einer Quelle ohne weiteres möglich ist... Wie soll ich bspw. den aus dem Trigger übergebenen Wert 45 -für das 45malige auslösen einer Methode in einer Stunde- in der Methode verarbeiten, damit diese dann zu verschiedenen "zufälligen" Zeitpunkten innerhalb dieser Stunde bestimmte Atribute der Bausteine meines Modells ändert? Mir ist nicht klar, ob das Triggern von Methoden auf diese Art und Weise überhaupt möglich ist, ohne in der Methode viel Code zu schreiben. Ich dachte eigentlich, der Trigger würde mir diese Arbeit ersparen. Danke im Voraus! Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Homer Simpson Mitglied
 
 Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 12. Sep. 2007 07:31 <-- editieren / zitieren --> Unities abgeben:          Nur für ver-PLANT
|
ver-PLANT Mitglied Student
 Beiträge: 6 Registriert: 11.09.2007
|
erstellt am: 12. Sep. 2007 10:44 <-- editieren / zitieren --> Unities abgeben:         
Das habe ich mir auch schon überlegt. Nur soll die Anzahl der Methodenaufrufe innerhalb einer Stunde über den Tag verteilt variieren. bspw. 1.Stunde 45, 2.Stunde 130, 3.Stunde 12 ... Beim Generator ist man aber doch auf einen Wert festgelegt und müsste somit 13 Generatoren für 13 Stunden erstellen, oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jabba Mitglied
 Beiträge: 7 Registriert: 27.01.2006
|
erstellt am: 12. Sep. 2007 11:52 <-- editieren / zitieren --> Unities abgeben:          Nur für ver-PLANT
Lassen Sie doch einfach die Methode sich selbst wieder aufrufen: mittels belibigen Verteilungsfunktionen wie z.B. z_normal() können Sie den zeitlichen Abstand des nächsten Aufrufes bestimmen und mit self.methCall(<dauer> ) aktivieren Sie dann den nächsten Aufruf. Hier haben Sie sogar die Möglichkeit weitere Parameter zu übergeben: self.methCall(<Dauer>, <Param1>,..<Param n> ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Statiker mit Schwerpunkt Stahlbaukonstruktionen (m/w/d) | | Im Bereich Construction & Property vermitteln wir Fach- und Führungskräfte in der Bau- und Immobilienbranche. Wir unterstützen Sie und unsere Kundenunternehmen in allen Bereichen des Hoch- & Tiefbaus sowie im Facility Management, im Großanlagenbau, in der TGA oder im Real Estate Management. Als überregionales, weltweit agierendes Personaldienstleistungsunternehmen können wir Ihnen sowohl Positionen ... | | Anzeige ansehen | Feste Anstellung |
|
LaBonita Mitglied Dipl.-Math.
 
 Beiträge: 151 Registriert: 26.07.2007 eM-Plant 7.5 bis 8.1 VB Java C#
|
erstellt am: 12. Sep. 2007 13:49 <-- editieren / zitieren --> Unities abgeben:          Nur für ver-PLANT
Hallo Christian, Du brauchst keine 13 Generatoren. Letzen Endes benötigst Du nur 2 Generatoren - einen der Deinen Methoden-Trigger-Generator jede Stunde neu kalibiert und den Methoden-Trigger-Generator selbst. Hier ein kleines Code-Beispiel, wie die erste Abstands-Methode des "Stunden-Generators" aussehen könnte: Code: is local oneHour, val: integer; mean: real; attr: string; do val := z_gleich(1, 1, 100); oneHour := 60 * 60; mean := oneHour / val; attr := "1," + num_to_str(mean); attr := attr + "," + num_to_str(mean / 2) + ",0,"; attr := attr + num_to_str(mean); current.Generator1.interval.setTypeAndAttr("Normal", attr); end;
Hierbei habe ich jede Stunde den Abstand eines zweiten Generators neu gesetzt nach einem stochastischen Anzahlwert (val), der bestimmt wie oft im Mittel der zweite Generator ausgelöst werden soll. Eine Stunde wird in entsprechende Segmente unterteilt und das wird mittels Normalverteilung an den zweiten Generator als Abstand übergeben. Schau es Dir mal an. Da kann sicherlich noch etwas dran verändert werden. UND: Diese Lösung stellt nicht sicher, dass die Anzahl auch auf jeden Fall erreicht wird. Das läßt sich (glaube ich) nur machen, wenn Du die Abstände vorher ermittelst und dann mithilfe einer Tabelle o. ä. abfährst. Geht aber prinzipiell auch. Rückfragen gerne - aber schau Dir die Sachen auch mal in der Hilfe an. Gruß, Ortrun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |