OpenScanDeviceLib
OpenScan Device Programming Interface
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
OpenScan Device Programming Interface

Data Structures

struct  OScDev_ModuleImpl
 The module implementation function table. More...
 

Macros

#define OScDev_CHECK(err, call)   ((err = (call)) != OScDev_OK)
 Convenience macro for checking error return values.
 
#define OScDev_MAX_STR_LEN   (OScDev_MAX_STR_SIZE - 1)
 Maximum length for strings copied to provided buffer.
 
#define OScDev_MAX_STR_SIZE   512
 Buffer size for fixed-length strings.
 
#define OScDev_MODULE_IMPL   OScDev_ModuleImpl OScDevInternal_TheModuleImpl
 Define the device module implementation.
 
#define OScDev_RichError_OK   ((OScDev_RichError *)NULL)
 

Typedefs

typedef struct OScInternal_AcquisitionForDevice OScDev_Acquisition
 
typedef int32_t OScDev_ClockSource
 
typedef struct OScInternal_Device OScDev_Device
 
typedef struct OScDev_DeviceImpl OScDev_DeviceImpl
 
typedef int32_t OScDev_Error
 Error return value.
 
typedef int32_t OScDev_ErrorCodeFormat
 
typedef int32_t OScDev_LogLevel
 Log level.
 
typedef struct OScDev_ModuleImpl OScDev_ModuleImpl
 
typedef struct OScInternal_NumArray OScDev_NumArray
 Dynamic or static array of numbers.
 
typedef struct OScInternal_NumRange OScDev_NumRange
 Continuous or discrete numerical range.
 
typedef struct OScInternal_PtrArray OScDev_PtrArray
 Dynamic or static array of pointers.
 
typedef struct RERR_Error OScDev_RichError
 
typedef struct OScInternal_Setting OScDev_Setting
 
typedef struct OScDev_SettingImpl OScDev_SettingImpl
 
typedef int32_t OScDev_TriggerSource
 
typedef int32_t OScDev_ValueConstraint
 
typedef int32_t OScDev_ValueType
 

Enumerations

enum  { OScDev_LogLevel_Debug , OScDev_LogLevel_Info , OScDev_LogLevel_Warning , OScDev_LogLevel_Error }
 Constants for OScDev_LogLevel. More...
 
enum  {
  OScDev_ErrorCodeFormat_I32 = 1 , OScDev_ErrorCodeFormat_U32 = 2 , OScDev_ErrorCodeFormat_Hex32 = 4 , OScDev_ErrorCodeFormat_I16 = 8 ,
  OScDev_ErrorCodeFormat_U16 = 16 , OScDev_ErrorCodeFormat_Hex16 , OScDev_ErrorCodeFormat_HexNoPad = 1 << 31
}
 
enum  {
  OScDev_OK = 0 , OScDev_Error_Unknown = 10000 , OScDev_Error_Unsupported_Operation , OScDev_Error_Illegal_Argument ,
  OScDev_Error_Device_Module_Already_Exists , OScDev_Error_No_Such_Device_Module , OScDev_Error_Driver_Not_Available , OScDev_Error_Device_Already_Open ,
  OScDev_Error_Device_Not_Opened_For_LSM , OScDev_Error_Device_Does_Not_Support_Clock , OScDev_Error_Device_Does_Not_Support_Scanner , OScDev_Error_Device_Does_Not_Support_Detector ,
  OScDev_Error_Wrong_Value_Type , OScDev_Error_Setting_Not_Writable , OScDev_Error_Wrong_Constraint_Type , OScDev_Error_Unknown_Enum_Value_Name ,
  OScDev_Error_Acquisition_Running , OScDev_Error_Not_Armed , OScDev_Error_Waveform_Out_Of_Range , OScDev_Error_Waveform_Memory_Size_Mismatch ,
  OScDev_Error_Data_Left_In_Fifo_After_Reading_Image
}
 
enum  { OScDev_TriggerSource_Software , OScDev_TriggerSource_External }
 
enum  { OScDev_ClockSource_Internal , OScDev_ClockSource_External }
 
enum  {
  OScDev_ValueType_String , OScDev_ValueType_Bool , OScDev_ValueType_Int32 , OScDev_ValueType_Float64 ,
  OScDev_ValueType_Enum
}
 
enum  { OScDev_ValueConstraint_None , OScDev_ValueConstraint_DiscreteValues , OScDev_ValueConstraint_Range }
 

Functions

bool OScDev_Acquisition_CallFrameCallback (OScDev_Acquisition *acq, uint32_t channel, void *pixels)
 Send acquired data for one channel of a frame.
 
OScDev_Error OScDev_Acquisition_GetClockSource (OScDev_Acquisition *acq, OScDev_ClockSource *clock)
 Determine the scanner and detector clock source for the given acquisition.
 
OScDev_Error OScDev_Acquisition_GetClockStartTriggerSource (OScDev_Acquisition *acq, OScDev_TriggerSource *startTrigger)
 Determine the start trigger source for the clock for the given acquisition.
 
uint32_t OScDev_Acquisition_GetNumberOfFrames (OScDev_Acquisition *acq)
 Determine the requested number of frames for the given acquisition.
 
double OScDev_Acquisition_GetPixelRate (OScDev_Acquisition *acq)
 
uint32_t OScDev_Acquisition_GetResolution (OScDev_Acquisition *acq)
 
void OScDev_Acquisition_GetROI (OScDev_Acquisition *acq, uint32_t *xOffset, uint32_t *yOffset, uint32_t *width, uint32_t *height)
 
double OScDev_Acquisition_GetZoomFactor (OScDev_Acquisition *acq)
 
OScDev_Error OScDev_Acquisition_IsClockRequested (OScDev_Acquisition *acq, bool *isRequested)
 
OScDev_Error OScDev_Acquisition_IsDetectorRequested (OScDev_Acquisition *acq, bool *isRequested)
 
OScDev_Error OScDev_Acquisition_IsScannerRequested (OScDev_Acquisition *acq, bool *isRequested)
 
OScDev_Error OScDev_Device_Create (OScDev_Device **device, OScDev_DeviceImpl *impl, void *data)
 
void * OScDev_Device_GetImplData (OScDev_Device *device)
 
OScDev_RichError * OScDev_Error_AsRichError (OScDev_Error code)
 
OScDev_RichError * OScDev_Error_Create (const char *message)
 
OScDev_RichError * OScDev_Error_CreateWithCode (const char *domainName, int32_t code, const char *message)
 
void OScDev_Error_Destroy (OScDev_RichError *error)
 
void OScDev_Error_Format (OScDev_RichError *error, char *buffer, size_t bufsize)
 
void OScDev_Error_FormatRecursive (OScDev_RichError *error, char *buffer, size_t bufsize)
 
OScDev_RichError * OScDev_Error_GetCause (OScDev_RichError *error)
 
int32_t OScDev_Error_GetCode (OScDev_RichError *error)
 
const char * OScDev_Error_GetDomain (OScDev_RichError *error)
 
const char * OScDev_Error_GetMessage (OScDev_RichError *error)
 
OScDev_RichError * OScDev_Error_RegisterCodeDomain (const char *domainName, OScDev_ErrorCodeFormat codeFormat)
 
OScDev_Error OScDev_Error_ReturnAsCode (OScDev_RichError *error)
 
OScDev_RichError * OScDev_Error_Wrap (OScDev_RichError *cause, const char *message)
 
OScDev_RichError * OScDev_Error_WrapWithCode (OScDev_RichError *cause, const char *domainName, int32_t code, const char *message)
 
void OScDev_Log (OScDev_Device *device, OScDev_LogLevel level, const char *message)
 Log a message.
 
void OScDev_Log_Debug (OScDev_Device *device, const char *message)
 Log a debug-level message.
 
void OScDev_Log_Error (OScDev_Device *device, const char *message)
 Log an error-level message.
 
void OScDev_Log_Info (OScDev_Device *device, const char *message)
 Log an info-level message.
 
void OScDev_Log_Warning (OScDev_Device *device, const char *message)
 Log a warning-level message.
 
void OScDev_NumArray_Append (OScDev_NumArray *arr, double val)
 Append a value to an array.
 
double OScDev_NumArray_At (const OScDev_NumArray *arr, size_t index)
 
OScDev_NumArrayOScDev_NumArray_Create (void)
 Create an array of numbers.
 
OScDev_NumArrayOScDev_NumArray_CreateFromNaNTerminated (const double *nanTerminatedArray)
 
void OScDev_NumArray_Destroy (const OScDev_NumArray *arr)
 Destroy (free) an array of numbers.
 
bool OScDev_NumArray_Empty (const OScDev_NumArray *arr)
 
size_t OScDev_NumArray_Size (const OScDev_NumArray *arr)
 
void OScDev_NumRange_AppendDiscrete (OScDev_NumRange *range, double value)
 
OScDev_NumRangeOScDev_NumRange_CreateContinuous (double rMin, double rMax)
 
OScDev_NumRangeOScDev_NumRange_CreateDiscrete (void)
 
OScDev_NumRangeOScDev_NumRange_CreateDiscreteFromNaNTerminated (const double *nanTerminatedArray)
 
void OScDev_NumRange_Destroy (const OScDev_NumRange *range)
 
void OScDev_PtrArray_Append (OScDev_PtrArray *arr, void *obj)
 Append an object to an array.
 
void * OScDev_PtrArray_At (const OScDev_PtrArray *arr, size_t index)
 
OScDev_PtrArrayOScDev_PtrArray_Create (void)
 Create an array of objects.
 
OScDev_PtrArrayOScDev_PtrArray_CreateFromNullTerminated (void *const *nullTerminatedArray)
 
void OScDev_PtrArray_Destroy (const OScDev_PtrArray *arr)
 Destroy (free) an array of objects.
 
bool OScDev_PtrArray_Empty (const OScDev_PtrArray *arr)
 
size_t OScDev_PtrArray_Size (const OScDev_PtrArray *arr)
 
OScDev_Error OScDev_Setting_Create (OScDev_Setting **setting, const char *name, OScDev_ValueType valueType, OScDev_SettingImpl *impl, void *data)
 
void OScDev_Setting_Destroy (OScDev_Setting *setting)
 
void * OScDev_Setting_GetImplData (OScDev_Setting *setting)
 

Detailed Description

OpenScanDeviceLib is a static library to which every OpenScan device module must link, and contains the mechanism that allows devices to call functions in OpenScanLib, as well as the mechanism by which OpenScanLib accesses the device module.

To create a new device module, use the macro OScDev_MODULE_IMPL to provide all required data and implementation functions.

Macro Definition Documentation

◆ OScDev_MAX_STR_SIZE

#define OScDev_MAX_STR_SIZE   512

Buffer size for fixed-length strings.

Definition at line 105 of file OpenScanDeviceLib.h.

◆ OScDev_MAX_STR_LEN

#define OScDev_MAX_STR_LEN   (OScDev_MAX_STR_SIZE - 1)

Maximum length for strings copied to provided buffer.

Definition at line 108 of file OpenScanDeviceLib.h.

◆ OScDev_RichError_OK

#define OScDev_RichError_OK   ((OScDev_RichError *)NULL)

Definition at line 116 of file OpenScanDeviceLib.h.

◆ OScDev_CHECK

#define OScDev_CHECK (   err,
  call 
)    ((err = (call)) != OScDev_OK)

Convenience macro for checking error return values.

For example,

OScDev_Error err;
if (OScDev_CHECK(err, OScDev_Device_Create(...)))
{
    // clean up
    return err;
}

Definition at line 188 of file OpenScanDeviceLib.h.

◆ OScDev_MODULE_IMPL

#define OScDev_MODULE_IMPL   OScDev_ModuleImpl OScDevInternal_TheModuleImpl

Define the device module implementation.

Each device module must use this macro exactly once, in an implementation file (i.e. not in a header), to define the module implementation.

For example,

OScDev_MODULE_IMPL =
{
    .displayName = "MyDevice",
    .Open = MyDeviceOpen,
    .Close = MyDeviceClose,
    // ...
};

Within the braces, all required fields (and any desired optional fields) of OScDev_ModuleImpl must be initialized.

See also
OScDev_ModuleImpl

Definition at line 301 of file OpenScanDeviceLib.h.

Typedef Documentation

◆ OScDev_ModuleImpl

Definition at line 100 of file OpenScanDeviceLib.h.

◆ OScDev_DeviceImpl

Definition at line 101 of file OpenScanDeviceLib.h.

◆ OScDev_SettingImpl

Definition at line 102 of file OpenScanDeviceLib.h.

◆ OScDev_Device

typedef struct OScInternal_Device OScDev_Device

Definition at line 112 of file OpenScanDeviceLib.h.

◆ OScDev_Setting

typedef struct OScInternal_Setting OScDev_Setting

Definition at line 113 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition

typedef struct OScInternal_AcquisitionForDevice OScDev_Acquisition

Definition at line 114 of file OpenScanDeviceLib.h.

◆ OScDev_RichError

typedef struct RERR_Error OScDev_RichError

Definition at line 115 of file OpenScanDeviceLib.h.

◆ OScDev_LogLevel

typedef int32_t OScDev_LogLevel

Log level.

Definition at line 119 of file OpenScanDeviceLib.h.

◆ OScDev_ErrorCodeFormat

typedef int32_t OScDev_ErrorCodeFormat

Definition at line 129 of file OpenScanDeviceLib.h.

◆ OScDev_Error

typedef int32_t OScDev_Error

Error return value.

Zero (OScDev_OK) indicates success.

This will be replaced with an opaque type in the future.

Definition at line 149 of file OpenScanDeviceLib.h.

◆ OScDev_TriggerSource

typedef int32_t OScDev_TriggerSource

Definition at line 194 of file OpenScanDeviceLib.h.

◆ OScDev_ClockSource

typedef int32_t OScDev_ClockSource

Definition at line 200 of file OpenScanDeviceLib.h.

◆ OScDev_ValueType

typedef int32_t OScDev_ValueType

Definition at line 206 of file OpenScanDeviceLib.h.

◆ OScDev_ValueConstraint

typedef int32_t OScDev_ValueConstraint

Definition at line 215 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray

typedef struct OScInternal_PtrArray OScDev_PtrArray

Dynamic or static array of pointers.

This data type is used to pass lists of objects from device modules to OpenScanLib.

Whether the pointers contained in the array are "owned" (in the resource-management sense) by the array depends on the usage context; make sure to check the documentation of the function accepting or returning the array.

An array can be created dynamically by calling OScDev_PtrArray_Create().

(Because this type is intended solely for passing short lists, the only available operation is appending elements.)

Definition at line 237 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray

typedef struct OScInternal_NumArray OScDev_NumArray

Dynamic or static array of numbers.

This data type is used to pass lists of numbers from device modules to OpenScanLib.

Although it holds double values, we use it for integer lists, too, for simplicity.

An array can be created dynamically by calling OScDev_NumArray_Create().

(Because this type is intended solely for passing short lists, the only available operation is appending elements.)

Definition at line 252 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange

typedef struct OScInternal_NumRange OScDev_NumRange

Continuous or discrete numerical range.

This data type is used to mass numerical ranges from device modules to OpenScanLib.

A range can be created dynamically by calling OScDev_NumRange_CreateContinuous() or OScDev_NumRange_CreateDiscrete().

Definition at line 262 of file OpenScanDeviceLib.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Constants for OScDev_LogLevel.

Definition at line 122 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum
Enumerator
OScDev_ErrorCodeFormat_I32 

32-bit signed integer, decimal

OScDev_ErrorCodeFormat_U32 

32-bit unsigned integer, decimal

OScDev_ErrorCodeFormat_Hex32 

32-bit unsigned integer, hexadecimal

OScDev_ErrorCodeFormat_I16 

