From 338c435be149cdc0a64e548d3ff3a86d12b1ac38 Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Wed, 19 Oct 2011 14:29:57 +0200 Subject: Fix: timestamp mode --- src/cameras/pco.c | 20 +++++++++++++++++--- test/control.c | 3 +++ test/grab.c | 3 +-- 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); -- cgit v1.2.3