Fawkes API  Fawkes Development Version
firevision::ViscaControl Class Reference

Visca control protocol implementation over a serial line. More...

#include <>>

List of all members.

Public Member Functions

 ViscaControl (bool blocking=true)
 Constructor.
void open (const char *port)
 Open serial port.
void close ()
 Close port.
void set_address (unsigned int num_cameras)
 Set addresses of cameras.
void clear ()
 Clear.
void send ()
 Send outbound queue.
void recv (unsigned int max_wait_ms=10)
 Receive data.
void recv_ack (unsigned int *socket=NULL)
 Receive ACK packet.
void send_with_reply ()
 Send and wait for reply, blocking.
void send_nonblocking (unsigned int *socket=NULL)
 Send non-blocking.
void cancel_command (unsigned int socket)
 Cancel a running command.
bool data_available ()
 Check data availability.
void process ()
 Process incoming data.
void resetPanTilt ()
 Reset pan/tilt.
void startGetPanTilt ()
 Query for pan/tilt but do not wait until finished This will send an inquire to the camera that asks for pan/tilt values but it does not wait for the data! A later call to getPanTilt will then block and wait until the results arrive.
void setPanTilt (int pan, int tilt)
 Set pan tilt.
void getPanTilt (int *pan, int *tilt)
 Get pan and tilt values.
void setPanTiltLimit (int pan_left, int pan_right, int tilt_up, int tilt_down)
 Set pan tilt limit.
void resetPanTiltLimit ()
 Reset pan/tilt limit.
void resetZoom ()
 Reset zoom.
void setZoom (unsigned int zoom)
 Set zoom.
void getZoom (unsigned int *zoom)
 Get zoom.
void setZoomSpeedTele (unsigned int speed)
 Set zoom speed in tele.
void setZoomSpeedWide (unsigned int speed)
 Set zoom speed in wide angle.
void setZoomDigitalEnabled (bool enabled)
 Enable or disable digital zoome.
void resetEffect ()
 Reset effects.
void applyEffect (unsigned char effect)
 Apply effect.
void applyEffectPastel ()
 Apply pastel effect.
void applyEffectNegArt ()
 Apply negative art effect.
void applyEffectSepia ()
 Apply sepia effect.
void applyEffectBnW ()
 Apply B/W effect.
void applyEffectSolarize ()
 Apply solarize effect.
void applyEffectMosaic ()
 Apply mosaic effect.
void applyEffectSlim ()
 Apply slim effect.
void applyEffectStretch ()
 Apply stretch effect.
unsigned int getWhiteBalanceMode ()
 Get white balance mode.

Static Public Attributes

static const unsigned int VISCA_WHITEBLANCE_AUTO = VISCA_WB_AUTO
 Automatic white balance.
static const unsigned int VISCA_WHITEBALANCE_INDOOR = VISCA_WB_INDOOR
 Indoor white balance preset.
static const unsigned int VISCA_WHITEBALANCE_OUTDOOR = VISCA_WB_OUTDOOR
 Outdoor white balance preset.
static const unsigned int VISCA_WHITEBALANCE_ONE_PUSH = VISCA_WB_ONE_PUSH
 One push white balance preset.
static const unsigned int VISCA_WHITEBALANCE_ATW = VISCA_WB_ATW
 ATW white balance preset.
static const unsigned int VISCA_WHITEBALANCE_MANUAL = VISCA_WB_MANUAL
 Manual white balance.

Detailed Description

Visca control protocol implementation over a serial line.

Author:
Tim Niemueller

Constructor & Destructor Documentation

firevision::ViscaControl::ViscaControl ( bool  blocking = true)

Constructor.

Parameters:
blockingif true, operate in blocking mode, false to operate in non-blocking mode.

Definition at line 94 of file visca.cpp.


Member Function Documentation

void firevision::ViscaControl::applyEffect ( unsigned char  filter)
void firevision::ViscaControl::applyEffectBnW ( )

Apply B/W effect.

Definition at line 1047 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectMosaic ( )

Apply mosaic effect.

Definition at line 1073 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectNegArt ( )

Apply negative art effect.

Definition at line 1021 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectPastel ( )

Apply pastel effect.

Definition at line 1008 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectSepia ( )

Apply sepia effect.

Definition at line 1034 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectSlim ( )

Apply slim effect.

Definition at line 1086 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectSolarize ( )

Apply solarize effect.

Definition at line 1060 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::applyEffectStretch ( )

Apply stretch effect.

Definition at line 1099 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::cancel_command ( unsigned int  socket)

Cancel a running command.

Parameters:
socketsocket that the command was send on

Definition at line 482 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::clear ( )

Clear.

Definition at line 227 of file visca.cpp.

References send(), recv(), and fawkes::Exception::append().

void firevision::ViscaControl::close ( )

Close port.

Definition at line 192 of file visca.cpp.

Referenced by open().

bool firevision::ViscaControl::data_available ( )

Check data availability.

Returns:
true if data is available, false otherwise

Definition at line 276 of file visca.cpp.

Referenced by process().

void firevision::ViscaControl::getPanTilt ( int *  pan,
int *  tilt 
)

Get pan and tilt values.

If you used startGetPanTilt() to initiate the query the result is received and returned, otherwise a request is sent and the method blocks until the answer has been received.

Parameters:
pancontains pan upon return
tiltcontains tilt upon return

Definition at line 615 of file visca.cpp.

References recv(), send(), and send_with_reply().

unsigned int firevision::ViscaControl::getWhiteBalanceMode ( )