16-bit signed integer, decimal

OScDev_ErrorCodeFormat_U16 

16-bit unsigned integer, decimal

OScDev_ErrorCodeFormat_Hex16 

16-bit unsigned integer, hexadecimal

OScDev_ErrorCodeFormat_HexNoPad 

Modifier to remove leading zeros from hex formats.

Definition at line 130 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum

Definition at line 150 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum

Definition at line 195 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum

Definition at line 201 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum

Definition at line 207 of file OpenScanDeviceLib.h.

◆ anonymous enum

anonymous enum

Definition at line 216 of file OpenScanDeviceLib.h.

Function Documentation

◆ OScDev_Log()

void OScDev_Log ( OScDev_Device *  device,
OScDev_LogLevel  level,
const char *  message 
)

Log a message.

Definition at line 955 of file OpenScanDeviceLib.h.

◆ OScDev_Log_Debug()

void OScDev_Log_Debug ( OScDev_Device *  device,
const char *  message 
)

Log a debug-level message.

Definition at line 962 of file OpenScanDeviceLib.h.

◆ OScDev_Log_Info()

void OScDev_Log_Info ( OScDev_Device *  device,
const char *  message 
)

Log an info-level message.

Definition at line 967 of file OpenScanDeviceLib.h.

◆ OScDev_Log_Warning()

void OScDev_Log_Warning ( OScDev_Device *  device,
const char *  message 
)

Log a warning-level message.

Definition at line 972 of file OpenScanDeviceLib.h.

◆ OScDev_Log_Error()

void OScDev_Log_Error ( OScDev_Device *  device,
const char *  message 
)

Log an error-level message.

Definition at line 978 of file OpenScanDeviceLib.h.

◆ OScDev_Error_RegisterCodeDomain()

OScDev_RichError * OScDev_Error_RegisterCodeDomain ( const char *  domainName,
OScDev_ErrorCodeFormat  codeFormat 
)

Definition at line 983 of file OpenScanDeviceLib.h.

◆ OScDev_Error_ReturnAsCode()

OScDev_Error OScDev_Error_ReturnAsCode ( OScDev_RichError *  error)

Definition at line 989 of file OpenScanDeviceLib.h.

◆ OScDev_Error_Create()

OScDev_RichError * OScDev_Error_Create ( const char *  message)

Definition at line 994 of file OpenScanDeviceLib.h.

◆ OScDev_Error_CreateWithCode()

OScDev_RichError * OScDev_Error_CreateWithCode ( const char *  domainName,
int32_t  code,
const char *  message 
)

Definition at line 1000 of file OpenScanDeviceLib.h.

◆ OScDev_Error_Wrap()

OScDev_RichError * OScDev_Error_Wrap ( OScDev_RichError *  cause,
const char *  message 
)

Definition at line 1006 of file OpenScanDeviceLib.h.

◆ OScDev_Error_WrapWithCode()

OScDev_RichError * OScDev_Error_WrapWithCode ( OScDev_RichError *  cause,
const char *  domainName,
int32_t  code,
const char *  message 
)

Definition at line 1012 of file OpenScanDeviceLib.h.

◆ OScDev_Error_GetMessage()

const char * OScDev_Error_GetMessage ( OScDev_RichError *  error)

Definition at line 1020 of file OpenScanDeviceLib.h.

◆ OScDev_Error_GetDomain()

const char * OScDev_Error_GetDomain ( OScDev_RichError *  error)

Definition at line 1025 of file OpenScanDeviceLib.h.

◆ OScDev_Error_GetCode()

int32_t OScDev_Error_GetCode ( OScDev_RichError *  error)

Definition at line 1030 of file OpenScanDeviceLib.h.

◆ OScDev_Error_GetCause()

OScDev_RichError * OScDev_Error_GetCause ( OScDev_RichError *  error)

Definition at line 1035 of file OpenScanDeviceLib.h.

◆ OScDev_Error_Format()

void OScDev_Error_Format ( OScDev_RichError *  error,
char *  buffer,
size_t  bufsize 
)

