From b5c90a21f289bb67c4806a8563d96fc674bba583 Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Tue, 24 Apr 2012 08:53:21 +0200 Subject: pylon (basler) camera added --- test/CMakeLists.txt | 12 +++++++ test/grab.c | 3 +- test/grab_pylon.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 test/grab_pylon.c (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9050ce5..f6ca865 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,6 +16,18 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/control.glade ${CMAKE_CURRENT_BINARY_ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run.py ${CMAKE_CURRENT_BINARY_DIR}) # --- Build targets ----------------------------------------------------------- +#add_executable(enum enum.c) +add_executable(grab grab.c) +add_executable(grab_pylon grab_pylon.c) +#add_executable(grab-async grab-async.c) +#add_executable(benchmark benchmark.c) + +#target_link_libraries(enum uca) +target_link_libraries(grab uca-gobject ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) +target_link_libraries(grab_pylon uca-gobject ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) +#target_link_libraries(grab-async uca) +#target_link_libraries(benchmark uca) + include_directories( ${GLIB2_INCLUDE_DIRS} ${GOBJECT2_INCLUDE_DIRS} diff --git a/test/grab.c b/test/grab.c index a4d4aa3..41e6d88 100644 --- a/test/grab.c +++ b/test/grab.c @@ -114,7 +114,7 @@ int main(int argc, char *argv[]) uca_camera_start_recording(camera, &error); g_assert_no_error(error); - while (counter < 2) { + while (counter < 5) { g_print(" grab frame ... "); g_timer_start(timer); uca_camera_grab(camera, &buffer, &error); @@ -131,6 +131,7 @@ int main(int argc, char *argv[]) FILE *fp = fopen(filename, "wb"); fwrite(buffer, roi_width * roi_height, pixel_size, fp); fclose(fp); + g_usleep(2 * G_USEC_PER_SEC); } g_print("Stop recording\n"); diff --git a/test/grab_pylon.c b/test/grab_pylon.c new file mode 100644 index 0000000..cb1e534 --- /dev/null +++ b/test/grab_pylon.c @@ -0,0 +1,95 @@ +/* Copyright (C) 2011, 2012 Matthias Vogelgesang + (Karlsruhe Institute of Technology) + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by the + Free Software Foundation; either version 2.1 of the License, or (at your + option) any later version. + + This library is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + details. + + You should have received a copy of the GNU Lesser General Public License along + with this library; if not, write to the Free Software Foundation, Inc., 51 + Franklin St, Fifth Floor, Boston, MA 02110, USA */ + +#include +#include +#include +#include +#include "uca-camera.h" + +#define handle_error(errno) {if ((errno) != UCA_NO_ERROR) printf("error at <%s:%i>\n", \ + __FILE__, __LINE__);} + +static UcaCamera *camera = NULL; + +void sigint_handler(int signal) +{ + printf("Closing down libuca\n"); + uca_camera_stop_recording(camera, NULL); + g_object_unref(camera); + exit(signal); +} + +int main(int argc, char *argv[]) +{ + GError *error = NULL; + (void) signal(SIGINT, sigint_handler); + + g_type_init(); + camera = uca_camera_new("pylon", &error); + + if (camera == NULL) { + g_print("Couldn't initialize camera\n"); + return 1; + } + + guint width, height, bits; + g_object_get(G_OBJECT(camera), + "sensor-width", &width, + "sensor-height", &height, + "sensor-bitdepth", &bits, + NULL); + + const int pixel_size = bits == 8 ? 1 : 2; + gpointer buffer = g_malloc0(width * height * pixel_size); + + gchar filename[FILENAME_MAX]; + + for (int i = 0; i < 2; i++) { + gint counter = 0; + g_print("Start recording\n"); + uca_camera_start_recording(camera, &error); + g_assert_no_error(error); + + while (counter < 50) { + g_print(" grab frame ... "); + uca_camera_grab(camera, &buffer, &error); + if (error != NULL) { + g_print("\nError: %s\n", error->message); + goto cleanup; + } + g_print("done\n"); + + snprintf(filename, FILENAME_MAX, "frame-%08i.raw", counter++); + FILE *fp = fopen(filename, "wb"); + fwrite(buffer, width*height, pixel_size, fp); + fclose(fp); + //g_usleep(2 * G_USEC_PER_SEC); + } + + g_print("Stop recording\n"); + uca_camera_stop_recording(camera, &error); + g_assert_no_error(error); + } + +cleanup: + uca_camera_stop_recording(camera, NULL); + g_object_unref(camera); + g_free(buffer); + + return error != NULL ? 1 : 0; +} -- cgit v1.2.3 From 38d6d18e83b0c33a18ef6f68c22c161d39abc449 Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Tue, 8 May 2012 14:49:11 +0200 Subject: basler camera works --- test/grab_pylon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/grab_pylon.c b/test/grab_pylon.c index cb1e534..2f9b5a0 100644 --- a/test/grab_pylon.c +++ b/test/grab_pylon.c @@ -55,6 +55,7 @@ int main(int argc, char *argv[]) NULL); const int pixel_size = bits == 8 ? 1 : 2; + g_print("allocate buffer %u, %u, %d\n", width, height, pixel_size); gpointer buffer = g_malloc0(width * height * pixel_size); gchar filename[FILENAME_MAX]; @@ -65,7 +66,7 @@ int main(int argc, char *argv[]) uca_camera_start_recording(camera, &error); g_assert_no_error(error); - while (counter < 50) { + while (counter < 10) { g_print(" grab frame ... "); uca_camera_grab(camera, &buffer, &error); if (error != NULL) { -- cgit v1.2.3 From 9395f3ed8c69c7873c187d8a93b4755b685b3c96 Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Tue, 26 Jun 2012 08:53:11 +0200 Subject: working on basler --- test/CMakeLists.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f6ca865..873b85f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,14 +17,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run.py ${CMAKE_CURRENT_BINARY_DIR}) # --- Build targets ----------------------------------------------------------- #add_executable(enum enum.c) -add_executable(grab grab.c) -add_executable(grab_pylon grab_pylon.c) #add_executable(grab-async grab-async.c) #add_executable(benchmark benchmark.c) #target_link_libraries(enum uca) -target_link_libraries(grab uca-gobject ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) -target_link_libraries(grab_pylon uca-gobject ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) #target_link_libraries(grab-async uca) #target_link_libraries(benchmark uca) @@ -43,6 +39,9 @@ add_executable(grab-async grab-async.c) target_link_libraries(grab uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) target_link_libraries(grab-async uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) +add_executable(grab_pylon grab_pylon.c) +target_link_libraries(grab_pylon uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) + if (GTK2_FOUND) include_directories(${GTK2_INCLUDE_DIRS}) -- cgit v1.2.3 From 0b5720d0414f7e9f196664677899e999179a49f6 Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Wed, 1 Aug 2012 14:06:50 +0200 Subject: extracted pylon_camera C-wrapper into own project; enhanced cmake build for pylon cameras --- test/CMakeLists.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 873b85f..36a5fd3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,6 +33,20 @@ include_directories( message("${CMAKE_CURRENT_SOURCE_DIR}") +if (HAVE_PYLON_CAMERA) + set(GENICAM_ROOT $ENV{PYLON_ROOT}/genicam) + # check for 32/64 bit + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux64_x64 + ${GENICAM_ROOT}/bin/Linux64_x64/GenApi/Generic) + else() + set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux32_i86 + ${GENICAM_ROOT}/bin/Linux32_i86/GenApi/Generic) + endif() + message("PYLON LIB DIRS ${PYLON_LIB_DIRS}") + link_directories(${PYLON_LIB_DIRS}) +endif() + add_executable(grab grab.c) add_executable(grab-async grab-async.c) -- cgit v1.2.3 From 3e1c17378f21a737de85ad4c0e07210be9fcd5dd Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Wed, 1 Aug 2012 14:12:23 +0200 Subject: reduced differences to master --- test/CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 36a5fd3..5fb8133 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,13 +16,6 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/control.glade ${CMAKE_CURRENT_BINARY_ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run.py ${CMAKE_CURRENT_BINARY_DIR}) # --- Build targets ----------------------------------------------------------- -#add_executable(enum enum.c) -#add_executable(grab-async grab-async.c) -#add_executable(benchmark benchmark.c) - -#target_link_libraries(enum uca) -#target_link_libraries(grab-async uca) -#target_link_libraries(benchmark uca) include_directories( ${GLIB2_INCLUDE_DIRS} -- cgit v1.2.3 From 6683a6e9a6fc0259d5e5dfd97279680e292d7938 Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Wed, 1 Aug 2012 14:58:46 +0200 Subject: fixed pylon build --- test/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5fb8133..4cd43ce 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -36,7 +36,6 @@ if (HAVE_PYLON_CAMERA) set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux32_i86 ${GENICAM_ROOT}/bin/Linux32_i86/GenApi/Generic) endif() - message("PYLON LIB DIRS ${PYLON_LIB_DIRS}") link_directories(${PYLON_LIB_DIRS}) endif() -- cgit v1.2.3 From 12c4c985c11ae9fa4bea7ff4f54176f92168324f Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Thu, 2 Aug 2012 11:50:24 +0200 Subject: use LIBPYLONCAM_LIBDIR also in tests --- test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4cd43ce..2ddc464 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -36,7 +36,7 @@ if (HAVE_PYLON_CAMERA) set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux32_i86 ${GENICAM_ROOT}/bin/Linux32_i86/GenApi/Generic) endif() - link_directories(${PYLON_LIB_DIRS}) + link_directories(${PYLON_LIB_DIRS} ${LIBPYLONCAM_LIBDIR}) endif() add_executable(grab grab.c) -- cgit v1.2.3 From d5881265ee7c3995508aaa84275be498e30c5c8b Mon Sep 17 00:00:00 2001 From: Volker Kaiser Date: Thu, 2 Aug 2012 14:49:11 +0200 Subject: added variables with which building of test/control and reference documentation can be disabled --- test/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2ddc464..5797621 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -48,7 +48,11 @@ target_link_libraries(grab-async uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) add_executable(grab_pylon grab_pylon.c) target_link_libraries(grab_pylon uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) -if (GTK2_FOUND) +if (NOT DEFINED WITH_CONTROL_GUI) + set(WITH_CONTROL_GUI TRUE) +endif() + +if (GTK2_FOUND AND WITH_CONTROL_GUI) include_directories(${GTK2_INCLUDE_DIRS}) add_executable(control -- cgit v1.2.3