Class DataGenerator
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface
java de.bsvrz.pat.datgen.generator.main.DataGenerator [-protModul=<modulName>] [-datei=<protokollDatei>] [-autark]
[<weitereParameterDesVerwendetenProtokollierungsmoduls>] ([-zyklus=<zyklusVon>[-<zyklusBis>]] [-anzahl=<anzahlZyklen>]
[-spreizung=<spreizungsGrad>] [-zeit=<zeitstempelWert>] [-rolle=<anmeldeRolle>] objekte=<objektSpezifikationen> -daten=<datenSpezifikation>)+
oder java de.bsvrz.pat.datgen.generator.main.DataGenerator [-protModul=<modulName>] -eingabe=<eingabeDatei>
[-basisUri=<uri>] [-zeitstempel=<wiedergabeVerhalten>] [-validieren=ja|nein] [-datei=<protokollDatei>] [-autark]
[<weitereParameterDesVerwendetenProtokollie-rungsmoduls>] ([-rolle=<anmeldeRolle>] [-objekte=<objektSpezifikationen> -daten=<datenSpezifikation>])+
Beispiel:
java de.bsvrz.pat.datgen.generator.main.DataGenerator -ausgabe=kopf -objekte=vrz.aachen:MQ
-daten=atg.verkehrswerte:asp.analyseWerte
Es können also eine oder mehrere Anmeldespezifikationen beim Start des Programms angegeben
werden. Jede Anmeldespezifikation kann optional die Zykluszeit, Anmelde-Rolle, die Art der Protokollierung und die Angabe der Objekte, für die die
Anmeldung durchgeführt werden soll, enthalten. Wenn diese Argumente weggelassen werden, dann übernehmen sie ihren Wert aus der vorhergegangenen
Anmeldespezifikation. Über die Datenspezifikation muss angegeben werden, welche Daten angemeldet werden sollen.
Die Zykluszeit kann durch eine relative Zeitangabe
spezifiziert
werden.
Für den Platzhalter anmeldeRolle
können die Werte quelle
bzw. sender
eingesetzt werden, um zu signalisieren, dass die
anzumeldenden Daten als Quelle an beliebige Empfänger bzw. als Sender an eine Senke übertragen werden sollen. Wenn keine Anmelde-Rolle angegeben
wurde, wird standardmäßig der Wert empfänger
benutzt.
Mit dem Platzhalter objektSpezifikationen
können mehrere Objekte durch Komma getrennt spezifiziert werden. Ein Objekt wird entweder durch
die Objekt-Id oder vorzugsweise durch die PID des Objekts spezifiziert. Optional kann hinter der Objekt-ID oder PID mit Doppelpunkt getrennt ein
Mengenname angegeben werden; damit wird dann nicht das angegebene Objekt, sondern alle in der angegebenen Menge unterhalb des angegebenen Objekts
enthaltenen Objekte spezifiziert.
Mit dem Platzhalter datenSpezifikation
werden durch Doppelpunkt getrennt die PID der Attributgruppe, die PID des Aspekts und die
Simulationsvariante für die Anmeldung und die Datenerzeugung spezifiziert. Die Simulationsvariante kann (einschließlich des vorhergehenden
Doppelpunkts) weggelassen werden um die Default-Simulationsvariante (i.a. 0) zu benutzen.
Nach der Anmeldung auf die spezifizierten Daten werden für jede Anmeldespezifikation unabhängig zyklisch Daten für die jeweiligen Objekte
generiert. Dabei wird das Senden der Datensätze über den im Platzhalter spreizungsGrad
angegeben Wert (in Prozent) über den entsprechenden
Anteil der Zykluszeit homogen verteilt. Bei der Angabe -zyklus=1m -spreizung=50
werden minütlich Datensätze für die Objekte generiert und
innerhalb der ersten 30 Sekunden eines jeden Zyklus übertragen. Wenn kein Spreizungsgrad angegeben wurde, wird der Wert 0
benutzt. Dabei
werden die Datensätze der einzelnen Objekte in jedem Zyklus im Block übertragen.
Die Anzahl der Zyklen, kann über den Platzhalter anzahlZyklen
vorgegeben werden. Wenn keine Anzahl vorgegeben ist, dann wird der Wert 0
benutzt, der als unbeschränkt interpretiert wird.
Beim Versenden von Datensätzen können diese mit Hilfe der Ausgabefunktion des Onlineprotokollierers ausgegeben werden.
Beim Erzeugen von Daten berücksichtigt der Datengenerator die im Metamodell angegebenen Wertebereichsgrenzen. Ansonsten sind die erzeugten Daten im wesentlichen zufällig, d.h. aus fachlicher Sicht i.a. nicht sinnvoll.
-
Field Summary
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
checkSubscription
(List subscriptions) Anmeldungen durchgehen und den Wunsch nach Sendesteuerung entsprechend setzen.void
dataRequest
(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state) Sendesteuerung des Datenverteilers an die Applikation.boolean
Liefert Information, ob Datengenerator autark läuft oder nicht.boolean
isRequestSupported
(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription) Diese Methode muss von der Applikation implementiert werden, um zu signalisieren, ob Sendesteuerungen gewünscht sind und mit der MethodedataRequest
verarbeitet werden.static void
Hauptfunktion des Datengenerators
-
Method Details
-
checkSubscription
Anmeldungen durchgehen und den Wunsch nach Sendesteuerung entsprechend setzen. Sind keine Objekte angegeben, wird die Auswertung auf einen späteren Zeitpunkt verschoben. Sonst gilt die Regel, daß generell keine Sendesteuerung gewünscht wird, außer es ist mindestens ein Sender vorhanden.- Parameters:
subscriptions
- Liste der Anmeldunge
-
main
Hauptfunktion des Datengenerators- Parameters:
arguments
- String[] mit Aufrufargumenten
-
dataRequest
public void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state) Sendesteuerung des Datenverteilers an die Applikation.- Specified by:
dataRequest
in interfacede.bsvrz.dav.daf.main.ClientSenderInterface
- Parameters:
object
- Das in der zugehörigen Sendeanmeldung angegebene Objekt, auf das sich die Sendesteuerung bezieht.dataDescription
- Beschreibende Informationen zu den angemeldeten Daten auf die sich die Sendesteuerung bezieht.state
- Status der Sendesteuerung. Kann einen der WerteSTART_SENDING
,STOP_SENDING
,STOP_SENDING_NO_RIGHTS
,STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
enthalten.
-
getIsAutarkic
public boolean getIsAutarkic()Liefert Information, ob Datengenerator autark läuft oder nicht.- Returns:
- boolean, welches
true
ist, falls der Datengenerator autark läuft. Sonst ist esfalse
.
-
isRequestSupported
public boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription) Diese Methode muss von der Applikation implementiert werden, um zu signalisieren, ob Sendesteuerungen gewünscht sind und mit der MethodedataRequest
verarbeitet werden. Da hier Sendesteuerung erwünscht ist, liefert diese Methodetrue
zurück.- Specified by:
isRequestSupported
in interfacede.bsvrz.dav.daf.main.ClientSenderInterface
- Parameters:
object
- Das in der zugehörigen Sendeanmeldung angegebene System-Objekt.dataDescription
- Die in der zugehörigen Sendeanmeldung angegebenen beschreibenden Informationen der angemeldeten Daten.- Returns:
true
, falls Sendesteuerungen gewünscht sind, sonstfalse
.
-