Class TransmitterDataTelegram

java.lang.Object
de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram
de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterDataTelegram
All Implemented Interfaces:
QueueableTelegram, DataTelegramInterface
Direct Known Subclasses:
TransmitterDataTelegramV2

public class TransmitterDataTelegram
extends DataTelegram
implements DataTelegramInterface
Telegramm zur Übertragung der Anwendungsdaten. Mit diesem Telegramm werden die Anwendungsdaten übertragen. Es kann in beide Richtungen benutzt werden. Die Anwendungsdaten werden durch folgende Informationen gekennzeichnet: Konfigurationsobjekt (Objekt-Id), Attributgruppe, Aspekt, Simulationsvariante. Die zu übertragenden Anwendungsdaten werden ab einer bestimmten Größe in mehrere Telegramme zerlegt. Um unnötige Redundanz zu vermeiden, werden die Telegrammelemente Zeitstempel, Fehlerkennung sowie die Angaben zum Attributindikator nur im ersten Telegramm übertragen.
  • Constructor Details

    • TransmitterDataTelegram

      public TransmitterDataTelegram()
    • TransmitterDataTelegram

      public TransmitterDataTelegram​(ApplicationDataTelegram applicationDataTelegram, byte direction)
      Erzeugt neues TransmitterDataTelegram
      Parameters:
      applicationDataTelegram - Zerlegtes ApplicationDataTelegram
      direction - Information über der Datenflussesrichtung 0: Sender zum Zentraldatenverteiler 1: Zentraldatenverteiler an die Empfänger
    • TransmitterDataTelegram

      public TransmitterDataTelegram​(BaseSubscriptionInfo baseSubscriptionInfo, long dataNumber, boolean delayedDataFlag, byte errorFlag, byte[] attributesIndicator, byte[] data, int totalTelegramCount, int telegramNumber, long dataTime, byte direction)
      Parameters:
      baseSubscriptionInfo - Basisanmeldeinformation
      dataNumber - Laufende Nummer des Datensatzes
      delayedDataFlag - Sind die Daten nachgeliefert
      errorFlag - Fehlerkennung der Anwendungsdaten. 0: Daten vorhanden (kein fehler). 1: Quelle vorhanden aber Daten noch nicht lieferbar. 2: Quelle nicht vorhanden. 3: Keine Rechte 8: Unzulässige Anmeldung(2 quellen, 2 Senken, 1 Quelle 1 senke und umgekehrt)
      attributesIndicator - gibt an ob sich ein Attribut geändert hat
      data - Teil des Datensatzes als Bytestrom
      totalTelegramCount - Anzahl aller Teiltelegramme, in die der gesamte Datensatz zerlegt wurde
      telegramNumber - Index des Teiltelegramms
      dataTime - Zeitstempel des Telegramms
      direction - Information über der Datenflussesrichtung 0: Sender zum Zentraldatenverteiler 1: Zentraldatenverteiler an die Empfänger
    • TransmitterDataTelegram

      public TransmitterDataTelegram​(BaseSubscriptionInfo baseSubscriptionInfo, long dataNumber, boolean delayedDataFlag, byte errorFlag, byte[] attributesIndicator, byte prior, byte[] data, int totalTelegramCount, int telegramNumber, long dataTime, byte direction)
      Parameters:
      baseSubscriptionInfo - Basisanmeldeinformation
      dataNumber - Laufende Nummer des Datensatzes
      delayedDataFlag - Sind die Daten nachgeliefert
      errorFlag - Fehlerkennung der Anwendungsdaten. 0: Daten vorhanden (kein fehler). 1: Quelle vorhanden aber Daten noch nicht lieferbar. 2: Quelle nicht vorhanden. 3: Keine Rechte 8: Unzulässige Anmeldung(2 quellen, 2 Senken, 1 Quelle 1 senke und umgekehrt)
      attributesIndicator - gibt an ob sich ein Attribut geändert hat
      prior - Priorität des Telegramms
      data - Teil des Datensatzes als Bytestrom
      totalTelegramCount - Anzahl aller Teiltelegramme, in die der gesamte Datensatz zerlegt wurde
      telegramNumber - Index des Teiltelegramms
      dataTime - Zeitstempel des Telegramms
      direction - Information über der Datenflussesrichtung 0: Sender zum Zentraldatenverteiler 1: Zentraldatenverteiler an die Empfänger
  • Method Details

    • getBaseSubscriptionInfo

      public final BaseSubscriptionInfo getBaseSubscriptionInfo()
      Gibt die Basisanmeldeinformationen zurück.
      Specified by:
      getBaseSubscriptionInfo in interface DataTelegramInterface
      Returns:
      Basisanmeldeinformationen
    • getDelayedDataFlag

      public final boolean getDelayedDataFlag()
      Gibt an, ob Datensätze nachgeliefert worden sind. True: verspätet, false: nicht verspätet
      Returns:
      True wenn Daten nachgeliefert sind.
    • getDataNumber

      public final long getDataNumber()
      Gibt die Laufende Nummer des Datensatzes zurück.
      Specified by:
      getDataNumber in interface DataTelegramInterface
      Returns:
      Laufende Nummer des Datensatzes
    • getDataTime

      public final long getDataTime()
      Gibt die Zeit der Datensätze an.
      Returns:
      Zeit der Datensätze
    • getErrorFlag

      public final byte getErrorFlag()
      Gibt die Fehlerinformationen zurück.
      Returns:
      Fehlerinformationen
    • getAttributesIndicator

      public final byte[] getAttributesIndicator()
      Gibt den Indikator zu den einzelnen Attributen der Attributgruppe zurück.
      Returns:
      Indikator
    • getTotalTelegramsCount

      public final int getTotalTelegramsCount()
      Gibt die Gesamtanzahl der Teiltelegramme des ursprünglichen Datensatzes zurück.
      Specified by:
      getTotalTelegramsCount in interface DataTelegramInterface
      Returns:
      Gesamtanzahl der Teiltelegramme
    • getTelegramNumber

      public final int getTelegramNumber()
      Gibt die Telegrammnummer dieses Teiltelegramms zurück
      Specified by:
      getTelegramNumber in interface DataTelegramInterface
      Returns:
      Telegrammnummer
    • getData

      public final byte[] getData()
      Gibt den Bytestrom dieses Telegramms zurück.
      Returns:
      Bytestrom
    • getDirection

      public final byte getDirection()
      Gibt die Datenflußrichtung dieses Telegramms zurück.
      Returns:
      Datenflußrichtung
    • setDirection

      public final void setDirection​(byte newDirection)
      Setzt die Datenflußrichtung dieses Telegramms auf den neuen Wert.
      Parameters:
      newDirection - neue Richtung
    • setDataIndex

      public final void setDataIndex​(long dataNumber)
      Setzt den Datensatz-Index
      Parameters:
      dataNumber - Datensatz-Index
    • getApplicationDataTelegram

      public final ApplicationDataTelegram getApplicationDataTelegram()
      Erstellt ein Applikations-kompatibles Telegramm aus diesem Objekt.
      Returns:
      Applikations kompatibles Telegramm
    • parseToString

      public final java.lang.String parseToString()
      Description copied from class: DataTelegram
      Gibt eine String-Repräsentation dieses Datensatzes zurück.
      Specified by:
      parseToString in class DataTelegram
      Returns:
      Eine String-Repräsentation dieses Datensatzes.
    • write

      public void write​(java.io.DataOutputStream out) throws java.io.IOException
      Description copied from class: DataTelegram
      Schreibt ein Telegramm in den übergegebenen DataOutputStream.
      Specified by:
      write in class DataTelegram
      Parameters:
      out - Der DataOutputStream.
      Throws:
      java.io.IOException - Falls der Datensatz nicht in den Stream geschrieben werden kann.
    • read

      public void read​(java.io.DataInputStream in) throws java.io.IOException
      Description copied from class: DataTelegram
      Liest ein Telegramm vom übergegebenen DataInputStream.
      Specified by:
      read in class DataTelegram
      Parameters:
      in - Der DataInputStream.
      Throws:
      java.io.IOException - Falls der Datensatz nicht aus dem Stream gelesen werden kann.
    • getApplicationId

      public long getApplicationId()
      Gibt die ID der ursprünglich sendenden Applikation zurück, 0 falls der Datenverteiler oder die lokale Konfiguration gesendet hat, -1 falls die sendende Applikation unbekannt ist (wegen alter Software). Diese alte Version des Telegramms liefert immer -1 zurück.
      Returns:
      Applikations-ID