public class ParamApp extends java.lang.Object implements ClientSenderInterface, ClientReceiverInterface
Diese Klasse implementiert die Parametrierung, die sich über Aufrufargumente gesteuert auf beliebige Vorgabe-Parameter-Daten des Systems anmelden kann, und diese als Soll-Parameter publiziert.
Datenfluss:
Ein zu verwendender Paramtersatz wird (i.d.R. durch die Bedienung) als Vorgabe-Parameter versandt und von der Paramterierung (die darauf als Senke angemeldet ist) als Soll-Paramter publiziert. Der Soll-Parameter wird von den zu parametrierenden Applikationen verwendet. Eine solche Applikation hat zudem die Möglichkeit (wird i.d.R. aber nicht verwendet) den von ihr tatsächlichen benutzten Paramtersatz als Ist-Parameter zu publizieren.
Bespiel: Bedienung setzt Vorgabe-Parameter für Erfassungszyklus auf Wert 1,1 Minuten. Parameterierung publiziert dies an alle angemeldeten Applikationen als Soll-Parameter. Die TLS-Applikation (als ein Abnehmer) sendet diesen Wert an die Streckenstation. Da dort keine 1,1 Minuten eingestellt werden können, meldet die Streckenstation als eingestellten Wert 1 Minute zurück. Die TLS-Applikation publiziert daraufhin als Ist-Paramter den Wert 1-Minute. In der Bedienung könnte z.B. über eine Gegenüberstellung von Vorgabe-, Soll- und Ist-Parameter auf diese Abweichung hingewiesen werden.
Aufruf:
Pid: PID des Parametrierungsobjekts (typ.parametrierung) an dem die Parameter für diese Parametrierung verwaltet werden. Default: parametrierung.global Die Beschreibung der Parameterattributgruppe siehe DatKat, atg.parametrierung.
mit: java de.kappich.puk.param.main.ParamApp -parameterPfad=ParameterPfad -parametrierung=Pid
ParameterPfad: Pfadangabe, in der die Parameterdaten persistent gehalten werden. Default: “./parameter”. Der spezifizierte Zielordner muss existieren!
Modifier and Type | Class and Description |
---|---|
private static class |
ParamApp.UncaughtExceptionHandler
Implementierung eines UncaughtExceptionHandlers, der bei nicht abgefangenen Exceptions und Errors entsprechende Ausgaben macht und im Falle eines Errors den Prozess terminiert.
|
Modifier and Type | Field and Description |
---|---|
private boolean |
_applicationReadyMessageNotSent
true , wenn die Applikationsfertigmeldung noch nicht gesendet wurde. |
private DataModel |
_config
Zugriff auf die aktuelle Konfiguration.
|
private static ClientDavInterface |
_connection
Das Verbindungsobjekt zum Datenverteiler.
|
private static Debug |
_debug
Aktueller DebugLogger.
|
private Aspect |
_inputAspect
Der Aspekt, mit dem die Parametersätze von der Parametrierung empfangen werden.
|
private Aspect |
_outputAspect
Der Aspekt, mit dem die Parametersätze durch die Parametrierung publiziert werden.
|
private java.util.Hashtable |
_paramObjects
Tabelle mit den aktuell verwalteten PersistenceHandlern.
|
private static java.io.File |
_paramPath
Verzeichnispfad, in dem die Parametersätze persistent gespeichert werden.
|
private PersistanceHandlerManager |
_persistanceHandlerManager
ManagerObjekt, der die PersistenceHandler für die Paramtersätze verwaltet.
|
private static java.lang.String |
_pidParametrierung
Pid des Parametrierungsobjekts mit den Parametern, über die sich die Parametrierung parametrieren läßt.
|
(package private) static java.lang.String |
ASP_INPUT
Die Pid des Aspekts, mit dem Parameter (z.B. durch die Bedienung) vorgegeben werden.
|
(package private) static java.lang.String |
ASP_OUTPUT
Die Pid des Aspekts, mit dem die durch die Parametrierung verwalteten Parameter von der Parametrierung publiziert werden, nachdem sie (z.B. durch die Bedienung) vorgegeben wurden (siehe auch
ASP_INPUT . |
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Constructor and Description |
---|
ParamApp()
Konstruiert ein ParamApp Objekt.
|
Modifier and Type | Method and Description |
---|---|
void |
dataRequest(SystemObject object,
DataDescription dataDescription,
byte state)
Sendesteuerung des Datenverteilers an die Applikation.
|
boolean |
isRequestSupported(SystemObject object,
DataDescription dataDescription)
Liefert
false zurück, um den Datenverteiler-Applikationsfunktionenen zu signalisieren, dass keine Sendesteuerung gewünscht wird. |
static void |
main(java.lang.String[] arguments)
Main-Methode mit Auswertung der Aufrufparamter Anmeldung an den Datenverteiler Erzeugen ein ParamApp
|
void |
update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.
|
static final java.lang.String ASP_INPUT
Die Pid des Aspekts, mit dem Parameter (z.B. durch die Bedienung) vorgegeben werden. Dieser Aspekt wird von der Parametrierung empfangen und dann mit dem Aspekt ASP_OUTPUT
publiziert werden.
static final java.lang.String ASP_OUTPUT
Die Pid des Aspekts, mit dem die durch die Parametrierung verwalteten Parameter von der Parametrierung publiziert werden, nachdem sie (z.B. durch die Bedienung) vorgegeben wurden (siehe auch ASP_INPUT
.
private PersistanceHandlerManager _persistanceHandlerManager
ManagerObjekt, der die PersistenceHandler für die Paramtersätze verwaltet.
private java.util.Hashtable _paramObjects
Tabelle mit den aktuell verwalteten PersistenceHandlern. Als Schlüssel dient die DatenIdentifikation (DataIdentification
). Damit kann auf die persistenten Parametersätze für eine DatanIdentifikation zugegriffen werden (PersistanceHandlerManager
).
private static java.io.File _paramPath
Verzeichnispfad, in dem die Parametersätze persistent gespeichert werden. Das Verzeichnis wird als Aufrufparameter übergeben und muss bereits existieren.
private static java.lang.String _pidParametrierung
Pid des Parametrierungsobjekts mit den Parametern, über die sich die Parametrierung parametrieren läßt.
private static ClientDavInterface _connection
Das Verbindungsobjekt zum Datenverteiler.
private Aspect _outputAspect
Der Aspekt, mit dem die Parametersätze durch die Parametrierung publiziert werden.
private Aspect _inputAspect
Der Aspekt, mit dem die Parametersätze von der Parametrierung empfangen werden.
private DataModel _config
Zugriff auf die aktuelle Konfiguration.
private static Debug _debug
Aktueller DebugLogger.
private boolean _applicationReadyMessageNotSent
true
, wenn die Applikationsfertigmeldung noch nicht gesendet wurde.
public ParamApp()
Konstruiert ein ParamApp Objekt. Bei der Konstruktion werden folgende Schritte durchgeführt:
atg.parametrierung
des als Aufrufparameter übergebenen ParamApp-Objekts.SettingsManager
zur Verarbeitung geänderter Parameterzuständigkeiten. atg.parametrierung
der ParametrierungDamit empfängt die Parametrierung als erstes “ihren” Parametersatz und wertet ihn aus, wodurch dann alle zu parametrierenden Datensätze angemeldet, eventuell vorhande persistente Daten versandt und geänderte Vorgaben verarbeitet werden (d.h. die Parameterierung zieht sich so beim Start selbst aus dem Sumpf.
public void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
Sendesteuerung des Datenverteilers an die Applikation. Diese Methode muss von der Applikation implementiert werden, um den Versand von Daten zu starten bzw. anzuhalten. Der Datenverteiler signalisiert damit einer Quelle oder einem Sender dass mindestens ein Abnehmer bzw. kein Abnehmer mehr für die zuvor angemeldeten Daten vorhanden ist. Die Quelle wird damit aufgefordert den Versand von Daten zu starten bzw. zu stoppen.
dataRequest
in interface ClientSenderInterface
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 Werte START_SENDING
, STOP_SENDING
, STOP_SENDING_NO_RIGHTS
, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
enthalten.ClientSenderInterface.START_SENDING
,
ClientSenderInterface.STOP_SENDING
,
ClientSenderInterface.STOP_SENDING_NO_RIGHTS
,
ClientSenderInterface.STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
public boolean isRequestSupported(SystemObject object, DataDescription dataDescription)
Liefert false
zurück, um den Datenverteiler-Applikationsfunktionenen zu signalisieren, dass keine Sendesteuerung gewünscht wird.
isRequestSupported
in interface ClientSenderInterface
object
- Wird ignoriert.dataDescription
- Wird ignoriert.false
.ClientSenderInterface.dataRequest(de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, byte)
public void update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.
update
in interface ClientReceiverInterface
results
- Feld mit den empfangenen Ergebnisdatensätzen.public static void main(java.lang.String[] arguments)
Main-Methode mit
arguments
- Die Aufrufparameter der Applikation