Class DataChannelBAStVV2007

  • All Implemented Interfaces:
    ResultDataChannel

    public class DataChannelBAStVV2007
    extends AbstractDataChannelBASt

    Channel zur Ausgabe von Verkehrsmengen und Geschwindigkeitsdaten in das BASt-Bestandsbandformat für Geschwindigkeitsdaten in der Version 2007.

    BASt-FORMATVORGABE FÜR GESCHWINDIGKEITSDATEN VERSION 2007
    Dokument V6z – F1100.6606002
    Herausgegeben von der Bundesanstalt für Straßenwesen
    15. November 2007
    A. Fitschen und N. Faerber

    Die zur Verarbeitung benötigten Daten werden nur an ausgewählten Zählstellen erhoben und in einer speziellen TLS-Datenversion bereitgestellt. Da für die Geschwindigkeitsdaten keine Folgeverarbeitung definiert und implementiert ist (die Daten werden nur für die BASt erfasst), müssen die zu verarbeitenden Daten mit der Attributgruppe für die TLS-Datenversion 24 atg.tlsLveErgebnisMeldungVersion24 und Aspekt asp.tlsAntwort übergeben werden.

    Aufbau des Dateinamens:
    Der Dateiname enthält Informationen zum Bundesland, zur Zählstelle, zur Datenart und über den Erfassungszeitraum.
    In der Regel besteht der Dateiname aus 11 Stellen und einem dreistelligen Suffix (z.B.: „NW5033v0307.dat“).
    Ändert sich die Datenstruktur im Jahresverlauf z. B. durch Umstellung von zwei auf drei Fahrstreifen, so ist dieses durch einen Eintrag an zwölfter und dreizehnter Stelle des Namens kenntlich zu machen z. B. durch „_1“ ( „NW5033v0308_1.dat“). Alle weiteren Dateien des Jahres behalten dann diese Versionskennung bei. Die Dateinamen des nachfolgenden Jahres sind wieder ohne Versionskennung zu vergeben. Der Erfassungszeitraum nach der Kennung „v“ (Datenart: Geschwindigkeiten) enthält in den ersten beiden Stellen das Jahr und in den beiden Folgenden den Monat des betreffenden Jahres.

    Bezeichnung der Dateien am Beispiel von "NW5033v0308_1.dat":

     Position     1-2         3-6          7                 8-9   10-11   12-13     . Suffix 1-3
     Beschreibung Bundesland: Zählstellen- Datenart          Jahr  Monats- Version
                  Kürzel      nummer       Geschwindigkeiten (yy)  Code    (optional)
     Beispiel     NW          5033         v                 03    08      _1        . dat
     

    Einschränkung: Mit dem DataChannelBAStVV2007 kann nur der Standard-Dateiname erzeugt werden, da historische Konfigurationsdaten nicht ausgewertet werden. Bei der Übergabe an die BASt müssen die entsprechenden Suffixe durch den Bearbeiter manuell angehängt werden.

    MESZ/MEZ Umstellung:
    An Position 7 der Stundendatensätze steht die einzige Statuskennung im Datensatz. Die Statuskennung "m" ist bei der Zeitumstellung auf MESZ (letzter Sonntag im März) zu vergeben. Pro Richtung wird ein Datensatz eingefügt, dessen Werte auf "0" gesetzt sind. Die Statuskennung "o" ist bei der Umstellung auf MEZ (letzter Sonntag im Oktober) zu vergeben. Die Werte dieser dritten Stunde sind aus der doppelten dritten Stunde zu berechnen. Dazu sind die Verkehrsmengen über beide Stunden zu addieren und die Geschwindigkeitskenngrößen vm, svm, v15 und v85 aus den Daten beider Stunden zu ermitteln. Alle anderen Stundendatensätze enthalten an Position 7 ein Leerzeichen " ".

    Geschwindigkeiten 'nicht ermittelbar'
    Gemäß ergänzender Vorgabe der BASt (EMail vom 01.09.2009 an Logos) sind fehlende Geschwindigkeiten bzw. implausible Mengen in den Fahrzeugklassen so zu behandeln als lägen für eine Stunde keine Daten vor, d.h. auch in diesen Fällen besteht die Datenzeile nur aus dem Zeilenheader (14 Zeichen).

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int _FSCountGgRichtung
      Anzahl Fahrstreifen in Gegen-Richtung (Richtung 2)
      protected int _FSCountInRichtung
      Anzahl Fahrstreifen in In-Richtung (Richtung 1)
      protected de.bsvrz.dav.daf.main.Dataset[] _LastArrayAtTime
      Zähldaten der letzten (verarbeiteten) Stunde, um bei Wechsel von MESZ---MEZ die zwei 2°°Uhr Stunden addieren zu können
      protected static java.text.SimpleDateFormat DATE_FORMAT
      Datumformat für Datenzeilen
      protected static int KEIN_WERT_255
      Kennung für einen nicht ermittelbaren Wert (8Bit) gemäß TLS.
      protected static double KEIN_WERT_6553_5
      Kennung für einen nicht ermittelbaren Wert (16Bit mit Skalierung 0.1).
      protected static int KEIN_WERT_65535
      Kennung für einen nicht ermittelbaren Wert (16Bit) gemäß TLS: "Lassen sich (z.
      protected static int VK_ANZAHL_BPA
      Soll-Anzahl Geschwindigkeitsklassen BPA
      protected static int VK_ANZAHL_LV
      Soll-Anzahl Geschwindigkeitsklassen LVo
      protected static int VK_ANZAHL_SGV
      Soll-Anzahl Geschwindigkeitsklassen SGV
    • Method Summary

      Modifier and Type Method Description
      protected java.lang.String constructFilename​(LangZeitZaehlStelle zaehlStelle, int year, int month)
      Gibt den Dateinamen für den gewählten Zeitraum zurück.
      protected java.lang.String constructFilename​(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
      gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.
      protected java.lang.String extractData​(de.bsvrz.dav.daf.main.Dataset[] rsArray, de.bsvrz.dav.daf.main.Dataset[] rsArrayMEZ, boolean isInRichtung)
      Extrahiert die Werte für die angegebene Richtung aus den Dataset und baut einen String mit den Werten für die Ausgabe in die Datei zusammen.
      protected java.lang.String getHeaderRow01()
      Liefert die 1.
      protected java.lang.String getHeaderRow02()
      Liefert die 2.
      protected java.lang.String getHeaderRow03()
      Liefert die 3.
      protected double getScaledValueAsDouble​(de.bsvrz.dav.daf.main.Data data, java.lang.String itemName)
      Prüft, ob das Datum einen gültigen Wert (innerhalb des Wertebereichs liegender Zahlenwert) oder einen speziellen Zustand hat und gibt danach entweder den skalierten Zahlenwert als double oder Double.NaN im Falle eines Zustands zurück.
      void processRecord​(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime, java.util.Calendar calendar)
      Erzeugt die BASt-Format-Daten und spooled diese.
      void setZaehlstelle​(LangZeitZaehlStelle zaehlstelle)
      Setzt die zu verarbeitende Zählstelle und initialisiert die zur Verarbeitung benötigten Header- und Richtungsangaben.
      protected java.lang.String trim​(java.lang.String string, int length)
      Formatiert den String linksbündig und füllt bis zur angegebenen Länge mit ' ' auf.
      protected java.lang.String trimQ​(int value)
      Formatiert die Fahrzeugmenge als rechtsbündigen String.
      protected java.lang.String trimV15V85​(double value)
      Formatiert die v15 und v85 Geschwindigkeit rechtsbündig ganzzahlig.
      protected java.lang.String trimVmStdabw​(double value)
      Formatiert die mittlere Geschwindigkeit und deren Standardabweichung rechtsbündig mit einer Nachkommastelle.
      protected void writeHeader​(java.io.PrintWriter writer)
      Schreibt die Headerzeilen 1, 2 und 3 in die Datei.
      protected void writeHeaderFTP​(java.io.BufferedOutputStream bos)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • KEIN_WERT_255

        protected static final int KEIN_WERT_255
        Kennung für einen nicht ermittelbaren Wert (8Bit) gemäß TLS.
        See Also:
        Constant Field Values
      • KEIN_WERT_65535

        protected static final int KEIN_WERT_65535
        Kennung für einen nicht ermittelbaren Wert (16Bit) gemäß TLS: "Lassen sich (z. B. aufgrund von Schleifendefekten) einzelne Werte des Blocks nicht ermitteln, ohne dass ein Totalausfall des DE vorliegt, werden die betroffenen Bytes auf den Wert 255 (65535) gesetzt.".
        Wird für Geschwindigkeiten und in den Geschwindigkeitsklassen verwendet.
        See Also:
        Constant Field Values
      • KEIN_WERT_6553_5

        protected static final double KEIN_WERT_6553_5
        Kennung für einen nicht ermittelbaren Wert (16Bit mit Skalierung 0.1).
        See Also:
        Constant Field Values
      • DATE_FORMAT

        protected static final java.text.SimpleDateFormat DATE_FORMAT
        Datumformat für Datenzeilen
      • VK_ANZAHL_BPA

        protected static final int VK_ANZAHL_BPA
        Soll-Anzahl Geschwindigkeitsklassen BPA
        See Also:
        Constant Field Values
      • VK_ANZAHL_LV

        protected static final int VK_ANZAHL_LV
        Soll-Anzahl Geschwindigkeitsklassen LVo
        See Also:
        Constant Field Values
      • VK_ANZAHL_SGV

        protected static final int VK_ANZAHL_SGV
        Soll-Anzahl Geschwindigkeitsklassen SGV
        See Also:
        Constant Field Values
      • _LastArrayAtTime

        protected de.bsvrz.dav.daf.main.Dataset[] _LastArrayAtTime
        Zähldaten der letzten (verarbeiteten) Stunde, um bei Wechsel von MESZ---MEZ die zwei 2°°Uhr Stunden addieren zu können
      • _FSCountGgRichtung

        protected int _FSCountGgRichtung
        Anzahl Fahrstreifen in Gegen-Richtung (Richtung 2)
      • _FSCountInRichtung

        protected int _FSCountInRichtung
        Anzahl Fahrstreifen in In-Richtung (Richtung 1)
    • Method Detail

      • constructFilename

        protected java.lang.String constructFilename​(LangZeitZaehlStelle zaehlStelle,
                                                     int year,
                                                     int month,
                                                     int day)
        Description copied from class: AbstractDataChannelBASt
        gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.
        Specified by:
        constructFilename in class AbstractDataChannelBASt
        Parameters:
        zaehlStelle - Zählstelle.
        year - Jahr.
        month - Monat.
        day - Tag.
        Returns:
        Filename als String.
      • constructFilename

        protected java.lang.String constructFilename​(LangZeitZaehlStelle zaehlStelle,
                                                     int year,
                                                     int month)

        Gibt den Dateinamen für den gewählten Zeitraum zurück.

        Der Aufruf ist in Verbindung mit dem DataChannelBAStVV2007 nur zulässig, wenn ein Monatsbereich angegeben wird.

        Gemäß BASt-Vorgabe enthält der Dateiname Informationen zum Bundesland, zur Zählstelle, zur Datenart und über den Erfassungszeitraum. In der Regel besteht der Dateiname aus 11 Stellen und einem dreistelligen Suffix (z.B.: "NW5033v0307.dat").

        Der Erfassungszeitraum nach der Kennung "v" (Datenart: Geschwindigkeiten) enthält in den ersten beiden Stellen das Jahr und in den beiden Folgenden den Monat des betreffenden Jahres.

        Specified by:
        constructFilename in class AbstractDataChannelBASt
        Parameters:
        zaehlStelle - Zählstelle.
        year - Jahr.
        month - Monat.
        Returns:
        String vollständig klassifizierter Dateiname
        Throws:
        java.lang.IllegalArgumentException - wird ausgelöst, wenn kein Monatsbereich angegeben wird (s.o.)

        Die Methode wird um die Erzeugung eines Filenamen ohne path erweitert. Diese Erweiterung wird benötigt, wenn die Datei anstelle des lokalen Verzeichnissystems auf den FTP-Server in einem spezfisichen Verzeichnis abgelegt werden soll. Dagmar Rostek (DR) inovat.

      • extractData

        protected java.lang.String extractData​(de.bsvrz.dav.daf.main.Dataset[] rsArray,
                                               de.bsvrz.dav.daf.main.Dataset[] rsArrayMEZ,
                                               boolean isInRichtung)

        Extrahiert die Werte für die angegebene Richtung aus den Dataset und baut einen String mit den Werten für die Ausgabe in die Datei zusammen. Der String ist ab Position 15 hinter Datum+Kennung+Richtungskennung in die Datenzeile einzufügen (er beginnt mit einem Leerzeichen)!

        Die Unterscheidung nach Richtungen kommt daher, dass für jede einzelne Stunde genau zwei Datensätze (Zeilen) erzeugt werden müssen.

        Für den Sonderfall bei der Sommerzeitumstellung im Herbst (MESZ---MEZ), müssen die zwei 2°° Uhr Stundendatensätze zusammengefasst werden. Dazu können durch rsArrayMEZ[] die zusätzlichen Daten angegeben werden. Für das Ergebnis sind die Verkehrsmengen über beide Stunden zu addieren und die Geschwindigkeitskenngrößen vm, svm, v15 und v85 aus den Daten beider Stunden zu ermitteln.

        Parameters:
        rsArray - auszugebende Intervalldaten (ATG für TLS-Datenverion 24)
        rsArrayMEZ - optionale Angabe für Intervalldaten, die mit denen aus rsArray zusammenzufassen sind (ist für die 2°° Stunde bei der Sommerzeitumstellung MESZ---MEZ im Oktober vorgesehen)
        isInRichtung - Nummer der Fahrtrichtung der die Daten zugeordnet sind (1 = IN-Richtung, 2 = GEGEN-Richtung)
        Returns:
        String mit den jeweils rechtsbündig formatierten Werten
      • getHeaderRow01

        protected java.lang.String getHeaderRow01()

        Liefert die 1. Headerzeile

        Der erste Header-Datensatz der Stundenwertedatei enthält eine allgemeine Beschreibung zur Identifizierung und Lage der Dauerzählstelle. Die einzelnen Merkmale stehen linksbündig und sind teilweise durch Leerzeichen voneinander getrennt. Die Satzlänge umfasst genau 67 Stellen.

         Position Beschreibung                      Beispiel
         1 - 4    Blatt-Nr. der TK25                4807
         5 - 8    Zählstellennummer                 5033
         9        Leerzeichen
         10 - 11  Bundesland: Kennung               05
         12       Leerzeichen
         13       Straßenklasse                     A
         14       Leerzeichen
         15 - 20  Straßennummer und ggf. Buchstabe  3
         21       Leerzeichen
         22 - 61  Zählstellenname                   Opladen II
         62       Leerzeichen
         63 - 66  Versionsnummer der Struktur       V2.0
         67       Zeilenende                        ;
         
        Returns:
        String 1. Headerzeile
      • getHeaderRow02

        protected java.lang.String getHeaderRow02()

        Liefert die 2. Headerzeile

        Auch der zweite Header-Datensatz der Stundenwertedatei hat eine feste Satzlänge (168 Zeichen). Der Datensatz enthält Angaben zur Fahrstreifenanzahl und zu den Fern- und Nahzielen der beiden Fahrtrichtungen. Die Merkmale, linksbündig und mit Leerzeichen getrennt, sind wie folgt angeordnet:

         Position  Beschreibung                           Beispiel
         1         Anzahl der Fahrstreifen in Richtung I  3
         2         Leerzeichen
         3         Anzahl der Fahrstreifen in Richtung II 3
         4         Leerzeichen
         5 - 39    Fernziel in Richtung I                 Oberhausen
         40        Leerzeichen
         41 - 85   Nahziel in Richtung I                  AS Solingen
         86        Leerzeichen
         87 - 121  Fernziel in Richtung II                Köln
         122       Leerzeichen
         123 - 167 Nahziel in Richtung II                 AS Opladen
         168       Zeilenende                             ;
         
        Returns:
        String 2. Headerzeile
      • getHeaderRow03

        protected java.lang.String getHeaderRow03()

        Liefert die 3. Headerzeile.

        Der dritte Header-Datensatz benennt die Fahrzeuggruppen (FzGr) mit ihren Bezeichnungen und der Anzahl der Geschwindigkeitsklassen. Danach wird die Richtungskennung und die Fahrzeugmenge des Schwerverkehrs aufgeführt. Es folgen die Bezeichnungen fahrzeuggruppenspezifischer Kenngrößen und die Grenzen der Geschwindigkeitsklassen der Fahrzeuggruppen. Die Grenze der niedrigsten Geschwindigkeitsklasse liegt bei 0 km/h, und die höchste Geschwindigkeitsklasse ist nach oben hin unbegrenzt.

        Alle Angaben im dritten Header-Datensatz sind linksbündig einzutragen.

        Dauerzählstellen, die für die Auswertung von Geschwindigkeitsdaten herangezogen werden, sollten die Fahrzeugarten zu 3 Fahrzeuggruppen zusammenfassen können. In Ausnahmefällen kann in Abstimmung mit der BASt auf die dritte Fahrzeuggruppe BPA (Busse und Pkw mit Anhänger) verzichtet werden.

        Hinweis: Im Zusammenspiel mit der TLS Datenversion 24 muss auf keine Fahrzeuggruppe verzichtet werden. Daher ist das Format für 2 Fahrzeuggruppen nicht relevant und wird von der Funktion auch nicht unterstützt!

        Returns:
        String 3. Headerzeile für Datenformat mit 3 Fahrzeuggruppen
      • getScaledValueAsDouble

        protected double getScaledValueAsDouble​(de.bsvrz.dav.daf.main.Data data,
                                                java.lang.String itemName)

        Prüft, ob das Datum einen gültigen Wert (innerhalb des Wertebereichs liegender Zahlenwert) oder einen speziellen Zustand hat und gibt danach entweder den skalierten Zahlenwert als double oder Double.NaN im Falle eines Zustands zurück.

        Die Funktion ist bei Lesen von Geschwindigkeitswerten zu verwenden, bei denen es laut TLS den Zustand "Wert nicht ermittelbar" geben kann. Beim Datentyp 79 triff dies auf folgende Attribute zu:

        • mittlere Geschwindigkeit (0..6553,4 km/h, 65535="Wert nicht ermittelbar")
        • Standardabweichung (0..6553,4 km/h, 65535="Wert nicht ermittelbar")
        • v85 Geschwindigkeit (0..254 km/h, 255="Wert nicht ermittelbar")
        • v15 Geschwindigkeit (0..254 km/h, 255="Wert nicht ermittelbar")
        Parameters:
        data - Data.
        itemName - Item Name.
        Returns:
        Double.NaN wenn kein gültiger Wert vorliegt oder sich der skalierte Wert nicht innerhalb des Wertebereichs befindet, ansonsten der skalierte Wert als double
      • processRecord

        public void processRecord​(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime,
                                  java.util.Calendar calendar)
                           throws ChannelException

        Erzeugt die BASt-Format-Daten und spooled diese.

        Die übergebenen Daten müssen vom Typ atg.tlsLveErgebnisMeldungVersion24 sein und vor dem ersten Aufruf muss der Channel vollständig initialisiert werden.

        Die BASt-Datei beginnt mit 3 Headerzeilen.

        Nach dem dritten Header-Datensatz folgen die einzelnen Stundendatensätze. Dabei werden für jede einzelne Stunde genau zwei Datensätze (Zeilen) erzeugt, für jede Fahrtrichtung einen. Die Länge der Datensätze ist von der Anzahl der Fahrstreifen und der Fahrzeuggruppen abhängig.
        Die ersten 6 Positionen enthalten das Datum (Pos. 1-6, Format: „yymmdd“). Nach einer Statuskennung – für MESZ/MEZ – folgt die Stunde (Pos. 8-12, Format: „hh:mm“, beginnend mit „01:00“). Ein Leerzeichen an Position 13 trennt die Richtungskennung („1“ bzw. „2“) ab. Alle weiteren Angaben sind ebenfalls durch Leerzeichen voneinander getrennt.
        Es folgen für den ersten (rechten) Fahrstreifen der Richtung die Fahrzeugmenge des Schwerverkehrs qSV und anschließend fahrzeuggruppenbezogen die Fahrzeugmenge qGr der Fahrzeuggruppe 1, die mittlere Geschwindigkeit vm dieser Fahrzeuggruppe auf eine Nachkommastelle gerundet mit „,“ als Trennzeichen (nicht mit dem amerikanischen Dezimalzeichen „.“) und die zugehörige Standardabweichung svm, ebenfalls auf eine Nachkommastelle gerundet mit „,“ als Trennzeichen sowie die v15 und v85. Anschließend werden die Verkehrsmengen jeder Geschwindigkeitsklasse der ersten Fahrzeuggruppe angegeben.
        Eine analoge Auflistung für den rechten Fahrstreifen erfolgt für die Fahrzeuggruppe 2 und, falls eine dritte Fahrzeuggruppe erfasst wird, auch für sie. Die Werte für weitere Fahrstreifen dieser Richtung sind von außen zur Fahrbahnmitte anzugeben.
        Liegen für eine Stunde keine Daten vor, so bestehen die beiden Datenzeilen lediglich aus Datum, Statuskennung, Stunde und Richtungskennung (Länge: 14 Zeichen). [Anmerkung: auch fehlende Fahrzeugraster werden wie Datenausfälle behandelt, siehe DataChannelBAStVV2007(de.inovat.kex.bast.SendeBAStStatusDaten)].
        Die Angaben in den Stundendatensätzen sind im Gegensatz zu den drei Header- Datensätzen rechtsbündig ausgerichtet.

        Parameters:
        rsArrayAtTime - ResultData[]
        calendar - Intervallbeginn der Datens.
        Throws:
        ChannelException - Exception.
      • trim

        protected java.lang.String trim​(java.lang.String string,
                                        int length)

        Formatiert den String linksbündig und füllt bis zur angegebenen Länge mit ' ' auf. Ist der String null, wird vollständig mit Leerzeichen aufgefüllt. Überzählige Zeichen werden abgeschnitten.

        Parameters:
        string - auszugebender String, null ist erlaubt und wird als "" interpretiert
        length - Länge bis zu der mit ' ' aufgefüllt wird oder nach der der String abgeschnitten wird
        Returns:
        linksbündig ausgerichteter String der Länge length
      • trimQ

        protected java.lang.String trimQ​(int value)

        Formatiert die Fahrzeugmenge als rechtsbündigen String.

        Gemäß Vorgabe sind die Angaben in den Stundendatensätzen im Gegensatz zu den drei Header- Datensätzen rechtsbündig ausgerichtet.
        Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0" in die Ausgabedatei geschrieben. Das betrifft negative Werte oder alle größer-gleich 65535.

        Parameters:
        value - auszugebender Wert (Fahrzeuganzahl, die Werte müssen zwischen 0 und 65534 liegen, Wert 65535 = Zustand "nicht ermittelbar")
        Returns:
        String mit dem rechtsbündig formatierten Wert
      • trimV15V85

        protected java.lang.String trimV15V85​(double value)

        Formatiert die v15 und v85 Geschwindigkeit rechtsbündig ganzzahlig.

        Gemäß Vorgabe sind die v15 und v85 (entsprechend der Erfassung) als ganzzahligen Wert.

        Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0" in die Ausgabedatei geschrieben. Das betrifft negative Werte und alle größer-gleich 255

        Parameters:
        value - auszugebender Wert (Geschwindigkeit, die Werte müssen zwischen 0 und 254 liegen, Wert 255="nicht ermittelbar)
        Returns:
        String mit rechtsbündig formatiertem Wert
      • trimVmStdabw

        protected java.lang.String trimVmStdabw​(double value)

        Formatiert die mittlere Geschwindigkeit und deren Standardabweichung rechtsbündig mit einer Nachkommastelle.

        Gemäß Vorgabe ist die mittlere Geschwindigkeit vm auf eine Nachkommastelle zu runden mit ',' als Trennzeichen (nicht mit dem amerikanischen Dezimalzeichen '.) und die zugehörige Standardabweichung svm ebenfalls auf eine Nachkommastelle gerundet mit ',' als Trennzeichen.

        Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0,0" in die Ausgabedatei geschrieben. Das betrifft negative Werte und alle größer-gleich 6553.5.

        Parameters:
        value - auszugebender Wert (Geschwindigkeit, die Werte müssen zwischen 0 und 6553,5 liegen, Wert 6553.5 = Zustand "nicht ermittelbar")
        Returns:
        String mit rechtsbündig formatiertem Wert
      • writeHeader

        protected void writeHeader​(java.io.PrintWriter writer)

        Schreibt die Headerzeilen 1, 2 und 3 in die Datei.

        Specified by:
        writeHeader in class FileDataChannel
        Parameters:
        writer - PrintWriter.
      • writeHeaderFTP

        protected void writeHeaderFTP​(java.io.BufferedOutputStream bos)
                               throws java.io.IOException
        Specified by:
        writeHeaderFTP in class FileDataChannel
        Throws:
        java.io.IOException