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_enumeration_feature_available_values
                                                        (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 :

(closure) user data for callback Return value: (transfer full): a new ArvStream.

arv_device_read_memory ()

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

arv_device_write_memory ()

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

arv_device_read_register ()

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

arv_device_write_register ()

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

arv_device_get_genicam_xml ()

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

arv_device_get_genicam ()

ArvGc *             arv_device_get_genicam              (ArvDevice *device);

Retrieves the genicam interface of the given device.

device :

a device object Return value: (transfer none): the genicam interface.

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]

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

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

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

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.