Raytrix RayCam SDK  v2.1.0
Public Member Functions
Rx::RayCam::IDevice Class Referenceabstract

This class represents a camera. To use the camera in streaming mode: More...

#include <IDevice.h>

Public Member Functions

virtual void ApplyCameraConfiguration (void)=0
 This will apply the set up test configuration. More...
 
virtual void Close (void)=0
 Closes the camera and disconnects it. More...
 
virtual void GetProperty (ECamProperty::ID eProp, int &theValue)=0
 Gets a camera property of type int or bool (0 represents false). More...
 
virtual void GetProperty (ECamProperty::ID eProp, double &theValue)=0
 Gets a camera property of type double. More...
 
virtual void GetProperty (ECamProperty::ID eProp, long long &theValue)=0
 Gets a camera property of type long long (0 represents false). More...
 
virtual void GetProperty (ECamProperty::ID eProp, int &theValue1, int &theValue2)=0
 Gets the min and max value of a camera property of type int. More...
 
virtual void GetProperty (ECamProperty::ID eProp, double &theValue1, double &theValue2)=0
 Gets the min and max value of a camera property of type double. More...
 
virtual void GetProperty (ECamProperty::ID eProp, long long &theValue1, long long &theValue2)=0
 Gets the min and max value of a camera property of type double. More...
 
virtual void GetProperty (ECamProperty::ID eProp, void *theValue, int &theSize)=0
 Gets a camera property of type void*. More...
 
virtual void GetProperty (ECamProperty::ID eProp, char *theValue, int &theSize)=0
 Writes a char array into the theValue buffer. The size of the buffer has to be in theSize. More...
 
virtual void GetProperty (ECamProperty::ID eProp, wchar_t *theValue, int &theSize)=0
 Writes a char array into the theValue buffer. The size of the buffer has to be in theSize. More...
 
virtual void GetPropertyRange (ECamProperty::ID eProp, int &theMin, int &theMax)=0
 Gets the min and max value of a camera property of type int. More...
 
virtual void GetPropertyRange (ECamProperty::ID eProp, double &theMin, double &theMax)=0
 Gets the min and max value of a camera property of type double. More...
 
virtual void GetPropertyRange (ECamProperty::ID eProp, long long &theMin, long long &theMax)=0
 Gets the min and max value of a camera property of type double. More...
 
virtual bool HasProperty (ECamProperty::ID eProp)=0
 Check if a property is available for Get/Set operations. More...
 
virtual void LockTextureAccess ()=0
 Locks all Texture operations when using OpenGl Texture Transfer More...
 
virtual void Open (void)=0
 Opens this camera device. Might throw a firmware mismatch exception which indicates that either the firmware of the camera or the firmware on your hard disk is newer. In this case, you should upgrade or downgrade the firmware to get a fully functional camera. Otherwise, if you call Open() again, the camera might me able to open but it's very likely for the camera to not work at some point. More...
 
virtual EWhiteImageStatus::ID ProcessDevignetting (void)=0
 Take a white image and do devignetting. This will remove vignetting artifacts. More...
 
virtual void ProcessWhiteBalance (void)=0
 Take a white image and do color balancing. More...
 
virtual void RegisterCallback (void *callBackOwner, TCallbackFunction pCallbackFunction)=0
 Registers the receive image callback specified by Rx::RayCam::TCallbackFunction. More...
 
virtual void RegisterCallback (void *callBackOwner, TCallbackFunctionExtended pCallbackFunction)=0
 Registers the extended receive image callback specified by Rx::RayCam::TCallbackFunction. More...
 
virtual void Reset (void)=0
 Resets the camera. More...
 
virtual void SetProperty (ECamProperty::ID eProp, int newValue)=0
 Sets a camera property of type int or bool (0 represents false). More...
 
virtual void SetProperty (ECamProperty::ID eProp, double newValue)=0
 Sets a camera property of type double. More...
 
virtual void SetProperty (ECamProperty::ID eProp, long long newValue)=0
 Sets a camera property of type long long. More...
 
