summaryrefslogtreecommitdiffstats
path: root/plugins/ufo/uca-ufo-camera.c
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2013-07-24 14:16:16 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2013-07-24 14:18:16 +0200
commitff4b7393b0fa829e5829a14aa5fbcf098693d417 (patch)
tree47e6f87039079efdc6a3d9f70644eab6a72e8962 /plugins/ufo/uca-ufo-camera.c
parent5cabc555524e17b86cd94cd4653921387f19be57 (diff)
downloaduca-ff4b7393b0fa829e5829a14aa5fbcf098693d417.tar.gz
uca-ff4b7393b0fa829e5829a14aa5fbcf098693d417.tar.bz2
uca-ff4b7393b0fa829e5829a14aa5fbcf098693d417.tar.xz
uca-ff4b7393b0fa829e5829a14aa5fbcf098693d417.zip
ufo: Read all rows
Diffstat (limited to 'plugins/ufo/uca-ufo-camera.c')
-rw-r--r--plugins/ufo/uca-ufo-camera.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/plugins/ufo/uca-ufo-camera.c b/plugins/ufo/uca-ufo-camera.c
index 16530cb..ffae985 100644
--- a/plugins/ufo/uca-ufo-camera.c
+++ b/plugins/ufo/uca-ufo-camera.c
@@ -52,7 +52,6 @@ G_DEFINE_TYPE_WITH_CODE (UcaUfoCamera, uca_ufo_camera, UCA_TYPE_CAMERA,
uca_ufo_camera_initable_iface_init))
static const guint SENSOR_WIDTH = 2048;
-static const guint SENSOR_HEIGHT = 1088;
static const gdouble EXPOSURE_TIME_SCALE = 2.69e6;
/**
@@ -110,6 +109,7 @@ struct _UcaUfoCameraPrivate {
pcilib_t *handle;
pcilib_timeout_t timeout;
guint n_bits;
+ guint height;
enum {
FPGA_48MHZ = 0,
FPGA_40MHZ
@@ -226,6 +226,7 @@ setup_pcilib (UcaUfoCameraPrivate *priv)
priv->property_table = g_hash_table_new_full (g_direct_hash, g_direct_equal,
NULL, g_free);
N_PROPERTIES = update_properties (priv);
+ priv->height = read_register_value (priv->handle, "cmosis_number_lines") + 1;
priv->frequency = read_register_value (priv->handle, "bit_mode");
adc_resolution = read_register_value (priv->handle, "adc_resolution");
@@ -355,7 +356,7 @@ uca_ufo_camera_grab(UcaCamera *camera, gpointer data, GError **error)
pcilib_event_info_t event_info;
int err;
- const gsize size = SENSOR_WIDTH * SENSOR_HEIGHT * sizeof(guint16);
+ const gsize size = SENSOR_WIDTH * priv->height * sizeof(guint16);
err = pcilib_get_next_event (priv->handle, priv->timeout, &event_id, sizeof(pcilib_event_info_t), &event_info);
PCILIB_SET_ERROR_RETURN_FALSE (err, UCA_UFO_CAMERA_ERROR_NEXT_EVENT);
@@ -449,10 +450,10 @@ uca_ufo_camera_get_property(GObject *object, guint property_id, GValue *value, G
switch (property_id) {
case PROP_SENSOR_WIDTH:
- g_value_set_uint(value, SENSOR_WIDTH);
+ g_value_set_uint (value, SENSOR_WIDTH);
break;
case PROP_SENSOR_HEIGHT:
- g_value_set_uint(value, SENSOR_HEIGHT);
+ g_value_set_uint (value, priv->height);
break;
case PROP_SENSOR_BITDEPTH:
g_value_set_uint (value, priv->n_bits);
@@ -506,25 +507,25 @@ uca_ufo_camera_get_property(GObject *object, guint property_id, GValue *value, G
}
break;
case PROP_HAS_STREAMING:
- g_value_set_boolean(value, TRUE);
+ g_value_set_boolean (value, TRUE);
break;
case PROP_HAS_CAMRAM_RECORDING:
- g_value_set_boolean(value, FALSE);
+ g_value_set_boolean (value, FALSE);
break;
case PROP_ROI_X:
- g_value_set_uint(value, 0);
+ g_value_set_uint (value, 0);
break;
case PROP_ROI_Y:
- g_value_set_uint(value, 0);
+ g_value_set_uint (value, 0);
break;
case PROP_ROI_WIDTH:
- g_value_set_uint(value, SENSOR_WIDTH);
+ g_value_set_uint (value, SENSOR_WIDTH);
break;
case PROP_ROI_HEIGHT:
- g_value_set_uint(value, SENSOR_HEIGHT);
+ g_value_set_uint (value, priv->height);
break;
case PROP_NAME:
- g_value_set_string(value, "Ufo Camera w/ CMOSIS CMV2000");
+ g_value_set_string (value, "Ufo Camera w/ CMOSIS CMV2000");
break;
default:
{