From 7fcfc78dd03beb4a68f7fd148ce63cfae178a7ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergi=20Hern=C3=A0ndez=20Juan?= <shernand@iri.upc.edu>
Date: Fri, 8 May 2015 09:56:42 +0000
Subject: [PATCH] Added the configuration of the shutter, gain and white
 balance in the constructor. Added the shutter, gain and white balance
 configuration to the launch file.

---
 cfg/FirewireCamera.cfg         |  6 +++---
 launch/firewire.launch         | 12 ++++++++----
 src/firewire_camera_driver.cpp |  7 +++++++
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/cfg/FirewireCamera.cfg b/cfg/FirewireCamera.cfg
index 7a78023..3a19b37 100755
--- a/cfg/FirewireCamera.cfg
+++ b/cfg/FirewireCamera.cfg
@@ -61,14 +61,14 @@ gen.add("Left_offset",             int_t,     SensorLevels.RECONFIGURE_STOP,   "
 gen.add("Top_offset",              int_t,     SensorLevels.RECONFIGURE_STOP,   "Desired top offset in pixels",   0,        0,    2048)
 gen.add("Framerate",               double_t,  SensorLevels.RECONFIGURE_STOP,   "Desired framerate in frames per second", 50,1.875 ,200)
 gen.add("Color_coding",            int_t,     SensorLevels.RECONFIGURE_STOP,   "Desired color coding",           0,        0,    7, edit_method=enum_color_coding)
-gen.add("White_balance_enabled",   bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable white balance feature",   False)
+gen.add("White_balance_enabled",   bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable white balance feature",   True)
 gen.add("White_balance_mode",      int_t,     SensorLevels.RECONFIGURE_STOP,   "White balance mode",             0,        0,    1, edit_method=enum_mode)
 gen.add("White_balance_u_b_value", int_t,     SensorLevels.RECONFIGURE_STOP,   "White balance U/B value",        0,        0,    1023)
 gen.add("White_balance_v_r_value", int_t,     SensorLevels.RECONFIGURE_STOP,   "White balance V/R value",        0,        0,    1023)
-gen.add("Shutter_enabled",         bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable shutter feature",         False)
+gen.add("Shutter_enabled",         bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable shutter feature",         True)
 gen.add("Shutter_mode",            int_t,     SensorLevels.RECONFIGURE_STOP,   "Shutter mode",                   0,        0,    1, edit_method=enum_mode)
 gen.add("Shutter_value",           int_t,     SensorLevels.RECONFIGURE_STOP,   "Shutter value",                  0,        28,   4095)
-gen.add("Gain_enabled",            bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable gain feature",            False)
+gen.add("Gain_enabled",            bool_t,    SensorLevels.RECONFIGURE_STOP,   "Enable gain feature",            True)
 gen.add("Gain_mode",               int_t,     SensorLevels.RECONFIGURE_STOP,   "Gain mode",                      0,        0,    1, edit_method=enum_mode)
 gen.add("Gain_value",              int_t,     SensorLevels.RECONFIGURE_STOP,   "Gain value",                     0,        48,   730)
 import roslib; roslib.load_manifest(PACKAGE)
diff --git a/launch/firewire.launch b/launch/firewire.launch
index 07b8694..60463aa 100755
--- a/launch/firewire.launch
+++ b/launch/firewire.launch
@@ -13,16 +13,20 @@
         output="screen">
     <remap from="/bumblebee/camera_image"
              to="/sensors/head_right/image_raw"/>
-    <param name="Camera_node"  value="0" />
+    <!--<param name="Camera_node"  value="0" />-->
     <!--<param name="Camera_serial"  value="00b09d01006b6fb5" />-->
+    <param name="Camera_serial"  value="00b09d0100a96262" />
     <param name="frame_id"     value="bumblebee_right" type="string" />
     <!-- set calibration file -->
     <param name="cal_file"     value="file://$(find iri_firewire_camera)/calibration/tibi_right_camera.yaml" type="string" />
-    <param name="ISO_speed"    value="800" />
-    <param name="Framerate"    value="2.5" />
-    <param name="Color_coding" value="3" />
+    <param name="ISO_speed"    value="400" />
+    <param name="Framerate"    value="1.875" />
+    <param name="Color_coding" value="6" />
     <param name="Image_width"  value="1024" />
     <param name="Image_height" value="768" />
+    <param name="Shutter_enabled"   value="True"/>
+    <param name="Shutter_mode"      value="0" />
+    <param name="Shutter_value"     value="10"/>
     <param name="~tf_prefix"   value="/bumblebee_frame" type="str"/>
   </node>
 
diff --git a/src/firewire_camera_driver.cpp b/src/firewire_camera_driver.cpp
index d629b9d..254df2a 100644
--- a/src/firewire_camera_driver.cpp
+++ b/src/firewire_camera_driver.cpp
@@ -72,6 +72,13 @@ bool FirewireCameraDriver::openDriver(void)
         this->camera=NULL;
         return false;
       }
+      // white balance feature
+      this->set_white_balance(&this->config_.White_balance_enabled,&this->config_.White_balance_mode,&this->config_.White_balance_u_b_value,
+                              &this->config_.White_balance_v_r_value);
+      // shutter feature
+      this->set_shutter(&this->config_.Shutter_enabled,&this->config_.Shutter_mode,&this->config_.Shutter_value);
+      // gain feature
+      this->set_gain(&this->config_.Gain_enabled,&this->config_.Gain_mode,&this->config_.Gain_value);
       ROS_INFO("Driver opened");
       return true;
     }
-- 
GitLab