"BinningHorizontal" & "BinningVertical" node not found

Hello,

I work on Ubuntu 12.04 with Aravis-0.4, my camera is a TIS DMM25GP031-ML.
I have retrieved the xml of the camera with the function arv_device_get_genicam_xml().
I can see that the node corresponding to the binning is called BinningFactor.
But, the function arv_camera_get_binning look for a BinningHorizontal node and a BinningVertical node. So, the node is not found so neither get or set works.
Have you ever encountered this problem ?
Do you have any tips to help me?

Thanks in advance

Romain

Hi,

BinningHorizontal and BinningVertical are the feature names found in the Standard Feature Naming Convention: https://www.emva.org/wp-content/uploads/GenICam_SFNC_v2_6.pdf

While BinningFactor is specific to your camera.

ArvCamera API mostly sticks to what is in the SFNC, but when it is simple enough, it can be adapted to work with a wider range of cameras. Contribution welcome !

You can still change the binning on your device by accessing the feature directly, using one of the following functions:

ARV_API void		arv_camera_execute_command		(ArvCamera *camera, const char *feature, GError **error);

ARV_API void		arv_camera_set_boolean			(ArvCamera *camera, const char *feature, gboolean value, GError **error);
ARV_API gboolean	arv_camera_get_boolean			(ArvCamera *camera, const char *feature, GError **error);
ARV_API void		arv_camera_get_boolean_gi		(ArvCamera *camera, const char *feature, gboolean *value, GError **error);

ARV_API void		arv_camera_set_string			(ArvCamera *camera, const char *feature, const char *value, GError **error);
ARV_API const char *	arv_camera_get_string			(ArvCamera *camera, const char *feature, GError **error);

ARV_API void		arv_camera_set_integer			(ArvCamera *camera, const char *feature, gint64 value, GError **error);
ARV_API gint64		arv_camera_get_integer			(ArvCamera *camera, const char *feature, GError **error);
ARV_API void		arv_camera_get_integer_bounds		(ArvCamera *camera, const char *feature, gint64 *min, gint64 *max, GError **error);
ARV_API gint64		arv_camera_get_integer_increment	(ArvCamera *camera, const char *feature, GError **error);

ARV_API void		arv_camera_set_float			(ArvCamera *camera, const char *feature, double value, GError **error);
ARV_API double		arv_camera_get_float			(ArvCamera *camera, const char *feature, GError **error);
ARV_API void		arv_camera_get_float_bounds		(ArvCamera *camera, const char *feature, double *min, double *max, GError **error);
ARV_API double		arv_camera_get_float_increment		(ArvCamera *camera, const char *feature, GError **error);

ARV_API gint64 *	arv_camera_dup_available_enumerations			(ArvCamera *camera, const char *feature,
										 guint *n_values, GError **error);
ARV_API const char **	arv_camera_dup_available_enumerations_as_strings	(ArvCamera *camera, const char *feature,
										 guint *n_values, GError **error);
ARV_API const char **	arv_camera_dup_available_enumerations_as_display_names	(ArvCamera *camera, const char *feature,
										 guint *n_values, GError **error);
ARV_API gboolean        arv_camera_is_enumeration_entry_available               (ArvCamera *camera, const char *feature,
										 const char *entry, GError **error);

ARV_API gboolean	arv_camera_is_feature_available			(ArvCamera *camera, const char *feature, GError **error);

But binning will still be unavailable in arv-viewer, as it relies on arv_camera_set_binning() being properly implemented.

Cheers.

Hello, thank you for the quick answer.
I succeeded in using arv_device_set_integer_feature_value () and arv_device_get_integer_feature_value ()
Thank you for the clarification

Cheers.