Definition at line 1040 of file OpenScanDeviceLib.h.

◆ OScDev_Error_FormatRecursive()

void OScDev_Error_FormatRecursive ( OScDev_RichError *  error,
char *  buffer,
size_t  bufsize 
)

Definition at line 1046 of file OpenScanDeviceLib.h.

◆ OScDev_Error_AsRichError()

OScDev_RichError * OScDev_Error_AsRichError ( OScDev_Error  code)

Definition at line 1052 of file OpenScanDeviceLib.h.

◆ OScDev_Error_Destroy()

void OScDev_Error_Destroy ( OScDev_RichError *  error)

Definition at line 1057 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_Create()

OScDev_PtrArray * OScDev_PtrArray_Create ( void  )

Create an array of objects.

Definition at line 1063 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_CreateFromNullTerminated()

OScDev_PtrArray * OScDev_PtrArray_CreateFromNullTerminated ( void *const *  nullTerminatedArray)

Definition at line 1069 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_Destroy()

void OScDev_PtrArray_Destroy ( const OScDev_PtrArray arr)

Destroy (free) an array of objects.

Definition at line 1075 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_Append()

void OScDev_PtrArray_Append ( OScDev_PtrArray arr,
void *  obj 
)

Append an object to an array.

Definition at line 1081 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_Size()

size_t OScDev_PtrArray_Size ( const OScDev_PtrArray arr)

Definition at line 1086 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_Empty()

bool OScDev_PtrArray_Empty ( const OScDev_PtrArray arr)

Definition at line 1091 of file OpenScanDeviceLib.h.

◆ OScDev_PtrArray_At()

void * OScDev_PtrArray_At ( const OScDev_PtrArray arr,
size_t  index 
)

Definition at line 1096 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_Create()

OScDev_NumArray * OScDev_NumArray_Create ( void  )

Create an array of numbers.

Definition at line 1102 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_CreateFromNaNTerminated()

OScDev_NumArray * OScDev_NumArray_CreateFromNaNTerminated ( const double *  nanTerminatedArray)

Definition at line 1108 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_Destroy()

void OScDev_NumArray_Destroy ( const OScDev_NumArray arr)

Destroy (free) an array of numbers.

Definition at line 1114 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_Append()

void OScDev_NumArray_Append ( OScDev_NumArray arr,
double  val 
)

Append a value to an array.

Definition at line 1120 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_Size()

size_t OScDev_NumArray_Size ( const OScDev_NumArray arr)

Definition at line 1125 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_Empty()

bool OScDev_NumArray_Empty ( const OScDev_NumArray arr)

Definition at line 1130 of file OpenScanDeviceLib.h.

◆ OScDev_NumArray_At()

double OScDev_NumArray_At ( const OScDev_NumArray arr,
size_t  index 
)

Definition at line 1135 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange_CreateContinuous()

OScDev_NumRange * OScDev_NumRange_CreateContinuous ( double  rMin,
double  rMax 
)

Definition at line 1141 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange_CreateDiscrete()

OScDev_NumRange * OScDev_NumRange_CreateDiscrete ( void  )

Definition at line 1147 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange_CreateDiscreteFromNaNTerminated()

OScDev_NumRange * OScDev_NumRange_CreateDiscreteFromNaNTerminated ( const double *  nanTerminatedArray)

Definition at line 1152 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange_Destroy()

void OScDev_NumRange_Destroy ( const OScDev_NumRange range)

Definition at line 1159 of file OpenScanDeviceLib.h.

◆ OScDev_NumRange_AppendDiscrete()

void OScDev_NumRange_AppendDiscrete ( OScDev_NumRange range,
double  value 
)

Definition at line 1164 of file OpenScanDeviceLib.h.

◆ OScDev_Device_Create()

OScDev_Error OScDev_Device_Create ( OScDev_Device **  device,
OScDev_DeviceImpl impl,
void *  data 
)

Definition at line 1170 of file OpenScanDeviceLib.h.

◆ OScDev_Device_GetImplData()

