public class TlsApplicationLayer extends java.lang.Object implements ApplicationLayer, de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayerListener
Modifier and Type | Field and Description |
---|---|
private static java.util.Set |
_additionalDevicesSenderReceiverSet |
private java.util.List |
_additionalDeviceTable |
private java.util.Set |
_allDevices |
(package private) static de.bsvrz.dav.daf.main.config.DataModel |
_config |
private java.util.List |
_connectionPoints |
private java.util.List |
_connectionPointsPartner |
private java.util.Map |
_conversionModules |
(package private) de.bsvrz.dav.daf.main.ClientDavInterface |
_daf |
static Queue |
_deBlockQueue |
private static java.util.Map |
_deviceTable |
(package private) de.bsvrz.dav.daf.main.config.ConfigurationObject |
_localDevice |
static de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayer |
_networkLayer |
private static java.util.Map |
_objectsRefToDe |
private java.util.Set |
_responsibilityDevices |
private static java.util.Map |
_sendDeBlock |
private boolean |
_sendOnlyConnectedSM |
private boolean |
_sendOnlyDeOk |
private static java.util.Map |
_sendSingleTelegram |
(package private) static int |
ASP
Index für den Zugriff auf den Aspekt in den Objekten aus SourceDataReferencesDefault.sourceDataReferences.
|
(package private) static int |
ATG
Index für den Zugriff auf die Attributgruppe in den Objekten aus SourceDataReferencesDefault.sourceDataReferences.
|
(package private) static int |
ATT
Index für den Zugriff auf den Attributnamen in den Objekten aus SourceDataReferencesDefault.sourceDataReferences.
|
private static de.bsvrz.sys.funclib.debug.Debug |
debug
DebugLogger für Debug-Ausgaben
|
(package private) static int |
OT
Index für den Zugriff auf den Typ in den Objekten aus SourceDataReferencesDefault.sourceDataReferences.
|
Constructor and Description |
---|
TlsApplicationLayer(de.bsvrz.dav.daf.main.ClientDavInterface daf,
de.bsvrz.dav.daf.main.config.ConfigurationObject localDevice,
de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayer networkLayer,
java.lang.String sourceDataReferencesClassName,
boolean sendOnlyDeOk,
boolean sendOnlyConnectedSM) |
Modifier and Type | Method and Description |
---|---|
static void |
addSendDeBlock(int jobNumber,
DeBlock deBlock) |
static void |
addSendSingleTelegram(int jobNumber,
SingleTelegram singleTelegram) |
void |
dataReceived(int sender,
byte[] data,
boolean longTelegram)
Wird durch OSI 3 aufgerufen, wenn Telegramm empfangen wurde.
|
private java.lang.String |
debugConfigurationSummary()
Stellt die Debugausgabe für die ermittellte Konfiguration zusammen.
|
private void |
getConnectedDevices(de.bsvrz.dav.daf.main.config.ConfigurationObject device,
java.util.Set allDevices,
java.util.Set responsibilityDevices)
Ermittelt rekursiv ab dem übergebenen Startgerät (typ.gerät) die angeschlossenen Geräte
|
static de.bsvrz.dav.daf.main.config.SystemObject[] |
getObjectRefsToDe(de.bsvrz.dav.daf.main.config.SystemObject de)
Liefert die auf dieses DE referenzierenden Fachobjekte eines bestimmten Objekttyps.
|
static DeBlock |
getSendDeBlock(int jobNumber) |
static SingleTelegram |
getSendSingleTelegram(int jobNumber) |
static boolean |
isCorrectSender(int osi7AdressSender,
int osi7AdressReceiver,
int de,
int fg)
Prüft, ob die angebene Kombination von Sender des Telegramms und den Empfangsdaten (Empfängerknotennummer, DeNummer
und FG in der Liste der TLS ähnlichen Kommunikationspartner überhaupt existiert.
|
private void |
putObjectRefToDe(de.bsvrz.dav.daf.main.config.SystemObject de,
de.bsvrz.dav.daf.main.config.SystemObject refObjectToDe)
Fügt ein Fachobjekt der Liste der auf ein DE referenzierenden Objekte hinzu.
|
private void |
sendTimeSync(int osi7adress)
Sendet die Zeitsynconisation an das Gerät (Fg 254 / ID 2 / Typ 18).
|
void |
start()
Startmethode von ApplicationLayer.
|
void |
stateChanged(int osi7adress,
int connectionState)
Wird durch OSI 3 aufgerufen, wenn sich der Verbindungsstatus zu einem Gerät ändert.
|
static void |
writeNoDataToUnreachableDe(Eak eak,
long timeStamp)
Ermittelt aus dem Eak alle betroffenen De und schreibt bei diesen für alle angemeldeten Daten einen leeren
Datensatz, so dass der aktuelle Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(Eak eak,
long timeStamp,
int fg)
Ermittelt aus dem Eak alle betroffenen De und schreibt bei diesen für alle angemeldeten Daten einen leeren
Datensatz, so dass der aktuelle Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(Eak eak,
long timeStamp,
int fg,
java.lang.String[] excludedAtgAspArray)
Ermittelt aus dem Eak alle betroffenen De und schreibt bei diesen für alle angemeldeten Daten einen leeren
Datensatz, so dass der aktuelle Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(int[] osi7Adress,
long timeStamp)
Ermittelt aus der Liste der übergebenen Osi7Adressen der nicht erreichbaren Geräte (Kommunikationsunterbrechung)
alle betroffenen De und schreibt bei diesen für alle angemeldeten Daten einen leeren Datensatz, so dass der aktuelle
Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(int[] osi7Adress,
long timeStamp,
java.lang.String[] excludedAtgAspArray)
Ermittelt aus der Liste der übergebenen Osi7Adressen der nicht erreichbaren Geräte (Kommunikationsunterbrechung)
alle betroffenen De und schreibt bei diesen für alle angemeldeten Daten einen leeren Datensatz, so dass der aktuelle
Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(java.util.List deList,
long timeStamp,
int fg,
java.lang.String atg)
Schreibt bei dem übergebenen De für alle angemeldeten Daten (ausser dem DeFehler) einen leeren Datensatz, so dass
der aktuelle Zustand dieser Daten als nicht bekannt publiziert wird.
|
static void |
writeNoDataToUnreachableDe(java.util.List deList,
long timeStamp,
int fg,
java.lang.String[] excludedAtgAspArray)
Schreibt bei dem übergebenen De für alle angemeldeten Daten (ausser dem DeFehler) einen leeren Datensatz, so dass
der aktuelle Zustand dieser Daten als nicht bekannt publiziert wird.
|
public static final Queue _deBlockQueue
static final int ASP
static final int ATG
static final int ATT
static final int OT
private static final de.bsvrz.sys.funclib.debug.Debug debug
private static java.util.Map _sendSingleTelegram
private static java.util.Map _sendDeBlock
private static java.util.Map _objectsRefToDe
private static java.util.Map _deviceTable
private static java.util.Set _additionalDevicesSenderReceiverSet
static de.bsvrz.dav.daf.main.config.DataModel _config
public static de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayer _networkLayer
private final boolean _sendOnlyConnectedSM
private final boolean _sendOnlyDeOk
private java.util.List _connectionPoints
private java.util.List _connectionPointsPartner
de.bsvrz.dav.daf.main.ClientDavInterface _daf
de.bsvrz.dav.daf.main.config.ConfigurationObject _localDevice
private java.util.List _additionalDeviceTable
private java.util.Map _conversionModules
private java.util.Set _allDevices
private java.util.Set _responsibilityDevices
public TlsApplicationLayer(de.bsvrz.dav.daf.main.ClientDavInterface daf, de.bsvrz.dav.daf.main.config.ConfigurationObject localDevice, de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayer networkLayer, java.lang.String sourceDataReferencesClassName, boolean sendOnlyDeOk, boolean sendOnlyConnectedSM)
public static void addSendDeBlock(int jobNumber, DeBlock deBlock)
jobNumber
- deBlock
- public static void addSendSingleTelegram(int jobNumber, SingleTelegram singleTelegram)
jobNumber
- singleTelegram
- public static de.bsvrz.dav.daf.main.config.SystemObject[] getObjectRefsToDe(de.bsvrz.dav.daf.main.config.SystemObject de)
de
- Objekt (De), für die die Objekte die auf diese DE referenzieren, ermittelt werden sollen.public static DeBlock getSendDeBlock(int jobNumber)
jobNumber
- public static SingleTelegram getSendSingleTelegram(int jobNumber)
jobNumber
- public static boolean isCorrectSender(int osi7AdressSender, int osi7AdressReceiver, int de, int fg)
osi7AdressSender
- Knotennummer des Senders.osi7AdressReceiver
- Knotennummer des Empfängers.de
- DeNummer des Empfängers.fg
- Funktionsgruppe des Empfängers.public static void writeNoDataToUnreachableDe(Eak eak, long timeStamp)
eak
- Eak an Steuermodul, dass nicht mehr angesprochen werden kanntimeStamp
- Zeitpunkt des Kommunikationsausfallspublic static void writeNoDataToUnreachableDe(int[] osi7Adress, long timeStamp)
osi7Adress
- Array der Osi7Adressen der nicht erreichbaren GerätetimeStamp
- Zeitpunkt des Kommunikationsausfallspublic static void writeNoDataToUnreachableDe(Eak eak, long timeStamp, int fg)
eak
- Eak an Steuermodul, dass nicht mehr angesprochen werden kanntimeStamp
- Zeitpunkt des Kommunikationsausfallsfg
- Funktionsgruppe, auf die das Erzeugen leerer Datensätze eingeschränkt werden soll.public static void writeNoDataToUnreachableDe(int[] osi7Adress, long timeStamp, java.lang.String[] excludedAtgAspArray)
osi7Adress
- Array der Osi7Adressen der nicht erreichbaren GerätetimeStamp
- Zeitpunkt des KommunikationsausfallsexcludedAtgAspArray
- Array mit den Pids der zu ignorierenden Attributgruppen und Aspekten. Es können
einzelne Attributgruppen, einzelne Aspekte und mit Doppelpunkt getrennt auch
Kombinationen von Attributgruppen und Aspekten spezifiziert werden, für die
keine leeren Datensätze erzeugt werden sollen. Außerdem kann auch eine
Kombination von DE, Attributgruppe und Aspekt durch Kombination der
jeweiligen Pids (Bsp: "de.x:atg.y:asp.z") spezifiziert werden für die für die
keine auch keine leeren Datensätze erzeugt werden sollen.public static void writeNoDataToUnreachableDe(Eak eak, long timeStamp, int fg, java.lang.String[] excludedAtgAspArray)
eak
- Eak an Steuermodul, dass nicht mehr angesprochen werden kanntimeStamp
- Zeitpunkt des Kommunikationsausfallsfg
- Funktionsgruppe, auf die das Erzeugen leerer Datensätze eingeschränkt werden soll.excludedAtgAspArray
- Array mit den Pids der zu ignorierenden Attributgruppen und Aspekten. Es können
einzelne Attributgruppen, einzelne Aspekte und mit Doppelpunkt getrennt auch
Kombinationen von Attributgruppen und Aspekten spezifiziert werden, für die
keine leeren Datensätze erzeugt werden sollen. Außerdem kann auch eine
Kombination von DE, Attributgruppe und Aspekt durch Kombination der
jeweiligen Pids (Bsp: "de.x:atg.y:asp.z") spezifiziert werden für die für die
keine auch keine leeren Datensätze erzeugt werden sollen.public static void writeNoDataToUnreachableDe(java.util.List deList, long timeStamp, int fg, java.lang.String atg)
deList
- Liste der De, für die Kommunikationsausfall/Fehler zu/bei diesen De erkannt wurde.timeStamp
- Zeitpunkt des Kommunikationsausfallsfg
- Funktionsgruppe, auf die das Erzeugen leerer Datensätze eingeschränkt werden soll.atg
- Attributgruppen-Pid, für die kein leerer Datensätze erzeugt werden soll.public static void writeNoDataToUnreachableDe(java.util.List deList, long timeStamp, int fg, java.lang.String[] excludedAtgAspArray)
deList
- Liste der De, für die Kommunikationsausfall/Fehler zu/bei diesen De erkannt wurde.timeStamp
- Zeitpunkt des Kommunikationsausfallsfg
- Funktionsgruppe, auf die das Erzeugen leerer Datensätze eingeschränkt werden soll.excludedAtgAspArray
- Array mit den Pids der zu ignorierenden Attributgruppen und Aspekten. Es können
einzelne Attributgruppen, einzelne Aspekte und mit Doppelpunkt getrennt auch
Kombinationen von Attributgruppen und Aspekten spezifiziert werden, für die
keine leeren Datensätze erzeugt werden sollen. Außerdem kann auch eine
Kombination von DE, Attributgruppe und Aspekt durch Kombination der
jeweiligen Pids (Bsp: "de.x:atg.y:asp.z") spezifiziert werden für die für die
keine auch keine leeren Datensätze erzeugt werden sollen.public void dataReceived(int sender, byte[] data, boolean longTelegram)
dataReceived
in interface de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayerListener
longTelegram
- true = Ein Langtelegramm, das nicht der TLS Definition entsprichtprivate java.lang.String debugConfigurationSummary()
private void getConnectedDevices(de.bsvrz.dav.daf.main.config.ConfigurationObject device, java.util.Set allDevices, java.util.Set responsibilityDevices)
device
- Gerät, ab dem weitere angeschlossene Geräte gesucht werden.allDevices
- Liste der gefundenen Geräte (incl. des Startgerätes).responsibilityDevices
- Liste aller Geräte, für die dieser Prozeß zuständig ist.private void putObjectRefToDe(de.bsvrz.dav.daf.main.config.SystemObject de, de.bsvrz.dav.daf.main.config.SystemObject refObjectToDe)
getObjectRefsToDe(SystemObject)
abgerufen werden.de
- De, auf das referenziert wird.refObjectToDe
- Das Fachobjekt, welches die De als Quelle referenziert.private void sendTimeSync(int osi7adress)
osi7adress
- Osi7Adresse des Gerates, an dass die Zeitsyncronisation versandt werden soll.public void start()
start
in interface ApplicationLayer
public void stateChanged(int osi7adress, int connectionState)
stateChanged
in interface de.bsvrz.kex.tls.osi2osi3.osi3.NetworkLayerListener
osi7adress
- Osi7Adresse des Gerätes, dessen Status sich geändert hat.connectionState
- Status des Gerätes.