#include <fvutils/ipc/shm_image.h>
Inheritance diagram for firevision::SharedMemoryImageBuffer:
Public Member Functions | |
SharedMemoryImageBuffer (const char *image_id, colorspace_t cspace, unsigned int width, unsigned int height) | |
Write Constructor. | |
SharedMemoryImageBuffer (const char *image_id, bool is_read_only=true) | |
Read Constructor. | |
~SharedMemoryImageBuffer () | |
Destructor. | |
const char * | image_id () const |
Get Image ID. | |
unsigned char * | buffer () const |
Get image buffer. | |
colorspace_t | colorspace () const |
Get color space. | |
unsigned int | width () const |
Get image width. | |
unsigned int | height () const |
Get image height. | |
unsigned int | roi_x () const |
Get ROI X. | |
unsigned int | roi_y () const |
Get ROI Y. | |
unsigned int | roi_width () const |
Get ROI width. | |
unsigned int | roi_height () const |
Get ROI height. | |
int | circle_x () const |
Get circle X. | |
int | circle_y () const |
Get circle Y. | |
unsigned int | circle_radius () const |
Get circle radius. | |
bool | circle_found () const |
Check if circle was found . | |
void | set_roi_x (unsigned int roi_x) |
Set ROI X. | |
void | set_roi_y (unsigned int roi_y) |
Set ROI Y. | |
void | set_roi_width (unsigned int roi_w) |
Set ROI width. | |
void | set_roi_height (unsigned int roi_h) |
Set ROI height. | |
void | set_roi (unsigned int roi_x, unsigned int roi_y, unsigned int roi_w, unsigned int roi_h) |
Set ROI data. | |
void | set_circle_x (int circle_x) |
Set circle X. | |
void | set_circle_y (int circle_y) |
Set circle Y. | |
void | set_circle_radius (unsigned int circle_radius) |
Set circle radius. | |
void | set_circle (int x, int y, unsigned int r) |
Set circle data. | |
void | set_circle_found (bool found) |
Set circle found. | |
bool | set_image_id (const char *image_id) |
Set image number. | |
fawkes::Time | capture_time () const |
Get the time when the image was captured. | |
void | capture_time (long int *sec, long int *usec) const |
Get the time when the image was captured. | |
void | set_capture_time (fawkes::Time *time) |
Set the capture time. | |
void | set_capture_time (long int sec, long int usec) |
Set the capture time. | |
Static Public Member Functions | |
static void | list () |
List all shared memory segments that contain a FireVision image. | |
static void | cleanup (bool use_lister=true) |
Erase all shared memory segments that contain FireVision images. | |
static bool | exists (const char *image_id) |
Check image availability. | |
static void | wipe (const char *image_id) |
Erase a specific shared memory segment that contains an image. |
Write images to or retrieve images from a shared memory segment.
Definition at line 130 of file shm_image.h.
firevision::SharedMemoryImageBuffer::SharedMemoryImageBuffer | ( | const char * | image_id, | |
colorspace_t | cspace, | |||
unsigned int | width, | |||
unsigned int | height | |||
) |
Write Constructor.
Create a new shared memory segment. Will open a shared memory segment that exactly fits the given information. Will throw an error if image with id image_id exists. I will create a new segment if no matching segment was found. The segment is accessed in read-write mode.
Use this constructor to open a shared memory image buffer for writing.
image_id | image ID to open | |
cspace | colorspace | |
width | image width | |
height | image height |
Definition at line 62 of file shm_image.cpp.
References fawkes::SharedMemory::add_semaphore().
firevision::SharedMemoryImageBuffer::SharedMemoryImageBuffer | ( | const char * | image_id, | |
bool | is_read_only = true | |||
) |
Read Constructor.
This constructor is used to search for an existing shared memory segment. It will throw an error if it cannot find a segment with the specified data. The segment is opened read-only by default, but this can be overridden with the is_read_only argument if needed.
Use this constructor to open an image for reading.
image_id | Image ID to open | |
is_read_only | true to open image read-only |
Definition at line 86 of file shm_image.cpp.
References firevision::CS_UNKNOWN.
firevision::SharedMemoryImageBuffer::~SharedMemoryImageBuffer | ( | ) |
unsigned char * firevision::SharedMemoryImageBuffer::buffer | ( | ) | const |
Get image buffer.
Definition at line 212 of file shm_image.cpp.
References fawkes::SharedMemory::_memptr.
Referenced by firevision::SharedMemoryCamera::buffer(), firevision::SharedMemoryCamera::capture(), firevision::FuseImageContent::FuseImageContent(), FvRetrieverThread::loop(), and MiniImageProducer::produce().
void firevision::SharedMemoryImageBuffer::capture_time | ( | long int * | sec, | |
long int * | usec | |||
) | const |
Get the time when the image was captured.
sec | upon return contains the seconds part of the time | |
usec | upon return contains the micro seconds part of the time |
Definition at line 162 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
Time firevision::SharedMemoryImageBuffer::capture_time | ( | ) | const |
Get the time when the image was captured.
Definition at line 172 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
Referenced by firevision::SharedMemoryCamera::capture(), and firevision::FuseImageContent::FuseImageContent().
bool firevision::SharedMemoryImageBuffer::circle_found | ( | ) | const |
Check if circle was found .
Definition at line 460 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::flag_circle_found.
unsigned int firevision::SharedMemoryImageBuffer::circle_radius | ( | ) | const |
Get circle radius.
Definition at line 312 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_radius.
int firevision::SharedMemoryImageBuffer::circle_x | ( | ) | const |
Get circle X.
Definition at line 292 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_x.
int firevision::SharedMemoryImageBuffer::circle_y | ( | ) | const |
Get circle Y.
Definition at line 302 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_y.
void firevision::SharedMemoryImageBuffer::cleanup | ( | bool | use_lister = true |
) | [static] |
Erase all shared memory segments that contain FireVision images.
use_lister | if true a lister is used to print the shared memory segments to stdout while cleaning up. |
Definition at line 485 of file shm_image.cpp.
colorspace_t firevision::SharedMemoryImageBuffer::colorspace | ( | ) | const |
Get color space.
Definition at line 222 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::colorspace.
Referenced by firevision::SharedMemoryCamera::buffer_size(), firevision::SharedMemoryCamera::colorspace(), and firevision::FuseImageContent::FuseImageContent().
bool firevision::SharedMemoryImageBuffer::exists | ( | const char * | image_id | ) | [static] |
Check image availability.
image_id | image ID to check |
Definition at line 506 of file shm_image.cpp.
References firevision::CS_UNKNOWN.
unsigned int firevision::SharedMemoryImageBuffer::height | ( | ) | const |
Get image height.
Definition at line 242 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::height.
Referenced by firevision::SharedMemoryCamera::buffer_size(), firevision::FuseImageContent::FuseImageContent(), MiniImageProducer::MiniImageProducer(), firevision::SharedMemoryCamera::pixel_height(), and MiniImageProducer::produce().
const char * firevision::SharedMemoryImageBuffer::image_id | ( | ) | const |
Get Image ID.
Definition at line 151 of file shm_image.cpp.
Referenced by firevision::FuseImageContent::FuseImageContent().
void firevision::SharedMemoryImageBuffer::list | ( | ) | [static] |
List all shared memory segments that contain a FireVision image.
Definition at line 468 of file shm_image.cpp.
unsigned int firevision::SharedMemoryImageBuffer::roi_height | ( | ) | const |
Get ROI height.
Definition at line 282 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_height.
unsigned int firevision::SharedMemoryImageBuffer::roi_width | ( | ) | const |
Get ROI width.
Definition at line 272 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_width.
unsigned int firevision::SharedMemoryImageBuffer::roi_x | ( | ) | const |
Get ROI X.
Definition at line 252 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_x.
unsigned int firevision::SharedMemoryImageBuffer::roi_y | ( | ) | const |
Get ROI Y.
Definition at line 262 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_y.
void firevision::SharedMemoryImageBuffer::set_capture_time | ( | long int | sec, | |
long int | usec | |||
) |
Set the capture time.
sec | seconds part of capture time | |
usec | microseconds part of capture time |
Definition at line 198 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
void firevision::SharedMemoryImageBuffer::set_capture_time | ( | fawkes::Time * | time | ) |
Set the capture time.
time | capture time |
Definition at line 182 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, firevision::SharedMemoryImageBuffer_header_t::capture_time_usec, and fawkes::Time::get_timeval().
Referenced by FvRetrieverThread::loop().
void firevision::SharedMemoryImageBuffer::set_circle | ( | int | x, | |
int | y, | |||
unsigned int | r | |||
) |
Set circle data.
x | circle X | |
y | circle Y | |
r | circle radius |
Definition at line 435 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::circle_radius, firevision::SharedMemoryImageBuffer_header_t::circle_x, and firevision::SharedMemoryImageBuffer_header_t::circle_y.
void firevision::SharedMemoryImageBuffer::set_circle_found | ( | bool | found | ) |
Set circle found.
found | true if circle found |
Definition at line 450 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::flag_circle_found.
void firevision::SharedMemoryImageBuffer::set_circle_radius | ( | unsigned int | circle_radius | ) |
Set circle radius.
circle_radius | new circle radius |
Definition at line 420 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::circle_radius.
void firevision::SharedMemoryImageBuffer::set_circle_x | ( | int | circle_x | ) |
Set circle X.
circle_x | new circle X |
Definition at line 394 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::circle_x.
void firevision::SharedMemoryImageBuffer::set_circle_y | ( | int | circle_y | ) |
Set circle Y.
circle_y | new circle Y |
Definition at line 407 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::circle_y.
bool firevision::SharedMemoryImageBuffer::set_image_id | ( | const char * | image_id | ) |
Set image number.
This will close the currently opened image and will try to open the new image. This operation should be avoided.
image_id | new image ID |
Definition at line 135 of file shm_image.cpp.
References fawkes::SharedMemory::_memptr, fawkes::SharedMemory::attach(), fawkes::SharedMemory::free(), firevision::SharedMemoryImageBufferHeader::raw_header(), and firevision::SharedMemoryImageBufferHeader::set_image_id().
void firevision::SharedMemoryImageBuffer::set_roi | ( | unsigned int | roi_x, | |
unsigned int | roi_y, | |||
unsigned int | roi_w, | |||
unsigned int | roi_h | |||
) |
Set ROI data.
Definition at line 377 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::roi_height, firevision::SharedMemoryImageBuffer_header_t::roi_width, firevision::SharedMemoryImageBuffer_header_t::roi_x, and firevision::SharedMemoryImageBuffer_header_t::roi_y.
void firevision::SharedMemoryImageBuffer::set_roi_height | ( | unsigned int | roi_h | ) |
Set ROI height.
roi_h | new ROI height |
Definition at line 361 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_height.
void firevision::SharedMemoryImageBuffer::set_roi_width | ( | unsigned int | roi_w | ) |
Set ROI width.
roi_w | new ROI width |
Definition at line 348 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_width.
void firevision::SharedMemoryImageBuffer::set_roi_x | ( | unsigned int | roi_x | ) |
Set ROI X.
roi_x | new ROI X |
Definition at line 322 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_x.
void firevision::SharedMemoryImageBuffer::set_roi_y | ( | unsigned int | roi_y | ) |
Set ROI Y.
roi_y | new ROI Y |
Definition at line 335 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_y.
unsigned int firevision::SharedMemoryImageBuffer::width | ( | ) | const |
Get image width.
Definition at line 232 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::width.
Referenced by firevision::SharedMemoryCamera::buffer_size(), firevision::FuseImageContent::FuseImageContent(), MiniImageProducer::MiniImageProducer(), firevision::SharedMemoryCamera::pixel_width(), and MiniImageProducer::produce().
void firevision::SharedMemoryImageBuffer::wipe | ( | const char * | image_id | ) | [static] |
Erase a specific shared memory segment that contains an image.
image_id | ID of image to wipe |
Definition at line 521 of file shm_image.cpp.
References firevision::CS_UNKNOWN.