Main Page | Features | Central Services | csv-Files | Types | Transfer | Access | API-C | API-.NET | API-Java | Examples | Downloads
page generated on 31.05.2023 - 04:45
Classes | Public Member Functions | Static Public Attributes | List of all members
de.desy.tine.types.IMAGE Class Reference

TINE type CF_IMAGE java class implementation. More...

Inheritance diagram for de.desy.tine.types.IMAGE:
de.desy.tine.types.TCompoundDataObject

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.
 

Detailed Description

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.

Author
Philip Duval (pd)
Stefan Weisse (sw)
David Melkumyan (mdavid)
Version
1.1 Aug 10, 2009
last documented Jan 28, 2009

Constructor & Destructor Documentation

◆ IMAGE() [1/2]

de.desy.tine.types.IMAGE.IMAGE ( )

Constructs an empty image frame buffer with an initial capacity of DEFAULT_DATA_SIZE.

Author
mdavid

References de.desy.tine.types.IMAGE.DEFAULT_DATA_SIZE.

◆ IMAGE() [2/2]

de.desy.tine.types.IMAGE.IMAGE ( int  initialCapacity)

Constructs an empty image frame buffer with the specified initial capacity.

Author
mdavid
Parameters
initialCapacity
  • the initial capacity of the data buffer
Exceptions
IllegalArgumentExceptionif the specified initial capacity is negative

Member Function Documentation

◆ ensureFrameBufferCapacity()

void de.desy.tine.types.IMAGE.ensureFrameBufferCapacity ( int  length)

needed for arrays of IMAGE (or within structs)

Returns

◆ fillFrameBuffer() [1/2]

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

◆ fillFrameBuffer() [2/2]

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

Author
mdavid
Parameters
srcthe source array.
srcPosstarting position in the source array.
destPosstarting position in the destination data.
lengththe number of array elements to be copied.
Exceptions
IllegalArgumentExceptionif imageData is null and destPos != 0.
IndexOutOfBoundsExceptionif copying would cause access of data outside array bounds.
NullPointerExceptionif either src or imageData is null.

◆ getByteArray()

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().

◆ getDoubleValue()

double de.desy.tine.types.IMAGE.getDoubleValue ( )

◆ getFormat()

short de.desy.tine.types.IMAGE.getFormat ( )

Used by TDataType, TTaggedStruct and other routines.

Returns
the format code of this compound data type

Implements de.desy.tine.types.TCompoundDataObject.

◆ getFrameHeader()

FrameHeader de.desy.tine.types.IMAGE.getFrameHeader ( )

Returns reference to subclass FrameHeader.

Returns
reference to subclass FrameHeader

Referenced by de.desy.tine.queryUtils.TQuery.getDeviceServerReport(), and de.desy.tine.dataUtils.TDataType.putData().

◆ getHeaderBytes()

byte [] de.desy.tine.types.IMAGE.getHeaderBytes ( )

Convert image headers (SourceHeader/FrameHeader) into a byte array.

Author
mdavid
Returns
the byte array representing the headers.

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().

◆ getHeaderSize()

int de.desy.tine.types.IMAGE.getHeaderSize ( )

Returns the header size by questioning TFormat.

Returns
size of the header in bytes, if serialized
See also
TFormat
TFormat::getFormatHeaderSize(short)

References de.desy.tine.types.IMAGE.HEADER_SIZE.

Referenced by de.desy.tine.dataUtils.TDataType.putData().

◆ getImageFrameBuffer()

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.

Returns
reference to attached frame buffer (byte array)

Referenced by de.desy.tine.dataUtils.TDataType.getData().

◆ getImageFrameSize()

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.

Returns
size of the attached buffer in bytes

Referenced by de.desy.tine.dataUtils.TDataType.getData(), de.desy.tine.dataUtils.TDataType.putData(), and de.desy.tine.dataUtils.TDataType.TDataType().

◆ getIntegerValue()

int de.desy.tine.types.IMAGE.getIntegerValue ( )

◆ getSizeInBytes()

int de.desy.tine.types.IMAGE.getSizeInBytes ( )

Used by TDataType, TTaggedStruct and other routines.

Returns
the size in bytes of the of this compound data type

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().

◆ getSourceHeader()

SourceHeader de.desy.tine.types.IMAGE.getSourceHeader ( )

Returns reference to subclass SourceHeader.

Returns
reference to subclass SourceHeader

◆ getTag()

String de.desy.tine.types.IMAGE.getTag ( )

Used by TDataType, TTaggedStruct and other routines.

Returns
the data tag of this compound data type

Implements de.desy.tine.types.TCompoundDataObject.

◆ read() [1/2]

