VideoCapture.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00010 #ifndef VIDEO_CAPTURE_H
00011 #define VIDEO_CAPTURE_H
00012 
00013 #include <rtm/idl/BasicDataType.hh>
00014 #include "hrpsys/idl/Img.hh"
00015 #include <rtm/Manager.h>
00016 #include <rtm/DataFlowComponentBase.h>
00017 #include <rtm/CorbaPort.h>
00018 #include <rtm/DataInPort.h>
00019 #include <rtm/DataOutPort.h>
00020 #include <rtm/idl/BasicDataTypeSkel.h>
00021 #include "camera.h"
00022 
00023 // Service implementation headers
00024 // <rtc-template block="service_impl_h">
00025 #include "CameraCaptureService_impl.h"
00026 
00027 // </rtc-template>
00028 
00029 // Service Consumer stub headers
00030 // <rtc-template block="consumer_stub_h">
00031 
00032 // </rtc-template>
00033 
00034 using namespace RTC;
00035 
00039 class VideoCapture
00040   : public RTC::DataFlowComponentBase
00041 {
00042  public:
00047   VideoCapture(RTC::Manager* manager);
00051   virtual ~VideoCapture();
00052 
00053   // The initialize action (on CREATED->ALIVE transition)
00054   // formaer rtc_init_entry()
00055   virtual RTC::ReturnCode_t onInitialize();
00056 
00057   // The finalize action (on ALIVE->END transition)
00058   // formaer rtc_exiting_entry()
00059   // virtual RTC::ReturnCode_t onFinalize();
00060 
00061   // The startup action when ExecutionContext startup
00062   // former rtc_starting_entry()
00063   virtual RTC::ReturnCode_t onStartup(RTC::UniqueId ec_id);
00064 
00065   // The shutdown action when ExecutionContext stop
00066   // former rtc_stopping_entry()
00067   // virtual RTC::ReturnCode_t onShutdown(RTC::UniqueId ec_id);
00068 
00069   // The activated action (Active state entry action)
00070   // former rtc_active_entry()
00071   virtual RTC::ReturnCode_t onActivated(RTC::UniqueId ec_id);
00072 
00073   // The deactivated action (Active state exit action)
00074   // former rtc_active_exit()
00075   virtual RTC::ReturnCode_t onDeactivated(RTC::UniqueId ec_id);
00076 
00077   // The execution action that is invoked periodically
00078   // former rtc_active_do()
00079   virtual RTC::ReturnCode_t onExecute(RTC::UniqueId ec_id);
00080 
00081   // The aborting action when main logic error occurred.
00082   // former rtc_aborting_entry()
00083   // virtual RTC::ReturnCode_t onAborting(RTC::UniqueId ec_id);
00084 
00085   // The error action in ERROR state
00086   // former rtc_error_do()
00087   // virtual RTC::ReturnCode_t onError(RTC::UniqueId ec_id);
00088 
00089   // The reset action that is invoked resetting
00090   // This is same but different the former rtc_init_entry()
00091   // virtual RTC::ReturnCode_t onReset(RTC::UniqueId ec_id);
00092 
00093   // The state update action that is invoked after onExecute() action
00094   // no corresponding operation exists in OpenRTm-aist-0.2.0
00095   // virtual RTC::ReturnCode_t onStateUpdate(RTC::UniqueId ec_id);
00096 
00097   // The action that is invoked when execution context's rate is changed
00098   // no corresponding operation exists in OpenRTm-aist-0.2.0
00099   // virtual RTC::ReturnCode_t onRateChanged(RTC::UniqueId ec_id);
00100 
00101   bool capture();
00102   void take_one_frame();
00103   void start_continuous();
00104   void stop_continuous();
00105 
00106  protected:
00107   // Configuration variable declaration
00108   // <rtc-template block="config_declare">
00109   
00110   // </rtc-template>
00111 
00112   // DataInPort declaration
00113   // <rtc-template block="inport_declare">
00114   
00115   // </rtc-template>
00116 
00117   // DataOutPort declaration
00118   // <rtc-template block="outport_declare">
00119   Img::TimedMultiCameraImage m_MultiCameraImages;
00120   OutPort<Img::TimedMultiCameraImage> m_MultiCameraImagesOut;
00121   Img::TimedCameraImage m_CameraImage;
00122   OutPort<Img::TimedCameraImage> m_CameraImageOut;
00123   
00124   // </rtc-template>
00125 
00126   // CORBA Port declaration
00127   // <rtc-template block="corbaport_declare">
00128   
00129   // </rtc-template>
00130 
00131   // Service declaration
00132   // <rtc-template block="service_declare">
00133   RTC::CorbaPort m_CameraCaptureServicePort;
00134   
00135   // </rtc-template>
00136 
00137   // Consumer declaration
00138   // <rtc-template block="consumer_declare">
00139   CameraCaptureService_impl m_CameraCaptureService;
00140   
00141   // </rtc-template>
00142 
00143  private:
00144   typedef enum {SLEEP, ONESHOT, CONTINUOUS} mode;
00145   mode m_mode;
00146   std::string m_initialMode;
00147   std::vector<int> m_devIds;
00148   std::vector < v4l_capture * > m_cameras;
00149   int m_width, m_height, m_frameRate;
00150   double m_tOld;
00151   bool m_needToReactivate;
00152 };
00153 
00154 
00155 extern "C"
00156 {
00157   void VideoCaptureInit(RTC::Manager* manager);
00158 };
00159 
00160 #endif // VIDEO_CAPTURE_H


hrpsys
Author(s): AIST, Fumio Kanehiro
autogenerated on Wed May 15 2019 05:02:19