Get white balance mode.

Returns:
white balance mode

Definition at line 1114 of file visca.cpp.

References send_with_reply(), fawkes::Exception::append(), and recv().

void firevision::ViscaControl::getZoom ( unsigned int *  zoom)

Get zoom.

Parameters:
zoomcontains zoom upon return.

Definition at line 916 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::open ( const char *  port)

Open serial port.

Parameters:
portport to open.

Definition at line 111 of file visca.cpp.

References close().

void firevision::ViscaControl::process ( )

Process incoming data.

Definition at line 508 of file visca.cpp.

References data_available(), and recv().

void firevision::ViscaControl::recv ( unsigned int  max_wait_ms = 10)

Receive data.

Parameters:
max_wait_msmaximum wait time in miliseconds

Definition at line 288 of file visca.cpp.

References fawkes::Exception::append().

Referenced by set_address(), clear(), send_with_reply(), process(), getPanTilt(), and getWhiteBalanceMode().

void firevision::ViscaControl::recv_ack ( unsigned int *  socket = NULL)

Receive ACK packet.

Parameters:
socketcontains the socket that the ACK was received on upon return

Definition at line 325 of file visca.cpp.

References fawkes::Exception::append().

Referenced by send_nonblocking().

void firevision::ViscaControl::resetEffect ( )

Reset effects.

Definition at line 995 of file visca.cpp.

References applyEffect(), and fawkes::Exception::append().

void firevision::ViscaControl::resetPanTilt ( )

Reset pan/tilt.

Definition at line 805 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::resetPanTiltLimit ( )

Reset pan/tilt limit.

Definition at line 723 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::resetZoom ( )

Reset zoom.

Definition at line 823 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::send ( )

Send outbound queue.

Definition at line 248 of file visca.cpp.

Referenced by set_address(), clear(), send_nonblocking(), send_with_reply(), startGetPanTilt(), and getPanTilt().

void firevision::ViscaControl::send_nonblocking ( unsigned int *  socket = NULL)

Send non-blocking.

Does a non-blocking send.

Parameters:
socketthe socket that was used to send the request.

Definition at line 360 of file visca.cpp.

References send(), recv_ack(), and fawkes::Exception::append().

Referenced by setPanTilt().

void firevision::ViscaControl::send_with_reply ( )
void firevision::ViscaControl::set_address ( unsigned int  num_cameras)

Set addresses of cameras.

Parameters:
num_camerasnumber of cameras on bus

Definition at line 205 of file visca.cpp.

References send(), recv(), and fawkes::Exception::append().

void firevision::ViscaControl::setPanTilt ( int  pan,
int  tilt 
)

Set pan tilt.

Parameters:
panpan
tilttilt

Definition at line 530 of file visca.cpp.

References send_nonblocking(), send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::setPanTiltLimit ( int  pan_left,
int  pan_right,
int  tilt_up,
int  tilt_down 
)

Set pan tilt limit.

Parameters:
pan_leftmost left pan value
pan_rightmost right pan value
tilt_upmost up tilt value
tilt_downmost down tilt value

Definition at line 760 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::setZoom ( unsigned int  zoom)

Set zoom.

Parameters:
zoomzoom value

Definition at line 890 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::setZoomDigitalEnabled ( bool  enabled)

Enable or disable digital zoome.

Parameters:
enabledtrue to enable digital zoom, false to disable

Definition at line 951 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::setZoomSpeedTele ( unsigned int  speed)

Set zoom speed in tele.

Parameters:
speedspeed

Definition at line 844 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::setZoomSpeedWide ( unsigned int  speed)

Set zoom speed in wide angle.

Parameters:
speedspeed

Definition at line 867 of file visca.cpp.

References send_with_reply(), and fawkes::Exception::append().

void firevision::ViscaControl::startGetPanTilt ( )

Query for pan/tilt but do not wait until finished This will send an inquire to the camera that asks for pan/tilt values but it does not wait for the data! A later call to getPanTilt will then block and wait until the results arrive.

Initiate a pan/tilt request, but do not wait for the reply.

Not that you can _not_ run another inquire (get*) method until this call has finished! You will get VISCA_E_INQRUNNING as error message.

Definition at line 586 of file visca.cpp.

References send(), and fawkes::Exception::append().


Member Data Documentation

const unsigned int firevision::ViscaControl::VISCA_WHITEBALANCE_ATW = VISCA_WB_ATW [static]

ATW white balance preset.

Definition at line 63 of file visca.h.

const unsigned int firevision::ViscaControl::VISCA_WHITEBALANCE_INDOOR = VISCA_WB_INDOOR [static]

Indoor white balance preset.

Definition at line 60 of file visca.h.

const unsigned int firevision::ViscaControl::VISCA_WHITEBALANCE_MANUAL = VISCA_WB_MANUAL [static]

Manual white balance.

Definition at line 64 of file visca.h.

const unsigned int firevision::ViscaControl::VISCA_WHITEBALANCE_ONE_PUSH = VISCA_WB_ONE_PUSH [static]

One push white balance preset.

Definition at line 62 of file visca.h.

const unsigned int firevision::ViscaControl::VISCA_WHITEBALANCE_OUTDOOR = VISCA_WB_OUTDOOR [static]

Outdoor white balance preset.

Definition at line 61 of file visca.h.

const unsigned int firevision::ViscaControl::VISCA_WHITEBLANCE_AUTO = VISCA_WB_AUTO [static]

Automatic white balance.

Definition at line 59 of file visca.h.


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