virtual void SetProperty (ECamProperty::ID eProp, int newValue1, int newValue2)=0
 Sets a camera property with two values of type int or bool (0 represents false). More...
 
virtual void SetProperty (ECamProperty::ID eProp, double newValue1, double newValue2)=0
 Sets a camera property with two values of type double. More...
 
virtual void SetProperty (ECamProperty::ID eProp, long long newValue1, long long newValue2)=0
 Sets a camera property with two values of type double. More...
 
virtual void SetProperty (ECamProperty::ID eProp, void *theValue, int theSize)=0
 Sets a camera property of type void*. More...
 
virtual void SetProperty (ECamProperty::ID eProp, char *theValue, int theSize)=0
 Sets a camera property of type char*. The size of the buffer has to be in theSize. More...
 
virtual void SetProperty (ECamProperty::ID eProp, wchar_t *theValue, int theSize)=0
 Sets a camera property of type char*. The size of the buffer has to be in theSize. More...
 
virtual void SetPropertyRange (ECamProperty::ID eProp, int newMin, int newMax)=0
 Sets a camera property with two values of type int or bool (0 represents false). More...
 
virtual void SetPropertyRange (ECamProperty::ID eProp, double newMin, double newMax)=0
 Sets a camera property with two values of type double. More...
 
virtual void SetPropertyRange (ECamProperty::ID eProp, long long newMin, long long newMax)=0
 Sets a camera property with two values of type double. More...
 
virtual void StartStream (Rx::RayCam::ECamTriggerMode::ID eMode)=0
 Starts a stream in a specific mode. More...
 
virtual void StartStreamSuspended (Rx::RayCam::ECamTriggerMode::ID eMode)=0
 Starts a video stream but suspended. You won't receive any images until you call Rx::RayCam::IDevice::SuspendStream() with false. More...
 
virtual void StopStream (void)=0
 Stops a stream. The function abort pending image exposures. More...
 
virtual void SuspendStream (bool bSuspend)=0
 Suspend or unsuspend the camera. More...
 
virtual void TestCameraConfiguration (double &dMinFps, double &dMaxFPS, double &dMinExposure, double &dMaxExposure)=0
 Try set camera configuration. More...
 
virtual void TestCameraConfiguration (void)=0
 This will test the test configuration. More...
 
virtual void Trigger (void)=0
 Triggers this camera to deliver an image via the callback function Rx::RayCam::TCallbackFunction (only in Rx::RayCam::ECamTriggerMode::SoftwareSingle mode). More...
 
virtual void UnlockTextureAccess ()=0
 Unlocks the texture mutex when using OpenGL Texture Transfer More...
 
virtual void UnregisterCallback (void)=0
 Unregisters the receive image callback. More...
 
virtual void UnregisterCallbackExtended (void)=0
 Unregisters the extended receive image callback. More...
 

Detailed Description

This class represents a camera. To use the camera in streaming mode:

  1. Call Rx::RayCam::IDevice::Open() to initialize the camera (Can take up to 25 seconds).
  2. Register your callback function Rx::RayCam::TCallbackFunction using Rx::RayCam::IDevice::RegisterCallback().
  3. Call Rx::RayCam::IDevice::StartStream(), to start the video stream.
  4. The callback function gets called with every new image.

Member Function Documentation

virtual void Rx::RayCam::IDevice::ApplyCameraConfiguration ( void  )
pure virtual

This will apply the set up test configuration.

virtual void Rx::RayCam::IDevice::Close ( void  )
pure virtual

Closes the camera and disconnects it.

virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
int &  theValue 
)
pure virtual

Gets a camera property of type int or bool (0 represents false).

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
double &  theValue 
)
pure virtual

Gets a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
long long &  theValue 
)
pure virtual

Gets a camera property of type long long (0 represents false).

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
int &  theValue1,
int &  theValue2 
)
pure virtual

Gets the min and max value of a camera property of type int.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue1[out] The first value.
theValue2[out] The second value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
double &  theValue1,
double &  theValue2 
)
pure virtual

Gets the min and max value of a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue1[out] The first value.
theValue2[out] The second value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
long long &  theValue1,
long long &  theValue2 
)
pure virtual