void * OScDev_Device_GetImplData ( OScDev_Device *  device)

Definition at line 1177 of file OpenScanDeviceLib.h.

◆ OScDev_Setting_Create()

OScDev_Error OScDev_Setting_Create ( OScDev_Setting **  setting,
const char *  name,
OScDev_ValueType  valueType,
OScDev_SettingImpl impl,
void *  data 
)

Definition at line 1182 of file OpenScanDeviceLib.h.

◆ OScDev_Setting_Destroy()

void OScDev_Setting_Destroy ( OScDev_Setting *  setting)

Definition at line 1191 of file OpenScanDeviceLib.h.

◆ OScDev_Setting_GetImplData()

void * OScDev_Setting_GetImplData ( OScDev_Setting *  setting)

Definition at line 1196 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_IsClockRequested()

OScDev_Error OScDev_Acquisition_IsClockRequested ( OScDev_Acquisition *  acq,
bool *  isRequested 
)

Determine whether this device should provide the clock for the given acquisition.

Definition at line 1203 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_IsScannerRequested()

OScDev_Error OScDev_Acquisition_IsScannerRequested ( OScDev_Acquisition *  acq,
bool *  isRequested 
)

Determine whether this device should perform scanning for the given acquisition.

Definition at line 1211 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_IsDetectorRequested()

OScDev_Error OScDev_Acquisition_IsDetectorRequested ( OScDev_Acquisition *  acq,
bool *  isRequested 
)

Determine whether this device should perform detection for the given acquisition.

Definition at line 1219 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetClockStartTriggerSource()

OScDev_Error OScDev_Acquisition_GetClockStartTriggerSource ( OScDev_Acquisition *  acq,
OScDev_TriggerSource *  startTrigger 
)

Determine the start trigger source for the clock for the given acquisition.

This function is only useful when the clock is requested for the acquisition (see OScDev_Acquisition_IsClockRequested()).

Parameters
[in]acqthe acquisition
[out]startTriggerthe clock start trigger; either software or external

Definition at line 1234 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetClockSource()

OScDev_Error OScDev_Acquisition_GetClockSource ( OScDev_Acquisition *  acq,
OScDev_ClockSource *  clock 
)

Determine the scanner and detector clock source for the given acquisition.

This function is only useful when the scanner and/or detector is requested for the acquisition (see OScDev_Acquisition_IsScannerRequested() and OScDev_Acquisition_IsDetectorRequested()).

Todo:
This is redundant with OScDev_Acquisition_IsClockRequested(). Remove.

Definition at line 1249 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetNumberOfFrames()

uint32_t OScDev_Acquisition_GetNumberOfFrames ( OScDev_Acquisition *  acq)

Determine the requested number of frames for the given acquisition.

Definition at line 1257 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetPixelRate()

double OScDev_Acquisition_GetPixelRate ( OScDev_Acquisition *  acq)

Definition at line 1262 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetResolution()

uint32_t OScDev_Acquisition_GetResolution ( OScDev_Acquisition *  acq)

Definition at line 1267 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetZoomFactor()

double OScDev_Acquisition_GetZoomFactor ( OScDev_Acquisition *  acq)

Definition at line 1272 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_GetROI()

void OScDev_Acquisition_GetROI ( OScDev_Acquisition *  acq,
uint32_t *  xOffset,
uint32_t *  yOffset,
uint32_t *  width,
uint32_t *  height 
)

Definition at line 1277 of file OpenScanDeviceLib.h.

◆ OScDev_Acquisition_CallFrameCallback()

bool OScDev_Acquisition_CallFrameCallback ( OScDev_Acquisition *  acq,
uint32_t  channel,
void *  pixels 
)

Send acquired data for one channel of a frame.

This function must be called during an acquisition by the device that owns the detector for the acquisition.

The data pointed to by pixels must not change during the call to this function.

Parameters
[in]acqthe acquisition that was given when arming this device
[in]channelthe channel index
[in]pixelsthe raw pixel data for the channel

Definition at line 1296 of file OpenScanDeviceLib.h.