Visual Servoing Platform  version 3.1.0
vpRingLight Class Reference

#include <visp3/robot/vpRingLight.h>

Public Member Functions

 vpRingLight ()
 
 ~vpRingLight ()
 
void pulse ()
 
void pulse (double time)
 
void on ()
 
void off ()
 

Detailed Description

Ring light management under unix.

Warning
This class works only at Irisa with the Edixia's ring light system.

Here is an example showing how to synchronise the framegrabbing with the lighting system.

#include <visp3/core/vpConfig.h>
#include <visp3/core/vpImage.h>
#include <visp3/robot/vpRingLight.h>
#include <visp3/sensor/vp1394TwoGrabber.h>
int main()
{
#if defined(VISP_HAVE_PARPORT) && defined(VISP_HAVE_DC1394)
vp1394TwoGrabber g; // Firewire framegrabber based on libdc1394-2.x third party lib
vpRingLight light; // Open the device to access to the ring light.
for (int i=0; i < 10; i++) {
light.pulse(); // Send a pulse to the lighting system
g.acquire(I); // Acquire an image
}
#endif
}

Here is an example showing how to turn on the lighting during 10 seconds.

#include <visp3/core/vpConfig.h>
#include <visp3/core/vpTime.h>
#include <visp3/robot/vpRingLight.h>
int main()
{
#ifdef VISP_HAVE_PARPORT
vpRingLight light; // Open the device to access to the ring light.
int nsec = 10; // Time to wait in seconds
light.on(); // Turn the ring light on
vpTime::wait(nsec * 1000); // Wait 10 s
light.off(); // and then turn the ring light off
#endif
}
Examples:
ringLight.cpp.

Definition at line 110 of file vpRingLight.h.

Constructor & Destructor Documentation

◆ vpRingLight()

vpRingLight::vpRingLight ( )

Constructor to acces to the ring light device connected to the parallel port.

Open and initialise the default parallel port device "/dev/parport0" to communicate with the ring light.

Exceptions
vpParallelPortException::openingIf the device used to access to the parallel port can't be opened. A possible reason is that you don't have write access.

Turn the ring light off.

Definition at line 73 of file vpRingLight.cpp.

References off().

◆ ~vpRingLight()

vpRingLight::~vpRingLight ( )

Destructor to close the device.

Turn the ring light off.

Exceptions
vpParallelPortException::closingIf the device used to access to the parallel port can't be closed.

Definition at line 83 of file vpRingLight.cpp.

References off().

Member Function Documentation

◆ off()

void vpRingLight::off ( )

Turn the ring light off.

To turn the ring light on, see on().

Examples:
ringLight.cpp.

Definition at line 199 of file vpRingLight.cpp.

References vpParallelPort::sendData().

Referenced by vpRingLight(), and ~vpRingLight().

◆ on()

void vpRingLight::on ( )

Turn the ring light on.

To turn the ring light off, see off().

Examples:
ringLight.cpp.

Definition at line 173 of file vpRingLight.cpp.

References vpParallelPort::sendData().

◆ pulse() [1/2]

void vpRingLight::pulse ( )

Activates the ring light by sending a pulse throw the parallel port.

The pulse width is 500 us. This pulse activates a NE555 which turns on on the light during 10ms.

Examples:
ringLight.cpp.

Definition at line 92 of file vpRingLight.cpp.

References vpParallelPort::sendData().

◆ pulse() [2/2]

void vpRingLight::pulse ( double  time)

Activates the ring light by sending a pulse throw the parallel port during a specified duration.

Parameters
time: Duration in milli-second (ms) during while the light is turned on.

Definition at line 135 of file vpRingLight.cpp.

References vpParallelPort::sendData().