RawCamBehavior Class Reference#include <RawCamBehavior.h>
Inheritance diagram for RawCamBehavior:
[legend]List of all members.
Detailed Description
Forwards images from camera over wireless.
The format used for serialization is basically defined by the subclass of FilterBankGenerator being used. I suggest looking at that classes's documentation to determine the format used.
However, RawCamBehavior will add a few fields at the beginning of each packet to assist in processing the image stream.
I emphasize: beginning of each Vision packet, before the FilterBankGenerator header.
- <
string:"TekkotsuImage"> - <
Config::vision_config::encoding_t : rawcam_encoding> (expect single or multiple channels, 0 means color (3 channels), 1 means intensity (1 channel)) - <
Config::vision_config::compression_t : rawcam_compression> (0==none, 1==jpeg, 2==rle) - <
unsigned int: width> (this is the width of the largest channel - note different channels can be sent at different resolutions! Provides cheap "compression" of chromaticity channels) - <
unsigned int: height> (similarly, height of largest channel) - <
unsigned int: timestamp> (time image was taken, milliseconds since boot) - <
unsigned int: framenumber> (incremented for each frame, so we can tell if/when we drop one)
This is exactly the same protocol that is followed by the SegCamBehavior as well - the same code can parse either stream.
Definition at line 31 of file RawCamBehavior.h.
|
Public Member Functions |
| RawCamBehavior () |
| constructor
|
virtual void | DoStart () |
| By default, merely adds to the reference counter (through AddReference()); Note you should still call this from your overriding methods.
|
virtual void | DoStop () |
| By default, subtracts from the reference counter (RemoveReference()), and thus may deletex if zero; Don't forget to still call this when you override this; Warning: call this at the end of your DoStop(), not beginning (it might delete this ).
|
virtual void | processEvent (const EventBase &e) |
| By defining here, allows you to get away with not supplying a processEvent() function for the EventListener interface. By default, does nothing.
|
virtual std::string | getName () const |
| Identifies the behavior in menus and such.
|
Static Public Member Functions |
std::string | getClassDescription () |
| Gives a short description of what this class of behaviors does... you should override this (but don't have to).
|
Static Public Attributes |
const unsigned int | TCP_WIRELESS_BUFFER_SIZE = 200000 |
| 200000 bytes for use up to 416x320 + 2*208x160 (double res Y, full res UV on ERS-7)
|
const unsigned int | UDP_WIRELESS_BUFFER_SIZE = 64*1024 |
| 64KB is the max udp packet size
|
Protected Member Functions |
bool | openPacket (FilterBankGenerator &fbkgen, unsigned int time, unsigned int layer) |
| opens a new packet, writes header info; returns true if open, false if otherwise open (check cur==NULL for error)
|
bool | writeColor (const FilterBankEvent &fbke) |
| writes a color image
|
bool | writeSingleChannel (const FilterBankEvent &fbke) |
| writes a single channel
|
void | closePacket () |
| closes and sends a packet, does nothing if no packet open
|
Protected Attributes |
Socket * | visRaw |
| socket for sending the image stream
|
char * | packet |
| point to the current buffer being prepared to be sent
|
char * | cur |
| current location within that buffer
|
unsigned int | avail |
| the number of bytes remaining in the buffer
|
unsigned int | max_buf |
| the buffer size requested from Wireless when the socket was allocated
|
Private Member Functions |
| RawCamBehavior (const RawCamBehavior &) |
| don't call
|
RawCamBehavior & | operator= (const RawCamBehavior &) |
| don't call
|
Constructor & Destructor Documentation
RawCamBehavior::RawCamBehavior |
( |
|
) |
|
|
Member Function Documentation
void RawCamBehavior::closePacket |
( |
|
) |
[protected] |
|
void RawCamBehavior::DoStart |
( |
|
) |
[virtual] |
|
void RawCamBehavior::DoStop |
( |
|
) |
[virtual] |
|
|
By default, subtracts from the reference counter (RemoveReference()), and thus may deletex if zero; Don't forget to still call this when you override this; Warning: call this at the end of your DoStop(), not beginning (it might delete this ).
Reimplemented from BehaviorBase.
Definition at line 42 of file RawCamBehavior.cc. |
std::string RawCamBehavior::getClassDescription |
( |
|
) |
[inline, static] |
|
|
Gives a short description of what this class of behaviors does... you should override this (but don't have to).
Reimplemented from BehaviorBase.
Definition at line 47 of file RawCamBehavior.h. |
virtual std::string RawCamBehavior::getName |
( |
|
) |
const [inline, virtual] |
|
bool RawCamBehavior::openPacket |
( |
FilterBankGenerator & |
fbkgen, |
|
|
unsigned int |
time, |
|
|
unsigned int |
layer |
|
) |
[protected] |
|
|
opens a new packet, writes header info; returns true if open, false if otherwise open (check cur==NULL for error)
see the class documentation for RawCamBehavior for the protocol documentation
Definition at line 74 of file RawCamBehavior.cc.
Referenced by writeColor(), and writeSingleChannel(). |
void RawCamBehavior::processEvent |
( |
const EventBase & |
e |
) |
[virtual] |
|
bool RawCamBehavior::writeColor |
( |
const FilterBankEvent & |
fbke |
) |
[protected] |
|
bool RawCamBehavior::writeSingleChannel |
( |
const FilterBankEvent & |
fbke |
) |
[protected] |
|
Member Data Documentation
|
200000 bytes for use up to 416x320 + 2*208x160 (double res Y, full res UV on ERS-7)
Definition at line 36 of file RawCamBehavior.h. |
The documentation for this class was generated from the following files:
|