TINE type CF_IMAGE java class implementation. More...
Classes | |
class | FrameHeader |
Subclass of second (and last) part of header (subclass used for logical grouping of class member variables which map almost 1:1 to header structures physically transferred in binary form. More... | |
class | SourceHeader |
Subclass of first part of header (subclass used for logical grouping of class member variables which map almost 1:1 to header structures transferred in binary form. More... | |
Public Member Functions | |
IMAGE () | |
Constructs an empty image frame buffer with an initial capacity of DEFAULT_DATA_SIZE. More... | |
IMAGE (int initialCapacity) | |
Constructs an empty image frame buffer with the specified initial capacity. More... | |
byte[] | getImageFrameBuffer () |
Returns a reference to the appended image bits buffer. More... | |
void | setImageFrameBuffer (byte[] buffer) |
Sets the internal image bits buffer reference to the passed byte buffer argument. More... | |
byte[] | trimFrameBuffer () |
Trims the capacity of the image data buffer that contains actual/delivered data. More... | |
void | ensureFrameBufferCapacity (int length) |
needed for arrays of IMAGE (or within structs) More... | |
void | setHeaderBytes (DataInputStream dis) throws IOException |
mdavid note: currently unused, can be removed later More... | |
void | setImageBytes (DataInputStream dis) throws IOException |
mdavid: unused, can be removed later More... | |
void | setImageBytes (DataInputStream dis, int off, int len) throws IOException |
mdavid: unused, can be removed (?) More... | |
void | readHeaders (byte[] src) throws IOException |
Reads headers structure from byte array. More... | |
void | readHeaders (DataInputStream input) throws IOException |
void | writeHeaders (DataOutputStream output) throws IOException |
void | fillFrameBuffer (byte[] src, int srcPos, int destPos, int length) |
Copies an array from the specified source array, beginning at the specified position, to the specified position of the image data array. More... | |
void | fillFrameBuffer (byte src, int destPos) |
Copies a byte into the designated position of the image buffer. More... | |
int | getImageFrameSize () |
Returns gross length of the appended image bits buffer in bytes. More... | |
int | getHeaderSize () |
Returns the header size by questioning TFormat. More... | |
byte[] | toByteArray () |
Convert IMAGE object into a byte array. More... | |
byte[] | toAdjustableHeaderByteArray () |
for arrays, inclusion in structs, things are serialized differently : need separate routines for adjustable header and adjustable frame parts More... | |
void | toStruct () |
Initializes header structure. More... | |
byte[] | getByteArray () |
Returns headers byte array. More... | |
void | setByteArray (byte[] byteArray) |
Initializes object from byte array. More... | |
void | read (byte[] src) throws IOException |
Reads the IMAGE from the supplied byte array. More... | |
void | read (DataInputStream input) throws IOException |
Reads the IMAGE from the supplied DataInputStream More... | |
void | write (DataOutputStream output) throws IOException |
Appends a complete image containing a trimmed image data with source/frame headers to the output. More... | |
byte[] | getHeaderBytes () |
Convert image headers (SourceHeader/FrameHeader) into a byte array. More... | |
short | getFormat () |
Used by TDataType, TTaggedStruct and other routines. More... | |
String | getTag () |
Used by TDataType, TTaggedStruct and other routines. More... | |
int | getSizeInBytes () |
Used by TDataType, TTaggedStruct and other routines. More... | |
double | getDoubleValue () |
int | getIntegerValue () |
SourceHeader | getSourceHeader () |
Returns reference to subclass SourceHeader. More... | |
void | setSourceHeader (SourceHeader sourceHeader) |
Sets the image source header. More... | |
FrameHeader | getFrameHeader () |
Returns reference to subclass FrameHeader. More... | |
void | setFrameHeader (FrameHeader frameHeader) |
Sets the image frame header. More... | |
void | setFieldSeparator (String value) |
sets the field separator token used the the toString() method More... | |
String | getCsvString () |
Used by TDataType.toCsvString() to get a valid parse-able string to of the objects data contents to supply to csv files. | |
Static Public Attributes | |
static final int | HEADER_SIZE = TFormat.getFormatHeaderSize(TFormat.CF_IMAGE) |
Total size in bytes of frame/source headers. | |
static final int | DEFAULT_DATA_SIZE = 0x600000 |
Default capacity of an image data buffer. | |
static final int | DEFAULT_BASE_TAG = 0x33565356 |
Magic id for VSv3 'VSV3'. | |
static final long | DEFAULT_CAMERA_PORT_ID = 0x0 |
No camera port is set. | |
static final long | IMAGE_INITIAL_VERSION = 0x1 |
Initial IMAGE version. | |
static final long | IMAGE_VERSION = 0x1 |
Current IMAGE version. | |
static final long | IMAGE_MAX_VERSION = 0x1 |
Maximum IMAGE version. | |
static final String | DEFAULT_CAMERA_PORT_NAME = "unknown" |
Default camera port name. | |
TINE type CF_IMAGE java class implementation.
Documentation mainly done by Stefan Weisse. Initial class design and implementation by Philip Duval, based on negotiations and agreement (between DESY Zeuthen-based controls group (now ERS), MST (now MCS 1) and MVP (now MCS 4)) on a defined control system type for video image data transport. Refactoring and optimizations by David Melkymyan.
de.desy.tine.types.IMAGE.IMAGE | ( | ) |
Constructs an empty image frame buffer with an initial capacity of DEFAULT_DATA_SIZE.
References de.desy.tine.types.IMAGE.DEFAULT_DATA_SIZE.
de.desy.tine.types.IMAGE.IMAGE | ( | int | initialCapacity | ) |
Constructs an empty image frame buffer with the specified initial capacity.
initialCapacity |
|
IllegalArgumentException | if the specified initial capacity is negative |
void de.desy.tine.types.IMAGE.ensureFrameBufferCapacity | ( | int | length | ) |
needed for arrays of IMAGE (or within structs)
void de.desy.tine.types.IMAGE.fillFrameBuffer | ( | byte | src, |
int | destPos | ||
) |
Copies a byte into the designated position of the image buffer.
Used in IMAGE array transfers
void de.desy.tine.types.IMAGE.fillFrameBuffer | ( | byte[] | src, |
int | srcPos, | ||
int | destPos, | ||
int | length | ||
) |
Copies an array from the specified source array, beginning at the specified position, to the specified position of the image data array.
Note: unused - can be removed
src | the source array. |
srcPos | starting position in the source array. |
destPos | starting position in the destination data. |
length | the number of array elements to be copied. |
IllegalArgumentException | if imageData is null and destPos != 0 . |
IndexOutOfBoundsException | if copying would cause access of data outside array bounds. |
NullPointerException | if either src or imageData is null . |
byte [] de.desy.tine.types.IMAGE.getByteArray | ( | ) |
Returns headers byte array.
Note: unused (not yet true: TTaggedStruct doesn't yet treat IMAGE explicitly)!
@not yet deprecated mdavid: use toByteArray() instead
Implements de.desy.tine.types.TCompoundDataObject.
References de.desy.tine.types.IMAGE.getHeaderBytes().
double de.desy.tine.types.IMAGE.getDoubleValue | ( | ) |
Implements de.desy.tine.types.TCompoundDataObject.
short de.desy.tine.types.IMAGE.getFormat | ( | ) |
Used by TDataType, TTaggedStruct and other routines.
Implements de.desy.tine.types.TCompoundDataObject.
FrameHeader de.desy.tine.types.IMAGE.getFrameHeader | ( | ) |
Returns reference to subclass FrameHeader.
Referenced by de.desy.tine.queryUtils.TQuery.getDeviceServerReport(), and de.desy.tine.dataUtils.TDataType.putData().
byte [] de.desy.tine.types.IMAGE.getHeaderBytes | ( | ) |
Convert image headers (SourceHeader/FrameHeader) into a byte array.
References de.desy.tine.types.IMAGE.HEADER_SIZE, and de.desy.tine.types.IMAGE.writeHeaders().
Referenced by de.desy.tine.types.IMAGE.getByteArray(), de.desy.tine.types.IMAGE.toAdjustableHeaderByteArray(), and de.desy.tine.types.IMAGE.toByteArray().
int de.desy.tine.types.IMAGE.getHeaderSize | ( | ) |
Returns the header size by questioning TFormat.
References de.desy.tine.types.IMAGE.HEADER_SIZE.
Referenced by de.desy.tine.dataUtils.TDataType.putData().
byte [] de.desy.tine.types.IMAGE.getImageFrameBuffer | ( | ) |
Returns a reference to the appended image bits buffer.
One should note that this buffer might only be filled to a certain extend, because buffer can be bigger than contained data is.
To obtain buffer that contains only actual/delivered data (based on FrameHeader#appendedFrameSize) use trimFrameBuffer() instead.
Referenced by de.desy.tine.dataUtils.TDataType.getData().
int de.desy.tine.types.IMAGE.getImageFrameSize | ( | ) |
Returns gross length of the appended image bits buffer in bytes.
Value might be significantly bigger than appended frame size, because buffer must be bigger or equal to appended frame size.
Referenced by de.desy.tine.dataUtils.TDataType.getData(), de.desy.tine.dataUtils.TDataType.putData(), and de.desy.tine.dataUtils.TDataType.TDataType().
int de.desy.tine.types.IMAGE.getIntegerValue | ( | ) |
Implements de.desy.tine.types.TCompoundDataObject.
int de.desy.tine.types.IMAGE.getSizeInBytes | ( | ) |
Used by TDataType, TTaggedStruct and other routines.
Implements de.desy.tine.types.TCompoundDataObject.
References de.desy.tine.types.IMAGE.HEADER_SIZE.
Referenced by de.desy.tine.dataUtils.TDataType.TDataType(), and de.desy.tine.types.IMAGE.toByteArray().
SourceHeader de.desy.tine.types.IMAGE.getSourceHeader | ( | ) |
Returns reference to subclass SourceHeader.
String de.desy.tine.types.IMAGE.getTag | ( | ) |
Used by TDataType, TTaggedStruct and other routines.
Implements de.desy.tine.types.TCompoundDataObject.
void de.desy.tine.types.IMAGE.read | ( | byte[] | src | ) | throws IOException |
Reads the IMAGE
from the supplied byte array.
src |
|
IOException | if I/O error occurs |
References de.desy.tine.types.IMAGE.HEADER_SIZE, and de.desy.tine.types.IMAGE.readHeaders().
void de.desy.tine.types.IMAGE.read | ( | DataInputStream | input | ) | throws IOException |
Reads the IMAGE
from the supplied DataInputStream
input |
|
NullPointerException | if input is null . |
IOException | if an error occurs during reading. |
References de.desy.tine.types.IMAGE.readHeaders().
void de.desy.tine.types.IMAGE.readHeaders | ( | byte[] | src | ) | throws IOException |
Reads headers structure from byte array.
src |
|
IOException |
References de.desy.tine.types.IMAGE.HEADER_SIZE.
Referenced by de.desy.tine.dataUtils.TDataType.getData(), de.desy.tine.types.IMAGE.read(), and de.desy.tine.types.IMAGE.setByteArray().
void de.desy.tine.types.IMAGE.readHeaders | ( | DataInputStream | input | ) | throws IOException |
void de.desy.tine.types.IMAGE.setByteArray | ( | byte[] | byteArray | ) |
Initializes object from byte array.
@not yet deprecated mdavid: use read(byte[]) instead
Implements de.desy.tine.types.TCompoundDataObject.
References de.desy.tine.types.IMAGE.HEADER_SIZE, and de.desy.tine.types.IMAGE.readHeaders().
void de.desy.tine.types.IMAGE.setFieldSeparator | ( | String | value | ) |
sets the field separator token used the the toString() method
value |
Implements de.desy.tine.types.TCompoundDataObject.
void de.desy.tine.types.IMAGE.setFrameHeader | ( | FrameHeader | frameHeader | ) |
Sets the image frame header.
frameHeader |
|
void de.desy.tine.types.IMAGE.setHeaderBytes | ( | DataInputStream | dis | ) | throws IOException |
mdavid note: currently unused, can be removed later
dis |
|
IOException |
void de.desy.tine.types.IMAGE.setImageBytes | ( | DataInputStream | dis | ) | throws IOException |
mdavid: unused, can be removed later
dis |
IOException |
void de.desy.tine.types.IMAGE.setImageBytes | ( | DataInputStream | dis, |
int | off, | ||
int | len | ||
) | throws IOException |
mdavid: unused, can be removed (?)
dis | |
off | |
len |
IOException |
void de.desy.tine.types.IMAGE.setImageFrameBuffer | ( | byte[] | buffer | ) |
Sets the internal image bits buffer reference to the passed byte buffer argument.
Note (mdavid): do not use this method for constructing empty buffer, use constructor IMAGE(int) instead.
buffer |
|
void de.desy.tine.types.IMAGE.setSourceHeader | ( | SourceHeader | sourceHeader | ) |
Sets the image source header.
sourceHeader |
|
byte [] de.desy.tine.types.IMAGE.toAdjustableHeaderByteArray | ( | ) |
for arrays, inclusion in structs, things are serialized differently : need separate routines for adjustable header and adjustable frame parts
References de.desy.tine.types.IMAGE.getHeaderBytes(), and de.desy.tine.types.IMAGE.HEADER_SIZE.
byte [] de.desy.tine.types.IMAGE.toByteArray | ( | ) |
Convert IMAGE object into a byte array.
Implements de.desy.tine.types.TCompoundDataObject.
References de.desy.tine.types.IMAGE.getHeaderBytes(), de.desy.tine.types.IMAGE.getSizeInBytes(), and de.desy.tine.types.IMAGE.HEADER_SIZE.
Referenced by de.desy.tine.dataUtils.TDataType.TDataType().
void de.desy.tine.types.IMAGE.toStruct | ( | ) |
Initializes header structure.
@not yet deprecated mdavid: use readHeaders(byte[]) instead
Implements de.desy.tine.types.TCompoundDataObject.
byte [] de.desy.tine.types.IMAGE.trimFrameBuffer | ( | ) |
Trims the capacity of the image data buffer that contains actual/delivered data.
An application can use this operation to minimize the storage of an image data.
IllegalStateException | if appendedFrameSize is undefined |
IndexOutOfBoundsException | if appendedFrameSize is greater than image data size |
void de.desy.tine.types.IMAGE.write | ( | DataOutputStream | output | ) | throws IOException |
Appends a complete image containing a trimmed image data with source/frame headers to the output.
output |
|
IOException | if an error occurs during writing. |
References de.desy.tine.types.IMAGE.writeHeaders().
void de.desy.tine.types.IMAGE.writeHeaders | ( | DataOutputStream | output | ) | throws IOException |
Referenced by de.desy.tine.types.IMAGE.getHeaderBytes(), and de.desy.tine.types.IMAGE.write().