Public Member Functions | Static Public Attributes

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

Definition at line 56 of file visca.h.


Constructor & Destructor Documentation

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

Constructor.

Parameters:
blocking if 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 fawkes::Exception::append(), and applyEffect().

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectMosaic (  ) 

Apply mosaic effect.

Definition at line 1073 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectNegArt (  ) 

Apply negative art effect.

Definition at line 1021 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectPastel (  ) 

Apply pastel effect.

Definition at line 1008 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectSepia (  ) 

Apply sepia effect.

Definition at line 1034 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectSlim (  ) 

Apply slim effect.

Definition at line 1086 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectSolarize (  ) 

Apply solarize effect.

Definition at line 1060 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

void firevision::ViscaControl::applyEffectStretch (  ) 

Apply stretch effect.

Definition at line 1099 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_effect().

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

Cancel a running command.

Parameters:
socket socket that the command was send on

Definition at line 482 of file visca.cpp.

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

void firevision::ViscaControl::clear (  ) 

Clear.

Definition at line 227 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::open().

void firevision::ViscaControl::close (  ) 

Close port.

Definition at line 192 of file visca.cpp.

Referenced by firevision::SonyEviD100PControl::close(), open(), and firevision::SonyEviD100PControl::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:
pan contains pan upon return
tilt contains tilt upon return

Definition at line 615 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::pan(), firevision::SonyEviD100PControl::pan_tilt(), firevision::SonyEviD100PControl::pan_tilt_rad(), and firevision::SonyEviD100PControl::tilt().

unsigned int firevision::ViscaControl::getWhiteBalanceMode (  ) 

Get white balance mode.

Returns:
white balance mode

Definition at line 1114 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::white_balance_mode().

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

Get zoom.

Parameters:
zoom contains zoom upon return.

Definition at line 916 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::zoom().

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

Open serial port.

Parameters:
port port to open.

Definition at line 111 of file visca.cpp.

References close().

Referenced by firevision::SonyEviD100PControl::open().

void firevision::ViscaControl::process (  ) 

Process incoming data.

Definition at line 508 of file visca.cpp.

References data_available(), and recv().

Referenced by firevision::SonyEviD100PControl::process_pantilt().

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

Receive data.

Parameters:
max_wait_ms maximum wait time in miliseconds

Definition at line 288 of file visca.cpp.

References fawkes::Exception::append().

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

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

Receive ACK packet.

Parameters:
socket contains 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 (  ) 
void firevision::ViscaControl::resetPanTilt (  ) 

Reset pan/tilt.

Definition at line 805 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::reset_pan_tilt().

void firevision::ViscaControl::resetPanTiltLimit (  ) 

Reset pan/tilt limit.

Definition at line 723 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::reset_pan_tilt_limit().

void firevision::ViscaControl::resetZoom (  ) 

Reset zoom.

Definition at line 823 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::reset_zoom().

void firevision::ViscaControl::send (  ) 

Send outbound queue.

Definition at line 248 of file visca.cpp.

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

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

Send non-blocking.

Does a non-blocking send.

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

Definition at line 360 of file visca.cpp.

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

Referenced by setPanTilt().

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

Set addresses of cameras.

Parameters:
num_cameras number of cameras on bus

Definition at line 205 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::open().

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

Set pan tilt limit.

Parameters:
pan_left most left pan value
pan_right most right pan value
tilt_up most up tilt value
tilt_down most down tilt value

Definition at line 760 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_pan_tilt_limit().

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

Set zoom.

Parameters:
zoom zoom value

Definition at line 890 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_zoom().

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

Enable or disable digital zoome.

Parameters:
enabled true to enable digital zoom, false to disable

Definition at line 951 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_zoom_digital_enabled().

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

Set zoom speed in tele.

Parameters:
speed speed

Definition at line 844 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_zoom_speed_tele().

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

Set zoom speed in wide angle.

Parameters:
speed speed

Definition at line 867 of file visca.cpp.

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

Referenced by firevision::SonyEviD100PControl::set_zoom_speed_wide().

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 fawkes::Exception::append(), and send().

Referenced by firevision::SonyEviD100PControl::start_get_pan_tilt().


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: