summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2011-10-19 14:29:57 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2011-10-19 14:29:57 +0200
commit338c435be149cdc0a64e548d3ff3a86d12b1ac38 (patch)
tree1fac47f734c5746d545f730d5a05c73eb3c74669
parentf4447a4d02d21c4820d8e469b27f308326f77922 (diff)
downloaduca-338c435be149cdc0a64e548d3ff3a86d12b1ac38.tar.gz
uca-338c435be149cdc0a64e548d3ff3a86d12b1ac38.tar.bz2
uca-338c435be149cdc0a64e548d3ff3a86d12b1ac38.tar.xz
uca-338c435be149cdc0a64e548d3ff3a86d12b1ac38.zip
Fix: timestamp mode
-rw-r--r--src/cameras/pco.c20
-rw-r--r--test/control.c3
-rw-r--r--test/grab.c3
3 files changed, 21 insertions, 5 deletions
diff --git a/src/cameras/pco.c b/src/cameras/pco.c
index fd277af..955ee6d 100644
--- a/src/cameras/pco.c
+++ b/src/cameras/pco.c
@@ -90,7 +90,21 @@ static uint32_t uca_pco_set_property(struct uca_camera_priv *cam, enum uca_prope
return uca_pco_set_delay(cam, (uint32_t *) data);
case UCA_PROP_TIMESTAMP_MODE:
- return pco_set_timestamp_mode(GET_PCO(cam), *((uint16_t *) data));
+ {
+ uint32_t mode = *((uint32_t *) data);
+ if (mode & UCA_TIMESTAMP_ASCII) {
+ if (mode & UCA_TIMESTAMP_BINARY)
+ return pco_set_timestamp_mode(GET_PCO(cam), TIMESTAMP_MODE_BINARYANDASCII);
+ else {
+ printf("hello\n");
+ return pco_set_timestamp_mode(GET_PCO(cam), TIMESTAMP_MODE_ASCII);
+ }
+ }
+ else if (mode & UCA_TIMESTAMP_BINARY)
+ return pco_set_timestamp_mode(GET_PCO(cam), TIMESTAMP_MODE_BINARY);
+ else
+ return pco_set_timestamp_mode(GET_PCO(cam), TIMESTAMP_MODE_OFF);
+ }
case UCA_PROP_HOTPIXEL_CORRECTION:
return pco_set_hotpixel_correction(GET_PCO(cam), *(uint32_t *) data);
@@ -318,9 +332,9 @@ uint32_t uca_pco_init(struct uca_camera_priv **cam, struct uca_grabber_priv *gra
pco_set_scan_mode(pco, PCO_SCANMODE_SLOW);
pco_set_rec_state(pco, 0);
- pco_set_timestamp_mode(pco, UCA_TIMESTAMP_ASCII);
+ pco_set_timestamp_mode(pco, TIMESTAMP_MODE_ASCII);
pco_set_timebase(pco, 1, 1);
- pco_arm_camera(pco);
+ /* pco_arm_camera(pco); */
/* Prepare frame grabber for recording */
int val = 0;
diff --git a/test/control.c b/test/control.c
index 44befe8..156fea3 100644
--- a/test/control.c
+++ b/test/control.c
@@ -358,6 +358,9 @@ int main(int argc, char *argv[])
uca_cam_get_property(cam, UCA_PROP_HEIGHT, &height, 0);
uca_cam_get_property(cam, UCA_PROP_BITDEPTH, &bits_per_sample, 0);
+ uint32_t mode = UCA_TIMESTAMP_ASCII | UCA_TIMESTAMP_BINARY;
+ uca_cam_set_property(cam, UCA_PROP_TIMESTAMP_MODE, &mode);
+
g_thread_init(NULL);
gdk_threads_init();
gtk_init (&argc, &argv);
diff --git a/test/grab.c b/test/grab.c
index ab3263f..6ade84a 100644
--- a/test/grab.c
+++ b/test/grab.c
@@ -54,8 +54,7 @@ int main(int argc, char *argv[])
int counter = 0;
while ((error == UCA_NO_ERROR) && (counter < 20)) {
- error = uca_cam_grab(cam, (char *) buffer, NULL);
- printf("error = 0x%x\n", error);
+ handle_error(uca_cam_grab(cam, (char *) buffer, NULL));
snprintf(filename, FILENAME_MAX, "frame-%08i.raw", counter++);
FILE *fp = fopen(filename, "wb");
fwrite(buffer, width*height, pixel_size, fp);