Package de.inovat.kex.bast.exporter
Class DataChannelAxlBAStEF1
- java.lang.Object
-
- de.inovat.kex.bast.exporter.FileDataChannel
-
- de.inovat.kex.bast.exporter.AbstractDataChannelBASt
-
- de.inovat.kex.bast.exporter.DataChannelAxlBAStEF1
-
- All Implemented Interfaces:
ResultDataChannel
public class DataChannelAxlBAStEF1 extends AbstractDataChannelBASt
Das Format Einzelfahrzeugdaten - EF1 dient zur Übermittlung der Daten von Achslastmessstellen an die BASt, sofern die Daten nicht direkt von der Messstelle an die BASt weitergeleitet werden.Die eingehenden Daten von der Achslastmesstele werden in dem Typ typ.deAxl, der Attributgrupe atg.tlsEinzelErgebnisMeldungAchslastenUndKfzGesamtGewichteVersion3 und dem Aspekt asp.tlsAntwort an den Datenverteiler publiziert. Dementsprechend werden genau diese Datensätze aus dem Archiv ausgelesen und in die Exportdatei geschrieben. Folgende Schritte werden dabei vollzogen:
- 1. Bestimmung der DE-Kanäle zu der übergebenen Langzeitzählstelle. Fehlermeldung, wenn es sich nicht um eine Achslasterfassende Langzeitzählstelle Handelt.
- 2. Auslesen der Daten aus dem Archiv (zu Prüfen ob es zu Performanceeinbußen kommt, wenn die Tagesdatensätze ausgelesen werden und nicht der Monatsdatensatz...)
- 3. Bestimmung des Filenamens (pro Tag, pro Zählstelle wird ein Dateiname erzeugt)
- 4. Erzeugung der Datei mit bestimmten Dateinamen auf dem FTP-Server.
- 5. Schreiben der Stundendatensätze in die Datei, wobei eine Konvertierung in Binärformat durchgeführt wird.
- 6. Bestimmung der Länge des Austauschformates, schreiben dieser Länge an Position Byte 1.
Für jeden Tag und jede Messstelle wird eine Datei angelegt, in der die Achslastmessstelldaten im Binärformat enthalten sind.
-
-
Field Summary
Fields Modifier and Type Field Description static intGEGEN_RICHTUNGKonstante zum Erzeugen ein Channels für die GEGEN-Richtungstatic intIN_RICHTUNGKonstante zum Erzeugen ein Channels für die IN-Richtung-
Fields inherited from class de.inovat.kex.bast.exporter.AbstractDataChannelBASt
_CountOfFS, _LastHour, _ZaehlStelle, MONATE, TWO_DIGIT_FORMAT
-
-
Constructor Summary
Constructors Constructor Description DataChannelAxlBAStEF1(int inRichtung, de.bsvrz.dav.daf.main.ClientDavInterface dav, SendeBAStStatusDaten bastStatusDaten)
-
Method Summary
Modifier and Type Method Description protected java.lang.StringconstructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat ergibt.protected java.lang.StringconstructFilename(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.voidprocessRecord(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime, java.util.Calendar calendar)Die Methode wertet einen Datensatz der Achslastmessstelle aus.voidsetZaehlstelle(LangZeitZaehlStelle zaehlstelle)setzt die Zählstelle.protected voidwriteHeader(java.io.PrintWriter writer)ermöglicht das Schreiben von Daten am Anfang der Datei.protected voidwriteHeaderFTP(java.io.BufferedOutputStream bos)-
Methods inherited from class de.inovat.kex.bast.exporter.AbstractDataChannelBASt
hasData, reset, reset
-
Methods inherited from class de.inovat.kex.bast.exporter.FileDataChannel
close, deleteLastLine, flush, reset, spool
-
-
-
-
Field Detail
-
GEGEN_RICHTUNG
public static final int GEGEN_RICHTUNG
Konstante zum Erzeugen ein Channels für die GEGEN-Richtung- See Also:
- Constant Field Values
-
IN_RICHTUNG
public static final int IN_RICHTUNG
Konstante zum Erzeugen ein Channels für die IN-Richtung- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DataChannelAxlBAStEF1
public DataChannelAxlBAStEF1(int inRichtung, de.bsvrz.dav.daf.main.ClientDavInterface dav, SendeBAStStatusDaten bastStatusDaten)
-
-
Method Detail
-
constructFilename
protected java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)
Description copied from class:AbstractDataChannelBAStgibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat ergibt.- Specified by:
constructFilenamein classAbstractDataChannelBASt- Parameters:
zaehlStelle- Zählstelle.year- Jahr.month- Monat.- Returns:
- vollständig klassifizierter Dateiname
-
constructFilename
protected java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
Description copied from class:AbstractDataChannelBAStgibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.- Specified by:
constructFilenamein classAbstractDataChannelBASt- Parameters:
zaehlStelle- Zählstelle.year- Jahr.month- Monat.day- Tag.- Returns:
- Filename als String.
-
processRecord
public void processRecord(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime, java.util.Calendar calendar) throws ChannelExceptionDie Methode wertet einen Datensatz der Achslastmessstelle aus.- Parameters:
rsArrayAtTime- ResultData[] Archivanfrageresultdata.calendar- Calendarobjekt zur Bestimmung der Zeit.- Throws:
ChannelException- Exception.
-
setZaehlstelle
public void setZaehlstelle(LangZeitZaehlStelle zaehlstelle) throws ChannelException
Description copied from class:AbstractDataChannelBAStsetzt die Zählstelle.
- Specified by:
setZaehlstellein classAbstractDataChannelBASt- Parameters:
zaehlstelle- LangZeitZaehlStelle- Throws:
ChannelException- .
-
writeHeader
protected void writeHeader(java.io.PrintWriter writer) throws java.io.IOExceptionDescription copied from class:FileDataChannelermöglicht das Schreiben von Daten am Anfang der Datei.- Specified by:
writeHeaderin classFileDataChannel- Parameters:
writer- PrintWriter- Throws:
java.io.IOException- wenn beim Schreiben _Fehler auftreten.
-
writeHeaderFTP
protected void writeHeaderFTP(java.io.BufferedOutputStream bos) throws java.io.IOException- Specified by:
writeHeaderFTPin classFileDataChannel- Throws:
java.io.IOException
-
-