void de.desy.tine.types.IMAGE.read ( byte[]  src) throws IOException

Reads the IMAGE from the supplied byte array.

Author
mdavid
Parameters
src
  • input byte array
Exceptions
IOExceptionif I/O error occurs

References de.desy.tine.types.IMAGE.HEADER_SIZE, and de.desy.tine.types.IMAGE.readHeaders().

◆ read() [2/2]

void de.desy.tine.types.IMAGE.read ( DataInputStream  input) throws IOException

Reads the IMAGE from the supplied DataInputStream

Author
mdavid
Parameters
input
  • an DataInputStream to read from.
Exceptions
NullPointerExceptionif input is null.
IOExceptionif an error occurs during reading.

References de.desy.tine.types.IMAGE.readHeaders().

◆ readHeaders() [1/2]

void de.desy.tine.types.IMAGE.readHeaders ( byte[]  src) throws IOException

Reads headers structure from byte array.

Author
mdavid
Parameters
src
  • source byte array
Exceptions
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().

◆ readHeaders() [2/2]

void de.desy.tine.types.IMAGE.readHeaders ( DataInputStream  input) throws IOException
Author
mdavid 21.12.09 duval: made this public for handling adjustable arrays inside structs

◆ setByteArray()

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().

◆ setFieldSeparator()

void de.desy.tine.types.IMAGE.setFieldSeparator ( String  value)

sets the field separator token used the the toString() method

Parameters
value

Implements de.desy.tine.types.TCompoundDataObject.

◆ setFrameHeader()

void de.desy.tine.types.IMAGE.setFrameHeader ( FrameHeader  frameHeader)

Sets the image frame header.

Author
mdavid
Parameters
frameHeader
  • frame header

◆ setHeaderBytes()

void de.desy.tine.types.IMAGE.setHeaderBytes ( DataInputStream  dis) throws IOException

mdavid note: currently unused, can be removed later

Parameters
dis
  • data input stream
Exceptions
IOException
Deprecated:
mdavid: use readHeaders(byte[]) instead

◆ setImageBytes() [1/2]

void de.desy.tine.types.IMAGE.setImageBytes ( DataInputStream  dis) throws IOException

mdavid: unused, can be removed later

Deprecated:
mdavid: use read(DataInputStream) instead
Parameters
dis
Exceptions
IOException

◆ setImageBytes() [2/2]

void de.desy.tine.types.IMAGE.setImageBytes ( DataInputStream  dis,
int  off,
int  len 
) throws IOException

mdavid: unused, can be removed (?)

Deprecated:
mdavid: use read(DataInputStream) instead
Parameters
dis
off
len
Exceptions
IOException

◆ setImageFrameBuffer()

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.

Deprecated:
temporary annotated as deprecated (see Note)
Parameters
buffer
  • reference to image bits buffer

◆ setSourceHeader()

void de.desy.tine.types.IMAGE.setSourceHeader ( SourceHeader  sourceHeader)

Sets the image source header.

Author
mdavid
Parameters
sourceHeader
  • source header

◆ toAdjustableHeaderByteArray()

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

Author
duval
Returns
the byte array representing the header + 8 bytes frame location info

References de.desy.tine.types.IMAGE.getHeaderBytes(), and de.desy.tine.types.IMAGE.HEADER_SIZE.

◆ toByteArray()

byte [] de.desy.tine.types.IMAGE.toByteArray ( )

Convert IMAGE object into a byte array.

Author
mdavid
Returns
the byte array representing this object.

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().

◆ toStruct()

void de.desy.tine.types.IMAGE.toStruct ( )

Initializes header structure.

@not yet deprecated mdavid: use readHeaders(byte[]) instead

Implements de.desy.tine.types.TCompoundDataObject.

◆ trimFrameBuffer()

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.

Author
mdavid
Returns
trimmed image data buffer
See also
FrameHeader::appendedFrameSize
Exceptions
IllegalStateExceptionif appendedFrameSize is undefined
IndexOutOfBoundsExceptionif appendedFrameSize is greater than image data size

◆ write()

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.

Author
mdavid
Parameters
output
  • an DataOutputStream to write to.
Exceptions
IOExceptionif an error occurs during writing.
See also
trimFrameBuffer()

References de.desy.tine.types.IMAGE.writeHeaders().

◆ writeHeaders()

void de.desy.tine.types.IMAGE.writeHeaders ( DataOutputStream  output) throws IOException
Author
mdavid 21.12.09 duval: made this public for handling adjustable arrays inside structs

Referenced by de.desy.tine.types.IMAGE.getHeaderBytes(), and de.desy.tine.types.IMAGE.write().


The documentation for this class was generated from the following file: