pcl::DinastGrabber Class Reference
Module io

Grabber for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001) More...

`#include <pcl/io/dinast_grabber.h>`

Inheritance diagram for pcl::DinastGrabber:

## Public Member Functions

| DinastGrabber (const int device_position=1)
| Constructor that sets up the grabber constants. More...
virtual | ~DinastGrabber () throw ()
| Destructor. More...
virtual bool | isRunning () const
| Check if the grabber is running. More...
virtual std::string | getName () const
| Returns the name of the concrete subclass, DinastGrabber. More...
virtual void | start ()
| Start the data acquisition process. More...
virtual void | stop ()
| Stop the data acquisition process. More...
virtual float | getFramesPerSecond () const
| Obtain the number of frames per second (FPS). More...
std::string | getDeviceVersion ()
| Get the version number of the currently opened device. More...
Public Member Functions inherited from pcl::Grabber
| Grabber ()
| Constructor. More...
virtual | ~Grabber () throw ()
| virtual desctructor. More...
template<typename T >
boost::signals2::connection | registerCallback (const boost::function< T > &callback)
| registers a callback function/method to a signal with the corresponding signature More...
template<typename T >
bool | providesCallback () const
| indicates whether a signal with given parameter-type exists or not More...

## Protected Types

enum | pixel_size { RAW8 =1, RGB16 =2, RGB24 =3, RGB32 =4 }
| Size of pixel. More...
enum | { CMD_READ_START =0xC7, CMD_READ_STOP =0xC8, CMD_GET_VERSION =0xDC, CMD_SEND_DATA =0xDE }
| Device command values. More...

## Protected Member Functions

void | onInit (const int device_id)
| On initialization processing. More...
void | setupDevice (int device_position, const int id_vendor=0x18d1, const int id_product=0x1402)
| Setup a Dinast 3D camera device. More...
bool | USBRxControlData (const unsigned char req_code, unsigned char *buffer, int length)
| Send a RX data packet request. More...
bool | USBTxControlData (const unsigned char req_code, unsigned char *buffer, int length)
| Send a TX data packet request. More...
int | checkHeader ()
| Check if we have a header in the global buffer, and return the position of the next valid image. More...
void | readImage ()
| Read image data and leaves it on image_. More...
pcl::PointCloud< pcl::PointXYZI >::Ptr | getXYZIPointCloud ()
| Obtains XYZI Point Cloud from the image of the camera. More...
void | captureThreadFunction ()
| The function in charge of getting the data from the camera. More...
Protected Member Functions inherited from pcl::Grabber
virtual void | signalsChanged ()
template<typename T >
boost::signals2::signal< T > * | find_signal () const
template<typename T >
int | num_slots () const
template<typename T >
void | disconnect_all_slots ()
template<typename T >
void | block_signal ()
template<typename T >
void | unblock_signal ()
void | block_signals ()
void | unblock_signals ()
template<typename T >
boost::signals2::signal< T > * | createSignal ()

## Protected Attributes

int | image_width_
| Width of image. More...
int | image_height_
| Height of image. More...
int | image_size_
| Total size of image. More...
int | sync_packet_size_
| Length of a sync packet. More...
double | dist_max_2d_
double | fov_
| diagonal Field of View More...
libusb_context * | context_
| The libusb context. More...
struct libusb_device_handle * | device_handle_
| the actual device_handle for the camera More...
unsigned char * | raw_buffer_
| Temporary USB read buffer, since we read two RGB16 images at a time size is the double of two images plus a sync packet. More...
boost::circular_buffer< unsigned char > | g_buffer_
| Global circular buffer. More...
unsigned char | bulk_ep_
| Bulk endpoint address value. More...
unsigned char * | image_
bool | second_image_
| Since there is no header after the first image, we need to save the state. More...
bool | running_
boost::thread | capture_thread_
boost::mutex | capture_mutex_
boost::signals2::signal< sig_cb_dinast_point_cloud > * | point_cloud_signal_
Protected Attributes inherited from pcl::Grabber
std::map< std::string, boost::signals2::signal_base * > | signals_
std::map< std::string, std::vector< boost::signals2::connection > > | connections_
std::map< std::string, std::vector< boost::signals2::shared_connection_block > > | shared_connections_

## Detailed Description

Grabber for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001)

Author
  Marco A. Gutierrez marco.nosp@m.g@un.nosp@m.ex.es

Definition at line 57 of file dinast_grabber.h.

## Member Enumeration Documentation

anonymous enum

protected

Device command values.

Enumerator
CMD_READ_START |
CMD_READ_STOP |
CMD_GET_VERSION |
CMD_SEND_DATA |

Definition at line 201 of file dinast_grabber.h.

enum pcl::DinastGrabber::pixel_size

protected

Size of pixel.

Enumerator
RAW8 |
RGB16 |
RGB24 |
RGB32 |

Definition at line 181 of file dinast_grabber.h.

## Constructor & Destructor Documentation

pcl::DinastGrabber::DinastGrabber | ( | const int | device_position = `1` | ) |

Constructor that sets up the grabber constants.

Parameters

  [in] | device_position | Number corresponding the device to grab

virtual pcl::DinastGrabber::~DinastGrabber | ( |  | ) |
throw | ( |
| ) |  |

virtual

Destructor.

It never throws.

## Member Function Documentation

void pcl::DinastGrabber::captureThreadFunction | ( |  | ) |

protected

The function in charge of getting the data from the camera.

int pcl::DinastGrabber::checkHeader | ( |  | ) |

protected

Check if we have a header in the global buffer, and return the position of the next valid image.

Note
  If the image in the buffer is partial, return -1, as we have to wait until we add more data to it.

Returns
  the position of the next valid image (i.e., right after a valid header) or -1 in case the buffer either doesn't have an image or has a partial image

std::string pcl::DinastGrabber::getDeviceVersion | ( |  | ) |

Get the version number of the currently opened device.

virtual float pcl::DinastGrabber::getFramesPerSecond | ( |  | ) | const

virtual

Obtain the number of frames per second (FPS).

Implements pcl::Grabber.

virtual std::string pcl::DinastGrabber::getName | ( |  | ) | const

inline virtual

Returns the name of the concrete subclass, DinastGrabber.

Returns
  DinastGrabber.

Implements pcl::Grabber.

Definition at line 81 of file dinast_grabber.h.

pcl::PointCloud<pcl::PointXYZI>::Ptr pcl::DinastGrabber::getXYZIPointCloud | ( |  | ) |

protected

Obtains XYZI Point Cloud from the image of the camera.

Returns
  the point cloud from the image data

virtual bool pcl::DinastGrabber::isRunning | ( |  | ) | const

virtual

Check if the grabber is running.

Returns
  true if grabber is running / streaming. False otherwise.

Implements pcl::Grabber.

void pcl::DinastGrabber::onInit | ( | const int | device_id | ) |

protected

On initialization processing.

void pcl::DinastGrabber::readImage | ( |  | ) |

protected

Read image data and leaves it on image_.

void pcl::DinastGrabber::setupDevice | ( | int | device_position,
|  | const int | id_vendor = `0x18d1`,
|  | const int | id_product = `0x1402`
| ) |  |

protected

Setup a Dinast 3D camera device.

Parameters

  [in] | device_position | Number corresponding the device to grab
  [in] | id_vendor | The ID of the camera vendor (should be 0x18d1)
  [in] | id_product | The ID of the product (should be 0x1402)

virtual void pcl::DinastGrabber::start | ( |  | ) |

virtual

Start the data acquisition process.

Implements pcl::Grabber.

virtual void pcl::DinastGrabber::stop | ( |  | ) |

virtual

Stop the data acquisition process.

Implements pcl::Grabber.

bool pcl::DinastGrabber::USBRxControlData | ( | const unsigned char | req_code,
|  | unsigned char * | buffer,
|  | int | length
| ) |  |

protected

Send a RX data packet request.

Parameters

  [in] | req_code | the request to send (the request field for the setup packet)
  | buffer |
  [in] | length | the length field for the setup packet. The data buffer should be at least this size.

bool pcl::DinastGrabber::USBTxControlData | ( | const unsigned char | req_code,
|  | unsigned char * | buffer,
|  | int | length
| ) |  |

protected

Send a TX data packet request.

Parameters

  [in] | req_code | the request to send (the request field for the setup packet)
  | buffer |
  [in] | length | the length field for the setup packet. The data buffer should be at least this size.

## Member Data Documentation

unsigned char pcl::DinastGrabber::bulk_ep_

protected

Bulk endpoint address value.

Definition at line 198 of file dinast_grabber.h.

boost::mutex pcl::DinastGrabber::capture_mutex_

mutable protected

Definition at line 212 of file dinast_grabber.h.

boost::thread pcl::DinastGrabber::capture_thread_

protected

Definition at line 210 of file dinast_grabber.h.

libusb_context* pcl::DinastGrabber::context_

protected

The libusb context.

Definition at line 184 of file dinast_grabber.h.

struct libusb_device_handle* pcl::DinastGrabber::device_handle_

protected

the actual device_handle for the camera

Definition at line 187 of file dinast_grabber.h.

double pcl::DinastGrabber::dist_max_2d_

protected

Definition at line 175 of file dinast_grabber.h.

double pcl::DinastGrabber::fov_

protected

diagonal Field of View

Definition at line 178 of file dinast_grabber.h.

boost::circular_buffer<unsigned char> pcl::DinastGrabber::g_buffer_

protected

Global circular buffer.

Definition at line 195 of file dinast_grabber.h.

unsigned char* pcl::DinastGrabber::image_

protected

Definition at line 203 of file dinast_grabber.h.

int pcl::DinastGrabber::image_height_

protected

Height of image.

Definition at line 167 of file dinast_grabber.h.

int pcl::DinastGrabber::image_size_

protected

Total size of image.

Definition at line 170 of file dinast_grabber.h.

int pcl::DinastGrabber::image_width_

protected

Width of image.

Definition at line 164 of file dinast_grabber.h.

boost::signals2::signal<sig_cb_dinast_point_cloud>* pcl::DinastGrabber::point_cloud_signal_

protected

Definition at line 213 of file dinast_grabber.h.

unsigned char* pcl::DinastGrabber::raw_buffer_

protected

Temporary USB read buffer, since we read two RGB16 images at a time size is the double of two images plus a sync packet.

Definition at line 192 of file dinast_grabber.h.

bool pcl::DinastGrabber::running_

protected

Definition at line 208 of file dinast_grabber.h.

bool pcl::DinastGrabber::second_image_

protected

Since there is no header after the first image, we need to save the state.

Definition at line 206 of file dinast_grabber.h.

int pcl::DinastGrabber::sync_packet_size_

protected

Length of a sync packet.

Definition at line 173 of file dinast_grabber.h.

The documentation for this class was generated from the following file:

- /build/pcl-6_P28C/pcl-1.7.2/io/include/pcl/io/dinast_grabber.h