Class TLSoIPFrame
- java.lang.Object
-
- de.bsvrz.kex.tls.osi2osi3.osi2.tlsoip.TLSoIPFrame
-
public class TLSoIPFrame extends java.lang.Object
Telegrammrahmen für ein TLSoIP-Telegramm, welches aus Header und Daten besteht.Genaue Beschreibung des Aufbaus siehe TLS 2009 "Datenübertragung über TCP/IP (TLSoIP)".
-
-
Field Summary
Fields Modifier and Type Field Description static int
FRAME_HEADER_LENGTH
Länge des Frame-Headersstatic byte
FRAME_HEADER_SYNC
Sync-Byte (0x68) des Frame-Headersstatic byte
TELTYPE_IB_V1
Telegrammtyp Datentelegramm Inselbusstatic byte
TELTYPE_KEEPALIVE
Telegrammtyp Keep-Alivestatic byte
TELTYPE_QUITT
Telegrammtyp Quittung
-
Constructor Summary
Constructors Constructor Description TLSoIPFrame(int seqNum, byte telType, byte[] data)
Legt ein TLSoIP Telegramm an.TLSoIPFrame(java.nio.ByteBuffer readBuffer)
Spezieller Konstruktor, der aus dem übergebenen ByteBuffer lediglich die HeaderDaten eines TLSoIP-Telegramms ausliest.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addData(java.nio.ByteBuffer readBuffer)
Liest aus dem übergebenen Buffer die Bytes in den Datenteil des Telegramms.byte[]
getData()
Liefert nur den Nutzdatenanteil des Gesamttelegramms.byte[]
getHeader()
Liefert nur den Header des Gesamttelegramms.long
getLen()
Liefert die Länge der Nutzdaten in Anzahl Bytes.int
getSeqNum()
Liefert die aktuelle Sequenznummer (0-65535)byte
getSync()
Liefert das Startbyte des Headers eines TLSoIP-Telegramms.byte[]
getTel()
Liefert das komplette TLSoIP-Telegramm mit Header und Nutzdaten.static java.lang.String
getTelTypeInfo(int telType)
Liefert eine textuelle Beschreibung der unterstützten Telegrammtypen.boolean
isDataTel()
Testet, ob es sich um ein Daten-Telegramm handelt.boolean
isKeepAliveTel()
Testet, ob es sich um ein KeepAlive-Telegramm handelt.boolean
isQuittTel()
Testet, ob es sich um ein Quittierungs-Telegramm handelt.boolean
isTLSoIPFrame()
Testet, ob es sich um ein gültiges TLSoIP-Telegramm handelt.
-
-
-
Field Detail
-
FRAME_HEADER_LENGTH
public static final int FRAME_HEADER_LENGTH
Länge des Frame-Headers- See Also:
- Constant Field Values
-
FRAME_HEADER_SYNC
public static final byte FRAME_HEADER_SYNC
Sync-Byte (0x68) des Frame-Headers- See Also:
- Constant Field Values
-
TELTYPE_IB_V1
public static final byte TELTYPE_IB_V1
Telegrammtyp Datentelegramm Inselbus- See Also:
- Constant Field Values
-
TELTYPE_KEEPALIVE
public static final byte TELTYPE_KEEPALIVE
Telegrammtyp Keep-Alive- See Also:
- Constant Field Values
-
TELTYPE_QUITT
public static final byte TELTYPE_QUITT
Telegrammtyp Quittung- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TLSoIPFrame
public TLSoIPFrame(java.nio.ByteBuffer readBuffer)
Spezieller Konstruktor, der aus dem übergebenen ByteBuffer lediglich die HeaderDaten eines TLSoIP-Telegramms ausliest.- Parameters:
readBuffer
- Der Buffer mit den Headerdaten des Telegramms.
-
TLSoIPFrame
public TLSoIPFrame(int seqNum, byte telType, byte[] data)
Legt ein TLSoIP Telegramm an.- Parameters:
seqNum
- Sequenznummer des Telegramms.telType
- Telegrammtyp (TELTYPE_IB_V1
,TELTYPE_KEEPALIVE
,TELTYPE_QUITT
)data
- Wenn telType =TELTYPE_IB_V1
, die Nutzdaten, sonstnull
.
-
-
Method Detail
-
getTelTypeInfo
public static java.lang.String getTelTypeInfo(int telType)
Liefert eine textuelle Beschreibung der unterstützten Telegrammtypen.- Parameters:
telType
- Code des Telegrammtyps.- Returns:
- Textuelle Beschreibung der unterstützten Telegrammtypen.
-
addData
public void addData(java.nio.ByteBuffer readBuffer)
Liest aus dem übergebenen Buffer die Bytes in den Datenteil des Telegramms. Die Anzahl der zu lesenden Bytes werden aus der Längenangabe des Headers ermittelt.Liegen nicht genügend Bytes im Buffer vor, wird der Datenteil auf
null
gesetzt.- Parameters:
readBuffer
- Der Buffer mit den Nutzdaten des Telegramms.
-
getData
public byte[] getData()
Liefert nur den Nutzdatenanteil des Gesamttelegramms.- Returns:
- Nutzdatenanteil des Gesamttelegramms oder leeres Array, wenn keine Nutzdaten enthalten sind.
-
getHeader
public byte[] getHeader()
Liefert nur den Header des Gesamttelegramms.- Returns:
- Header des Gesamttelegramms oder leeres Array, wenn kein Header enthalten ist.
-
getLen
public long getLen()
Liefert die Länge der Nutzdaten in Anzahl Bytes.- Returns:
- Länge des Datenblocks mit den Nutzdaten.
-
getSeqNum
public int getSeqNum()
Liefert die aktuelle Sequenznummer (0-65535)- Returns:
- Aktuelle Sequenznummer (0-65535)
-
getSync
public byte getSync()
Liefert das Startbyte des Headers eines TLSoIP-Telegramms. Muss eigentlich immer 0x68 sein.- Returns:
- Startbyte des Headers eines TLSoIP-Telegramms. Muss eigentlich immer 0x68 sein.
- See Also:
isTLSoIPFrame()
-
getTel
public byte[] getTel()
Liefert das komplette TLSoIP-Telegramm mit Header und Nutzdaten.- Returns:
- TLSoIP-Telegramm mit Header und Nutzdaten.
-
isDataTel
public boolean isDataTel()
Testet, ob es sich um ein Daten-Telegramm handelt.- Returns:
true
, wenn Telegrammtyp ==TELTYPE_IB_V1
, sonstfalse
.
-
isKeepAliveTel
public boolean isKeepAliveTel()
Testet, ob es sich um ein KeepAlive-Telegramm handelt.- Returns:
true
, wenn Telegrammtyp ==TELTYPE_KEEPALIVE
, sonstfalse
.
-
isQuittTel
public boolean isQuittTel()
Testet, ob es sich um ein Quittierungs-Telegramm handelt.- Returns:
true
, wenn Telegrammtyp ==TELTYPE_QUITT
, sonstfalse
.
-
isTLSoIPFrame
public boolean isTLSoIPFrame()
Testet, ob es sich um ein gültiges TLSoIP-Telegramm handelt.- Returns:
true
, wenn erstes Byte im Header ==FRAME_HEADER_SYNC
, sonstfalse
.
-
-