ArvDevice

ArvDevice — Abstract base class for device handling

Synopsis

#define             ARV_DEVICE_ERROR
                    ArvDevice;
enum                ArvDeviceStatus;
GQuark              arv_device_error_quark              (void);
ArvStream *         arv_device_create_stream            (ArvDevice *device,
                                                         ArvStreamCallback callback,
                                                         void *user_data);
gboolean            arv_device_read_memory              (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 size,
                                                         void *buffer,
                                                         GError **error);
gboolean            arv_device_write_memory             (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 size,
                                                         void *buffer,
                                                         GError **error);
gboolean            arv_device_read_register            (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 *value,
                                                         GError **error);
gboolean            arv_device_write_register           (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 value,
                                                         GError **error);
const char *        arv_device_get_genicam_xml          (ArvDevice *device,
                                                         size_t *size);
ArvGc *             arv_device_get_genicam              (ArvDevice *device);
ArvGcNode *         arv_device_get_feature              (ArvDevice *device,
                                                         const char *feature);
void                arv_device_emit_control_lost_signal (ArvDevice *device);
ArvDeviceStatus     arv_device_get_status               (ArvDevice *device);
void                arv_device_execute_command          (ArvDevice *device,
                                                         const char *feature);
void                arv_device_set_string_feature_value (ArvDevice *device,
                                                         const char *feature,
                                                         const char *value);
const char *        arv_device_get_string_feature_value (ArvDevice *device,
                                                         const char *feature);
void                arv_device_set_integer_feature_value
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         gint64 value);
gint64              arv_device_get_integer_feature_value
                                                        (ArvDevice *device,
                                                         const char *feature);
void                arv_device_get_integer_feature_bounds
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         gint64 *min,
                                                         gint64 *max);
void                arv_device_set_float_feature_value  (ArvDevice *device,
                                                         const char *feature,
                                                         double value);
double              arv_device_get_float_feature_value  (ArvDevice *device,
                                                         const char *feature);
void                arv_device_get_float_feature_bounds (ArvDevice *device,
                                                         const char *feature,
                                                         double *min,
                                                         double *max);
gint64 *            arv_device_get_available_enumeration_feature_values
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         guint *n_values);
const char **       arv_device_get_available_enumeration_feature_values_as_strings
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         guint *n_values);

Object Hierarchy

  GObject
   +----ArvDevice
         +----ArvFakeDevice
         +----ArvGvDevice

Signals

  "control-lost"                                   : Run Last

Description

ArvDevice is an abstract base class for the control of cameras. It provides an easy access to the camera settings, and to its genicam interface for more advanced uses.

Details

ARV_DEVICE_ERROR

#define ARV_DEVICE_ERROR arv_device_error_quark()

ArvDevice

typedef struct _ArvDevice ArvDevice;

enum ArvDeviceStatus

typedef enum {
	ARV_DEVICE_STATUS_UNKNOWN = -1,
	ARV_DEVICE_STATUS_SUCCESS =  0,
	ARV_DEVICE_STATUS_TIMEOUT,
	ARV_DEVICE_STATUS_WRITE_ERROR
} ArvDeviceStatus;

ARV_DEVICE_STATUS_UNKNOWN

unknown status

ARV_DEVICE_STATUS_SUCCESS

no error has occured

ARV_DEVICE_STATUS_TIMEOUT

action failed on a timeout

ARV_DEVICE_STATUS_WRITE_ERROR

write on a read only node

arv_device_error_quark ()

GQuark              arv_device_error_quark              (void);

arv_device_create_stream ()

ArvStream *         arv_device_create_stream            (ArvDevice *device,
                                                         ArvStreamCallback callback,
                                                         void *user_data);

Creates a new ArvStream for video stream handling. See ArvStreamCallback for details regarding the callback function.

device :

a ArvDevice

callback :

a frame processing callback. [scope call]

user_data :

user data for callback. [allow-none][closure]

Returns :

a new ArvStream. [transfer full]

Since 0.2.0


arv_device_read_memory ()

gboolean            arv_device_read_memory              (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 size,
                                                         void *buffer,
                                                         GError **error);

Reads size bytes from the device memory.

device :

a ArvDevice

address :

memory address

size :

number of bytes to read

buffer :

a buffer for the storage of the read data

error :

a GError placeholder. [out][allow-none]

Returns :

TRUE on success. [skip]

Since 0.2.0


arv_device_write_memory ()

gboolean            arv_device_write_memory             (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 size,
                                                         void *buffer,
                                                         GError **error);

Writes size bytes to the device memory.

