static void arv_gc_enumeration_set_integer_value (ArvGcInteger *gc_integer, gint64 value, GError **error) { ArvGcEnumeration *gc_enumeration = ARV_GC_ENUMERATION (gc_integer); return arv_gc_enumeration_set_int_value (gc_enumeration, value, error); }
void arv_gc_enumeration_set_string_value (ArvGcEnumeration *enumeration, const char *value, GError **error) { const GSList *iter; g_return_if_fail (ARV_IS_GC_ENUMERATION (enumeration)); g_return_if_fail (error == NULL || *error == NULL); for (iter = enumeration->entries; iter != NULL; iter = iter->next) if (g_strcmp0 (arv_gc_feature_node_get_name (iter->data), value) == 0) { GError *local_error = NULL; gint64 enum_value; arv_log_genicam ("[GcEnumeration::set_string_value] value = %d - string = %s", &enumeration->value, value); enum_value = arv_gc_enum_entry_get_value (iter->data, &local_error); if (local_error != NULL) { g_propagate_error (error, local_error); return; } arv_gc_enumeration_set_int_value (enumeration, enum_value, &local_error); if (local_error != NULL) g_propagate_error (error, local_error); return; } arv_warning_genicam ("[GcEnumeration::set_string_value] entry %s not found", value); }
void arv_gc_enumeration_set_string_value (ArvGcEnumeration *enumeration, const char *value) { const GSList *iter; g_return_if_fail (ARV_IS_GC_ENUMERATION (enumeration)); for (iter = enumeration->entries; iter != NULL; iter = iter->next) if (g_strcmp0 (arv_gc_feature_node_get_name (iter->data), value) == 0) { arv_log_genicam ("[GcEnumeration::set_string_value] value = %d - string = %s", &enumeration->value, value); arv_gc_enumeration_set_int_value (enumeration, arv_gc_enum_entry_get_value (iter->data)); return; } arv_warning_genicam ("[GcEnumeration::set_string_value] entry %s not found", value); }
void arv_camera_set_frame_rate (ArvCamera *camera, double frame_rate) { ArvGcNode *feature; double minimum; double maximum; g_return_if_fail (ARV_IS_CAMERA (camera)); if (frame_rate <= 0.0) return; arv_camera_get_frame_rate_bounds(camera, &minimum, &maximum); if (frame_rate < minimum) frame_rate = minimum; if (frame_rate > maximum) frame_rate = maximum; switch (camera->priv->vendor) { case ARV_CAMERA_VENDOR_BASLER: arv_device_set_string_feature_value (camera->priv->device, "TriggerSelector", "AcquisitionStart"); arv_device_set_string_feature_value (camera->priv->device, "TriggerMode", "Off"); arv_device_set_string_feature_value (camera->priv->device, "TriggerSelector", "FrameStart"); arv_device_set_string_feature_value (camera->priv->device, "TriggerMode", "Off"); arv_device_set_integer_feature_value (camera->priv->device, "AcquisitionFrameRateEnable", 1); arv_device_set_float_feature_value (camera->priv->device, "AcquisitionFrameRateAbs", frame_rate); break; case ARV_CAMERA_VENDOR_PROSILICA: arv_device_set_string_feature_value (camera->priv->device, "TriggerSelector", "FrameStart"); arv_device_set_string_feature_value (camera->priv->device, "TriggerMode", "Off"); arv_device_set_float_feature_value (camera->priv->device, "AcquisitionFrameRateAbs", frame_rate); break; case ARV_CAMERA_VENDOR_TIS: arv_device_set_string_feature_value (camera->priv->device, "TriggerSelector", "FrameStart"); arv_device_set_string_feature_value (camera->priv->device, "TriggerMode", "Off"); feature = arv_device_get_feature (camera->priv->device, "FPS"); if (ARV_IS_GC_FEATURE_NODE (feature) && g_strcmp0 (arv_dom_node_get_node_name (ARV_DOM_NODE (feature)), "Enumeration") == 0) { gint64 *values; guint n_values; guint i; values = arv_gc_enumeration_get_available_int_values (ARV_GC_ENUMERATION (feature), &n_values, NULL); for (i = 0; i < n_values; i++) { if (values[i] > 0) { double e; e = (int)((10000000/(double) values[i]) * 100 + 0.5) / 100.0; if (e == frame_rate) { arv_gc_enumeration_set_int_value (ARV_GC_ENUMERATION (feature), values[i], NULL); break; } } } g_free (values); } else arv_device_set_float_feature_value (camera->priv->device, "FPS", frame_rate); break; case ARV_CAMERA_VENDOR_DALSA: case ARV_CAMERA_VENDOR_UNKNOWN: arv_device_set_string_feature_value (camera->priv->device, "TriggerSelector", "FrameStart"); arv_device_set_string_feature_value (camera->priv->device, "TriggerMode", "Off"); arv_device_set_float_feature_value (camera->priv->device, camera->priv->use_acquisition_frame_rate_abs ? "AcquisitionFrameRateAbs": "AcquisitionFrameRate", frame_rate); break; } }