public class TLSoIPFrame
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) byte[] |
_data
Datenbytes
|
private byte[] |
_header
Headerbytes
|
private long |
_len
Längenangabe im Telegramm
|
private int |
_seqNum
Sequenznummer im Telegramm
|
private byte |
_sync
Sync-Byte im Telegramm
|
private byte |
_telType
Telegrammtyp-Byte im Telegramm
|
private static de.bsvrz.sys.funclib.debug.Debug |
DEBUG
DebugLogger für Debug-Ausgaben.
|
static int |
FRAME_HEADER_LENGTH
Länge des Frame-Headers
|
static byte |
FRAME_HEADER_SYNC
Sync-Byte (0x68) des Frame-Headers
|
static byte |
TELTYPE_IB_V1
Telegrammtyp Datentelegramm Inselbus
|
static byte |
TELTYPE_KEEPALIVE
Telegrammtyp Keep-Alive
|
static byte |
TELTYPE_QUITT
Telegrammtyp Quittung
|
Constructor and Description |
---|
TLSoIPFrame(java.nio.ByteBuffer readBuffer)
Spezieller Konstruktor, der aus dem übergebenen ByteBuffer lediglich die HeaderDaten eines TLSoIP-Telegramms
ausliest.
|
TLSoIPFrame(int seqNum,
byte telType,
byte[] data)
Legt ein TLSoIP Telegramm an.
|
Modifier and Type | Method and Description |
---|---|
void |
addData(java.nio.ByteBuffer readBuffer)
Liest aus dem übergebenen Buffer die Bytes in den Datenteil des Telegramms.
|
private void |
constuctTLSoIPFrame(byte sync,
int seqNum,
byte telType,
byte[] data,
long len)
Privater "Konstruktor" zum Anlegen eines TLSoIP 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.
|
private void |
writeIntAsLowHighByte(byte[] array,
int index,
int data) |
private static final de.bsvrz.sys.funclib.debug.Debug DEBUG
public static final int FRAME_HEADER_LENGTH
public static final byte FRAME_HEADER_SYNC
public static final byte TELTYPE_IB_V1
public static final byte TELTYPE_KEEPALIVE
public static final byte TELTYPE_QUITT
private long _len
private int _seqNum
private byte _sync
private byte _telType
byte[] _data
private final byte[] _header
public TLSoIPFrame(java.nio.ByteBuffer readBuffer)
readBuffer
- Der Buffer mit den Headerdaten des Telegramms.public TLSoIPFrame(int seqNum, byte telType, byte[] data)
seqNum
- Sequenznummer des Telegramms.telType
- Telegrammtyp (TELTYPE_IB_V1
, TELTYPE_KEEPALIVE
, TELTYPE_QUITT
)data
- Wenn telType = TELTYPE_IB_V1
, die Nutzdaten, sonst null
.public static java.lang.String getTelTypeInfo(int telType)
telType
- Code des Telegrammtyps.public void addData(java.nio.ByteBuffer readBuffer)
null gesetzt.
readBuffer
- Der Buffer mit den Nutzdaten des Telegramms.private void constuctTLSoIPFrame(byte sync, int seqNum, byte telType, byte[] data, long len)
sync
- Sync-Zeichen (normalerweise immer 0x68)seqNum
- Sequenznummer des Telegramms.telType
- Telegrammtyp (TELTYPE_IB_V1
, TELTYPE_KEEPALIVE
, TELTYPE_QUITT
)data
- Wenn telType = TELTYPE_IB_V1
, die Nutzdaten, sonst null
.len
- Wenn data != null
, dann wird Länge aus tatsächlicher Nutzdatenlänge ermittelt, ansonsten
wird für len < 0 der Wert 0 und sonst der übergebene Wert eingestellt.public byte[] getData()
public byte[] getHeader()
public long getLen()
public int getSeqNum()
public byte getSync()
isTLSoIPFrame()
public byte[] getTel()
public boolean isDataTel()
true
, wenn Telegrammtyp == TELTYPE_IB_V1
, sonst false
.public boolean isKeepAliveTel()
true
, wenn Telegrammtyp == TELTYPE_KEEPALIVE
, sonst false
.public boolean isQuittTel()
true
, wenn Telegrammtyp == TELTYPE_QUITT
, sonst false
.public boolean isTLSoIPFrame()
true
, wenn erstes Byte im Header == FRAME_HEADER_SYNC
, sonst false
.private void writeIntAsLowHighByte(byte[] array, int index, int data)