device :

a ArvDevice

address :

memory address

size :

size of the returned buffer

buffer :

the buffer read from memory. [transfer full]

error :

a GError placeholder. [out][allow-none]

Returns :

TRUE on success. [skip]

Since 0.2.0


arv_device_read_register ()

gboolean            arv_device_read_register            (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 *value,
                                                         GError **error);

Reads the value of a device register.

device :

a ArvDevice

address :

register address

value :

a placeholder for the read value. [out]

error :

a GError placeholder. [out][allow-none]

Returns :

TRUE on success. [skip]

Since 0.2.0


arv_device_write_register ()

gboolean            arv_device_write_register           (ArvDevice *device,
                                                         guint32 address,
                                                         guint32 value,
                                                         GError **error);

Writes value to a device register.

device :

a ArvDevice

address :

the register address

value :

value to write

error :

a GError placeholder. [out][allow-none]

Returns :

TRUE on success. [skip]

Since 0.2.0


arv_device_get_genicam_xml ()

const char *        arv_device_get_genicam_xml          (ArvDevice *device,
                                                         size_t *size);

Gets the Genicam XML data stored in the device memory.

device :

a ArvDevice

size :

placeholder for the returned data size (bytes) // BUG: (skip) seems ignored. [out][allow-none]

Returns :

a pointer to the Genicam XML data, owned by the device. [transfer none]

Since 0.2.0


arv_device_get_genicam ()

ArvGc *             arv_device_get_genicam              (ArvDevice *device);

Retrieves the genicam interface of the given device.

device :

a ArvDevice

Returns :

the genicam interface. [transfer none]

Since 0.2.0


arv_device_get_feature ()

ArvGcNode *         arv_device_get_feature              (ArvDevice *device,
                                                         const char *feature);

device :

a ArvDevice

feature :

feature name

Returns :

the genicam node corresponding to the feature name, NULL if not found. [transfer none]

Since 0.2.0


arv_device_emit_control_lost_signal ()

void                arv_device_emit_control_lost_signal (ArvDevice *device);

arv_device_get_status ()

ArvDeviceStatus     arv_device_get_status               (ArvDevice *device);

arv_device_execute_command ()

void                arv_device_execute_command          (ArvDevice *device,
                                                         const char *feature);

Execute a genicam command. If an error occur, this function change the device status.

device :

a ArvDevice

feature :

feature name

Since 0.2.0


arv_device_set_string_feature_value ()

void                arv_device_set_string_feature_value (ArvDevice *device,
                                                         const char *feature,
                                                         const char *value);

arv_device_get_string_feature_value ()

const char *        arv_device_get_string_feature_value (ArvDevice *device,
                                                         const char *feature);

arv_device_set_integer_feature_value ()

void                arv_device_set_integer_feature_value
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         gint64 value);

arv_device_get_integer_feature_value ()

gint64              arv_device_get_integer_feature_value
                                                        (ArvDevice *device,
                                                         const char *feature);

arv_device_get_integer_feature_bounds ()

void                arv_device_get_integer_feature_bounds
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         gint64 *min,
                                                         gint64 *max);

arv_device_set_float_feature_value ()

void                arv_device_set_float_feature_value  (ArvDevice *device,
                                                         const char *feature,
                                                         double value);

arv_device_get_float_feature_value ()

double              arv_device_get_float_feature_value  (ArvDevice *device,
                                                         const char *feature);

arv_device_get_float_feature_bounds ()

void                arv_device_get_float_feature_bounds (ArvDevice *device,
                                                         const char *feature,
                                                         double *min,
                                                         double *max);

arv_device_get_available_enumeration_feature_values ()

gint64 *            arv_device_get_available_enumeration_feature_values
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         guint *n_values);

arv_device_get_available_enumeration_feature_values_as_strings ()

const char **       arv_device_get_available_enumeration_feature_values_as_strings
                                                        (ArvDevice *device,
                                                         const char *feature,
                                                         guint *n_values);

Get all the available values of feature, as strings.

device :

an ArvDevice

feature :

feature name

n_values :

placeholder for the number of returned values

Returns :

a newly created array of const strings, which must freed after use using g_free. [array length=n_values][transfer container]

Since 0.2.0

Signal Details

The "control-lost" signal

void                user_function                      (ArvDevice *device,
                                                        gpointer   user_data)      : Run Last

Signal that the control of the device is lost.

This signal may be emited from a thread different than the main one, so please take care to shared data access from the callback.

device :

a ArvDevice

user_data :

user data set when the signal handler was connected.

Since 0.2.0