Gets the min and max value of a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue1[out] The first value.
theValue2[out] The second value.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
void *  theValue,
int &  theSize 
)
pure virtual

Gets a camera property of type void*.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value.
theSize[in,out] Size of the.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
char *  theValue,
int &  theSize 
)
pure virtual

Writes a char array into the theValue buffer. The size of the buffer has to be in theSize.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value buffer.
theSize[in,out] The size of the buffer.
virtual void Rx::RayCam::IDevice::GetProperty ( ECamProperty::ID  eProp,
wchar_t *  theValue,
int &  theSize 
)
pure virtual

Writes a char array into the theValue buffer. The size of the buffer has to be in theSize.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value buffer.
theSize[in,out] The size of the buffer.
virtual void Rx::RayCam::IDevice::GetPropertyRange ( ECamProperty::ID  eProp,
int &  theMin,
int &  theMax 
)
pure virtual

Gets the min and max value of a camera property of type int.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theMin[in,out] The min value.
theMax[in,out] The max value.
virtual void Rx::RayCam::IDevice::GetPropertyRange ( ECamProperty::ID  eProp,
double &  theMin,
double &  theMax 
)
pure virtual

Gets the min and max value of a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theMin[in,out] The min value.
theMax[in,out] The max value.
virtual void Rx::RayCam::IDevice::GetPropertyRange ( ECamProperty::ID  eProp,
long long &  theMin,
long long &  theMax 
)
pure virtual

Gets the min and max value of a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theMin[in,out] The min value.
theMax[in,out] The max value.
virtual bool Rx::RayCam::IDevice::HasProperty ( ECamProperty::ID  eProp)
pure virtual

Check if a property is available for Get/Set operations.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
Returns
True if it the property is available.
virtual void Rx::RayCam::IDevice::LockTextureAccess ( )
pure virtual

Locks all Texture operations when using OpenGl Texture Transfer

virtual void Rx::RayCam::IDevice::Open ( void  )
pure virtual

Opens this camera device. Might throw a firmware mismatch exception which indicates that either the firmware of the camera or the firmware on your hard disk is newer. In this case, you should upgrade or downgrade the firmware to get a fully functional camera. Otherwise, if you call Open() again, the camera might me able to open but it's very likely for the camera to not work at some point.

virtual EWhiteImageStatus::ID Rx::RayCam::IDevice::ProcessDevignetting ( void  )
pure virtual

Take a white image and do devignetting. This will remove vignetting artifacts.

Returns
The Rx::RayCam::EWhiteImageStatus::ID status of the white image.
virtual void Rx::RayCam::IDevice::ProcessWhiteBalance ( void  )
pure virtual

Take a white image and do color balancing.

virtual void Rx::RayCam::IDevice::RegisterCallback ( void *  callBackOwner,
TCallbackFunction  pCallbackFunction 
)
pure virtual

Registers the receive image callback specified by Rx::RayCam::TCallbackFunction.

Parameters
callBackOwner[in,out] If non-null, the owner of the call back.
pCallbackFunctionThe callback function.
virtual void Rx::RayCam::IDevice::RegisterCallback ( void *  callBackOwner,
TCallbackFunctionExtended  pCallbackFunction 
)
pure virtual

Registers the extended receive image callback specified by Rx::RayCam::TCallbackFunction.

Parameters
callBackOwner[in,out] If non-null, the owner of the call back.
pCallbackFunctionThe callback function.
virtual void Rx::RayCam::IDevice::Reset ( void  )
pure virtual

Resets the camera.

virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
int  newValue 
)
pure virtual

Sets a camera property of type int or bool (0 represents false).

Parameters
ePropThe property.
newValueThe new value.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
double  newValue 
)
pure virtual

Sets a camera property of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newValueThe new value.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
long long  newValue 
)
pure virtual

Sets a camera property of type long long.

Parameters
ePropThe property.
newValueThe new value.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
int  newValue1,
int  newValue2 
)
pure virtual

Sets a camera property with two values of type int or bool (0 represents false).

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newValue1The new value1.
newValue2The new value2.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
double  newValue1,
double  newValue2 
)
pure virtual

