public class LowLevelCommunication extends Object implements LowLevelCommunicationInterface
| Modifier and Type | Field and Description |
|---|---|
static byte |
HANDLE_CONFIG_RESPONCES_MODE
Wert für den
mode-Parameter des Konstruktors, der bewirkt, dass Konfigurationsantworten ausgewertet und entsprechend an die höhere
Kommunikationsebene weitergegeben werden. |
static byte |
NORMAL_MODE
Wert für den
mode-Parameter des Konstruktors, der bewirkt, dass Konfigurationsantworten wie normale Datentelegramme verarbeitet werden. |
| Constructor and Description |
|---|
LowLevelCommunication(ConnectionInterface connection,
int sendBufferSize,
int receiveBufferSize,
long keepAliveSendTimeOut,
long keepAliveReceiveTimeOut,
byte mode,
boolean connected) |
| Modifier and Type | Method and Description |
|---|---|
void |
connect(String mainAddress,
int subAddress)
Diese Methode baut eine Kommunikationsverbindung zu den angegebenen Adressen auf.
|
void |
disconnect(boolean error,
String message,
DataTelegram terminationTelegram)
Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Kommunikationskanäle geschlossen werden sollen.
|
ConnectionInterface |
getConnectionInterface()
Gibt den Repräsentant der Verbindung zurück
|
HighLevelCommunicationCallbackInterface |
getHighLevelComponent() |
String |
getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers
|
boolean |
isNotConnected()
Gibt als Information zurück, ob die Kommunikationsverbindung unterbrochen ist.
|
void |
send(DataTelegram telegram)
Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn ein Telegramm gesendet werden soll.
|
void |
send(DataTelegram[] telegrams)
Fügt mehrere Telegramme in die Sendetabelle ein.
|
void |
setHighLevelComponent(HighLevelCommunicationCallbackInterface highLevelComponent)
Setzt die Interpretationsschicht dieser Komponente für den internen Datenaustausch.
|
void |
setRemoteAddress(String remoteAddress,
int remotePort) |
void |
setRemoteName(String name)
Diese Methode setzt den Namen des Kommunikationspartners, der für Fehlermeldungen etc.
|
void |
updateKeepAliveParameters(long keepAliveSendTimeOut,
long keepAliveReceiveTimeOut)
Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Keepalive-Parameter-Verhandlung erfolgreich abgeschlossen ist und setzt somit die
Timeouts des Keepaliveprozesses.
|
void |
updateThroughputParameters(float throughputControlSendBufferFactor,
long throughputControlInterval,
int minimumThroughput)
Diese Methode setzt die Parameter für die Durchsatzprüfung.
|
public static final byte NORMAL_MODE
mode-Parameter des Konstruktors, der bewirkt, dass Konfigurationsantworten wie normale Datentelegramme verarbeitet werden.public static final byte HANDLE_CONFIG_RESPONCES_MODE
mode-Parameter des Konstruktors, der bewirkt, dass Konfigurationsantworten ausgewertet und entsprechend an die höhere
Kommunikationsebene weitergegeben werden.public LowLevelCommunication(ConnectionInterface connection, int sendBufferSize, int receiveBufferSize, long keepAliveSendTimeOut, long keepAliveReceiveTimeOut, byte mode, boolean connected) throws ConnectionException
connection - Verbindungsobjekt über dass die Kommunikation mit dem Kommunikationspartner realisiert wird.sendBufferSize - Sendetabellenkapazität (in Byte)receiveBufferSize - Empfangstabellenkapazität (in Byte)keepAliveSendTimeOut - Zeitspanne in ms. Wird solange kein Telegramm verschickt, wird ein KeepAlive-Telegramm verschickt.keepAliveReceiveTimeOut - Zeitspanne in ms. Wird solange keine Telegramm empfangen, wird ein Zähler herabgesetzt. Erreicht der Zähler 0 wird die
Verbindung terminiert. Wird zwischendurch ein Telegramm empfangen, wird der Zähler auf das maximum gesetzt.mode - Modus für das Konfigurationsdatenverhalten. Falls hier der Wert HANDLE_CONFIG_RESPONCES_MODE übergeben wird, dann
werden Konfigurationsantworten ausgewertet und entsprechend an die höhere Kommunikationsebene weitergegeben. Falls hier der
Wert NORMAL_MODE übergeben wird, dann werden Konfigurationsantworten wie normale Datentelegramme verarbeitet.connected - Information, ob die Verbindung bereits erfolgt ist oder nicht (connected)ConnectionException - Wenn das Verbindungsobjekt sich nicht im erwarteten Zustand befindet.public final ConnectionInterface getConnectionInterface()
LowLevelCommunicationInterfacegetConnectionInterface in interface LowLevelCommunicationInterfacepublic final void setHighLevelComponent(HighLevelCommunicationCallbackInterface highLevelComponent)
LowLevelCommunicationInterfacesetHighLevelComponent in interface LowLevelCommunicationInterfacehighLevelComponent - Komponente, die benachrichtigt werden muss, wenn neue Nachrichten empfangen werden.public HighLevelCommunicationCallbackInterface getHighLevelComponent()
public final void updateKeepAliveParameters(long keepAliveSendTimeOut,
long keepAliveReceiveTimeOut)
LowLevelCommunicationInterfaceupdateKeepAliveParameters in interface LowLevelCommunicationInterfacekeepAliveSendTimeOut - SendekeepalivetimeoutkeepAliveReceiveTimeOut - Empfangekeepalivetimeoutpublic final void updateThroughputParameters(float throughputControlSendBufferFactor,
long throughputControlInterval,
int minimumThroughput)
LowLevelCommunicationInterfaceupdateThroughputParameters in interface LowLevelCommunicationInterfacethroughputControlSendBufferFactor - Füllungsgrad des Sendepuffers als Faktor zwischen 0 und 1, ab dem die Durchsatzprüfung anfängt zu arbeiten.throughputControlInterval - Zeit zwischen zwei Durchsatzprüfungen in MillisekundenminimumThroughput - Minimal zulässiger Verbindungsdurchsatz in Bytes pro Sekundepublic final void connect(String mainAddress, int subAddress) throws ConnectionException
connect in interface LowLevelCommunicationInterfacemainAddress - Adresse des Kommunikationspartners dieser Verbindung.subAddress - Subadresse der Adresse.ConnectionException - Falls die Verbindung nicht hergestellt werden kann.public final boolean isNotConnected()
LowLevelCommunicationInterfaceisNotConnected in interface LowLevelCommunicationInterfacetrue = Es besteht keine Verbindung; false = sonstpublic final void send(DataTelegram telegram)
send in interface LowLevelCommunicationInterfacetelegram - Das zu versendende Telegramm.public final void send(DataTelegram[] telegrams)
LowLevelCommunicationInterfacesend in interface LowLevelCommunicationInterfacetelegrams - Die zu versendenden Telegramme.LowLevelCommunicationInterface.send(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram)public final void disconnect(boolean error,
String message,
DataTelegram terminationTelegram)
disconnect in interface LowLevelCommunicationInterfaceerror - Besagt, ob es sich um eine Terminierung mit Fehler handelt. Falls true werden sämtliche noch zum Versand gepufferten Telegramme
verworfen; falls false wird versucht, sämtliche zum Versand gepufferten Telegramme zu versenden.message - Ursache der Terminierung im Fehlerfall.terminationTelegram - Das Telegramm, dass als letztes Telegramm vor dem Schließen der Verbindung versendet werden soll oder null, falls
kein abschließendes Telegramm versendet werden soll.public String getSendBufferState()
LowLevelCommunicationInterfacegetSendBufferState in interface LowLevelCommunicationInterfacepublic void setRemoteName(String name)
LowLevelCommunicationInterfacesetRemoteName in interface LowLevelCommunicationInterfacename - Name oder Identifikation des Kommunikationspartnerspublic void setRemoteAddress(String remoteAddress, int remotePort)