Class 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 Detail

      • 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 Detail

      • 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