Sets a camera property with two values of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newValue1The new value1.
newValue2The new value2.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
long long  newValue1,
long long  newValue2 
)
pure virtual

Sets a camera property with two values of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newValue1The new value1.
newValue2The new value2.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
void *  theValue,
int  theSize 
)
pure virtual

Sets a camera property of type void*.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value.
theSizeSize of the.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
char *  theValue,
int  theSize 
)
pure virtual

Sets a camera property of type char*. The size of the buffer has to be in theSize.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value buffer.
theSizeThe size of the buffer.
virtual void Rx::RayCam::IDevice::SetProperty ( ECamProperty::ID  eProp,
wchar_t *  theValue,
int  theSize 
)
pure virtual

Sets a camera property of type char*. The size of the buffer has to be in theSize.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
theValue[in,out] The value buffer.
theSizeThe size of the buffer.
virtual void Rx::RayCam::IDevice::SetPropertyRange ( ECamProperty::ID  eProp,
int  newMin,
int  newMax 
)
pure virtual

Sets a camera property with two values of type int or bool (0 represents false).

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newMinThe min value.
newMaxThe max value.
virtual void Rx::RayCam::IDevice::SetPropertyRange ( ECamProperty::ID  eProp,
double  newMin,
double  newMax 
)
pure virtual

Sets a camera property with two values of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newMinThe min value.
newMaxThe max value.
virtual void Rx::RayCam::IDevice::SetPropertyRange ( ECamProperty::ID  eProp,
long long  newMin,
long long  newMax 
)
pure virtual

Sets a camera property with two values of type double.

Parameters
ePropThe Rx::RayCam::ECamProperty::ID property.
newMinThe min value.
newMaxThe max value.
virtual void Rx::RayCam::IDevice::StartStream ( Rx::RayCam::ECamTriggerMode::ID  eMode)
pure virtual

Starts a stream in a specific mode.

Parameters
eModeThe Rx::RayCam::ECamTriggerMode::ID trigger mode.
virtual void Rx::RayCam::IDevice::StartStreamSuspended ( Rx::RayCam::ECamTriggerMode::ID  eMode)
pure virtual

Starts a video stream but suspended. You won't receive any images until you call Rx::RayCam::IDevice::SuspendStream() with false.

Parameters
eModeThe Rx::RayCam::ECamTriggerMode::ID trigger mode.
virtual void Rx::RayCam::IDevice::StopStream ( void  )
pure virtual

Stops a stream. The function abort pending image exposures.

virtual void Rx::RayCam::IDevice::SuspendStream ( bool  bSuspend)
pure virtual

Suspend or unsuspend the camera.

Unsuspend the camera before you call Rx::RayCam::IDevice::StopStream()!

Parameters
bSuspendtrue to suspend camera, false to unsuspend.
virtual void Rx::RayCam::IDevice::TestCameraConfiguration ( double &  dMinFps,
double &  dMaxFPS,
double &  dMinExposure,
double &  dMaxExposure 
)
pure virtual

Try set camera configuration.

Parameters
dMinFps[out] The minimum FPS.
dMaxFPS[out] The maximum FPS.
dMinExposure[out] The minimum exposure.
dMaxExposure[out] The maximum exposure.
virtual void Rx::RayCam::IDevice::TestCameraConfiguration ( void  )
pure virtual

This will test the test configuration.

virtual void Rx::RayCam::IDevice::Trigger ( void  )
pure virtual

Triggers this camera to deliver an image via the callback function Rx::RayCam::TCallbackFunction (only in Rx::RayCam::ECamTriggerMode::SoftwareSingle mode).

virtual void Rx::RayCam::IDevice::UnlockTextureAccess ( )
pure virtual

Unlocks the texture mutex when using OpenGL Texture Transfer

virtual void Rx::RayCam::IDevice::UnregisterCallback ( void  )
pure virtual

Unregisters the receive image callback.

virtual void Rx::RayCam::IDevice::UnregisterCallbackExtended ( void  )
pure virtual

Unregisters the extended receive image callback.


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