INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
components/disparity/mainthread.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2009 Alex Brooks, Alexei Makarenko, Tobias Kaupp, Ben Upcroft, Tom Burdick 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 00011 #ifndef DISPARITY_MAIN_THREAD_H 00012 #define DISPARITY_MAIN_THREAD_H 00013 00014 #include <memory> 00015 #include <gbxsickacfr/gbxiceutilacfr/buffer.h> 00016 #include <orcaice/subsystemthread.h> 00017 #include <orcaice/context.h> 00018 #include <hydrodll/dynamicload.h> 00019 00020 // plugin interface 00021 #include <hydrointerfaces/disparity.h> 00022 00023 // network interfaces 00024 #include <orcaifaceimpl/image.h> 00025 #include <orcaifaceimpl/multicamera.h> 00026 00027 namespace disparity { 00028 00029 class MainThread : public orcaice::SubsystemThread 00030 { 00031 public: 00032 MainThread( const orcaice::Context &context ); 00033 00034 bool hasPluginEventLoop() const; 00035 void executePluginEventLoop(); 00036 00037 private: 00038 00039 // from SubsystemThread 00040 virtual void initialise(); 00041 virtual void work(); 00042 virtual void finalise(); 00043 00044 // initialize before running the thread, since this is a requirement 00045 void init(); 00046 00047 // initialise the parameters for the Viewer 00048 void readSettings(); 00049 00050 // Setup algorithm plugin 00051 void initPluginInterface(); 00052 00053 // Loops until established 00054 void initNetworkInterface(); 00055 00056 // Setup data structures based on the incomingDescr_ 00057 void initDataStructures(); 00058 00059 // context 00060 orcaice::Context context_; 00061 00062 // incoming consumer object 00063 orcaifaceimpl::BufferedMultiCameraConsumerImplPtr incomingInterface_; 00064 00065 // incoming data structure 00066 orca::MultiCameraDataPtr incomingData_; 00067 00068 // incoming description structure 00069 orca::MultiCameraDescriptionPtr incomingDescr_; 00070 00071 // incoming proxy object 00072 orca::MultiCameraPrx incomingPrx_; 00073 00074 // The Network Image Interface object 00075 orcaifaceimpl::ImageImplPtr outgoingInterface_; 00076 00077 // The Network Image Interface Data Structure 00078 orca::ImageDataPtr outgoingData_; 00079 00080 // The Network Image Interface Description Structure 00081 orca::ImageDescriptionPtr outgoingDescr_; 00082 00083 // The Driver Interface Config Structure 00084 hydrointerfaces::Disparity::Config pluginConfig_; 00085 00086 // The Driver Interface Data Structure 00087 hydrointerfaces::Disparity::Data pluginLeftData_; 00088 hydrointerfaces::Disparity::Data pluginRightData_; 00089 hydrointerfaces::Disparity::Data pluginOutputData_; 00090 00091 // The library that contains the driver factory (must be declared first so it's destructed last!!!) 00092 std::auto_ptr<hydrodll::DynamicallyLoadedLibrary> pluginLib_; 00093 00094 // Generic driver for the hardware 00095 std::auto_ptr<hydrointerfaces::Disparity> pluginInterface_; 00096 00097 }; 00098 00099 } // namespace 00100 00101 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)