|
Fawkes API
Fawkes Development Version
|
Visca control protocol implementation over a serial line. More...
#include "visca.h"

Public Member Functions | |
| Visca (const char *device_file, unsigned int def_timeout_ms=10, bool blocking=true) | |
| Constructor. More... | |
| virtual | ~Visca () |
| Destructor. More... | |
| void | open () |
| Open serial port. More... | |
| void | close () |
| Close port. More... | |
| void | set_address () |
| Set addresses of cameras. More... | |
| void | clear () |
| Clear command buffers. More... | |
| void | set_power (bool powered) |
| Set power state. More... | |
| bool | is_powered () |
| Check if camera is powered. More... | |
| void | send () |
| Send outbound queue. More... | |
| void | recv (unsigned int timeout_ms=0xFFFFFFFF) |
| Receive data. More... | |
| void | recv_ack (unsigned int *socket=NULL) |
| Receive ACK packet. More... | |
| void | send_with_reply () |
| Send and wait for reply, blocking. More... | |
| void | send_nonblocking (unsigned int *socket=NULL) |
| Send non-blocking. More... | |
| void | cancel_command (unsigned int socket) |
| Cancel a running command. More... | |
| bool | data_available () |
| Check data availability. More... | |
| void | process () |
| Process incoming data. More... | |
| void | reset_pan_tilt () |
| Reset pan/tilt. More... | |
| void | start_get_pan_tilt () |
| 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. More... | |
| void | set_pan_tilt (int pan, int tilt) |
| Set pan tilt. More... | |
| void | get_pan_tilt (int &pan, int &tilt) |
| Get pan and tilt values. More... | |
| void | set_pan_tilt_limit (int pan_left, int pan_right, int tilt_up, int tilt_down) |
| Set pan tilt limit. More... | |
| void | reset_pan_tilt_limit () |
| Reset pan/tilt limit. More... | |
| void | set_pan_tilt_speed (unsigned char pan_speed, unsigned char tilt_speed) |
| Set pan/tilt speed. More... | |
| void | get_pan_tilt_speed (unsigned char &pan_speed, unsigned char &tilt_speed) |
| Get pan/tilt speed. More... | |
| bool | is_nonblocking_finished (unsigned int item) const |
| Check if a non-blocking operation has been finished. More... | |
| void | reset_zoom () |
| Reset zoom. More... | |
| void | set_zoom (unsigned int zoom) |
| Set zoom. More... | |
| void | get_zoom (unsigned int &zoom) |
| Get zoom. More... | |
| void | set_zoom_speed_tele (unsigned int speed) |
| Set zoom speed in tele. More... | |
| void | set_zoom_speed_wide (unsigned int speed) |
| Set zoom speed in wide angle. More... | |
| void | set_zoom_digital_enabled (bool enabled) |
| Enable or disable digital zoome. More... | |
| void | reset_effect () |
| Reset effects. More... | |
| void | apply_effect (unsigned char effect) |
| Apply effect. More... | |
| void | apply_effect_pastel () |
| Apply pastel effect. More... | |
| void | apply_effect_neg_art () |
| Apply negative art effect. More... | |
| void | apply_effect_sepia () |
| Apply sepia effect. More... | |
| void | apply_effect_bnw () |
| Apply B/W effect. More... | |
| void | apply_effect_solarize () |
| Apply solarize effect. More... | |
| void | apply_effect_mosaic () |
| Apply mosaic effect. More... | |
| void | apply_effect_slim () |
| Apply slim effect. More... | |
| void | apply_effect_stretch () |
| Apply stretch effect. More... | |
| unsigned int | get_white_balance_mode () |
| Get white balance mode. More... | |
| bool | get_mirror () |
| Get mirror sate. More... | |
| void | set_mirror (bool mirror) |
| Sett mirror sate. More... | |
Static Public Attributes | |
| static const unsigned int | VISCA_WHITEBLANCE_AUTO = VISCA_WB_AUTO |
| Automatic white balance. More... | |
| static const unsigned int | VISCA_WHITEBALANCE_INDOOR = VISCA_WB_INDOOR |
| Indoor white balance preset. More... | |
| static const unsigned int | VISCA_WHITEBALANCE_OUTDOOR = VISCA_WB_OUTDOOR |
| Outdoor white balance preset. More... | |
| static const unsigned int | VISCA_WHITEBALANCE_ONE_PUSH = VISCA_WB_ONE_PUSH |
| One push white balance preset. More... | |
| static const unsigned int | VISCA_WHITEBALANCE_ATW = VISCA_WB_ATW |
| ATW white balance preset. More... | |
| static const unsigned int | VISCA_WHITEBALANCE_MANUAL = VISCA_WB_MANUAL |
| Manual white balance. More... | |
| static const unsigned int | NONBLOCKING_PANTILT = 0 |
| Non-blocking pan/tilt item. More... | |
| static const unsigned int | NONBLOCKING_ZOOM = 1 |
| Non-blocking zoom item. More... | |
| static const unsigned int | NONBLOCKING_NUM = 2 |
| Number of non-blocking items. More... | |
| static const unsigned int | MAX_PAN_SPEED = 0x18 |
| Number of non-blocking items. More... | |
| static const unsigned int | MAX_TILT_SPEED = 0x14 |
| Number of non-blocking items. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_WIDE = 0x0000 |
| Zoom value: wide. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_1X = 0x0E6D |
| Zoom value: 1x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_2X = 0x188E |
| Zoom value: 2x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_3X = 0x2507 |
| Zoom value: 3x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_4X = 0x2B82 |
| Zoom value: 4x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_5X = 0x3130 |
| Zoom value: 5x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_6X = 0x352E |
| Zoom value: 6x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_7X = 0x385D |
| Zoom value: 7x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_8X = 0x3B48 |
| Zoom value: 8x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_9X = 0x3E01 |
| Zoom value: 9x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_10X = 0x4000 |
| Zoom value: 10x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_DIG_20X = 0x5000 |
| Zoom value: 20x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_DIG_30X = 0x6000 |
| Zoom value: 30x. More... | |
| static const unsigned int | VISCA_ZOOM_VALUE_DIG_40X = 0x7000 |
| Zoom value: 40x. More... | |
| Visca::Visca | ( | const char * | device_file, |
| unsigned int | def_timeout_ms = 10, |
||
| bool | blocking = true |
||
| ) |
Constructor.
| device_file | serial device file (e.g. /dev/ttyUSB0) |
| def_timeout_ms | default timeout for read operations applied if no explicit timeout is given. |
| blocking | if true, setting the pan/tilt values will only cause sending the request, you need to call process() when there is time to process and handle incoming messages. |
Definition at line 104 of file visca.cpp.
References clear(), MAX_PAN_SPEED, MAX_TILT_SPEED, NONBLOCKING_NUM, open(), and set_address().
| void Visca::apply_effect | ( | unsigned char | filter | ) |
Apply effect.
| filter | filter |
Definition at line 1074 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
Referenced by apply_effect_bnw(), apply_effect_mosaic(), apply_effect_neg_art(), apply_effect_pastel(), apply_effect_sepia(), apply_effect_slim(), apply_effect_solarize(), apply_effect_stretch(), and reset_effect().
| void Visca::apply_effect_bnw | ( | ) |
Apply B/W effect.
Definition at line 1140 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_mosaic | ( | ) |
Apply mosaic effect.
Definition at line 1164 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_neg_art | ( | ) |
Apply negative art effect.
Definition at line 1116 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_pastel | ( | ) |
Apply pastel effect.
Definition at line 1104 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_sepia | ( | ) |
Apply sepia effect.
Definition at line 1128 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_slim | ( | ) |
Apply slim effect.
Definition at line 1176 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_solarize | ( | ) |
Apply solarize effect.
Definition at line 1152 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::apply_effect_stretch | ( | ) |
Apply stretch effect.
Definition at line 1188 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::cancel_command | ( | unsigned int | socket | ) |
Cancel a running command.
| socket | socket that the command was send on |
Definition at line 519 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::clear | ( | void | ) |
| void Visca::close | ( | ) |
| bool Visca::data_available | ( | ) |
| bool Visca::get_mirror | ( | ) |
Get mirror sate.
Definition at line 1260 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::get_pan_tilt | ( | 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.
| pan | contains pan upon return |
| tilt | contains tilt upon return |
Definition at line 720 of file visca.cpp.
References recv(), send(), and send_with_reply().
Referenced by SonyEviD100PVisca::get_pan_tilt_rad().
| void Visca::get_pan_tilt_speed | ( | unsigned char & | pan_speed, |
| unsigned char & | tilt_speed | ||
| ) |
Get pan/tilt speed.
| pan_speed | upon return contains pan speed index |
| tilt_speed | upon return contains tilt speed index |
Definition at line 684 of file visca.cpp.
Referenced by SonyEviD100PVisca::get_speed_radsec().
| unsigned int Visca::get_white_balance_mode | ( | ) |
Get white balance mode.
Definition at line 1202 of file visca.cpp.
References fawkes::Exception::append(), recv(), and send_with_reply().
| void Visca::get_zoom | ( | unsigned int & | zoom | ) |
Get zoom.
| zoom | contains zoom upon return. |
Definition at line 1016 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| bool Visca::is_nonblocking_finished | ( | unsigned int | item | ) | const |
Check if a non-blocking operation has been finished.
| item | the non-blocking item to check |
Definition at line 403 of file visca.cpp.
References NONBLOCKING_NUM.
| bool Visca::is_powered | ( | ) |
Check if camera is powered.
Definition at line 582 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
Referenced by PanTiltSonyEviD100PThread::init().
| void Visca::open | ( | ) |
| void Visca::process | ( | ) |
Process incoming data.
Definition at line 543 of file visca.cpp.
References data_available(), and recv().
| void Visca::recv | ( | unsigned int | timeout_ms = 0xFFFFFFFF | ) |
Receive data.
| timeout_ms | read timeout in miliseconds |
Definition at line 302 of file visca.cpp.
References fawkes::Exception::append().
Referenced by clear(), get_pan_tilt(), get_white_balance_mode(), process(), send_with_reply(), and set_address().
| void Visca::recv_ack | ( | unsigned int * | socket = NULL | ) |
Receive ACK packet.
| socket | contains the socket that the ACK was received on upon return |
Definition at line 338 of file visca.cpp.
References fawkes::Exception::append().
Referenced by send_nonblocking(), and send_with_reply().
| void Visca::reset_effect | ( | ) |
Reset effects.
Definition at line 1092 of file visca.cpp.
References fawkes::Exception::append(), and apply_effect().
| void Visca::reset_pan_tilt | ( | ) |
Reset pan/tilt.
Definition at line 905 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::reset_pan_tilt_limit | ( | ) |
Reset pan/tilt limit.
Definition at line 825 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::reset_zoom | ( | ) |
Reset zoom.
Definition at line 922 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::send | ( | ) |
Send outbound queue.
Definition at line 263 of file visca.cpp.
Referenced by clear(), get_pan_tilt(), send_nonblocking(), send_with_reply(), set_address(), and start_get_pan_tilt().
| void Visca::send_nonblocking | ( | unsigned int * | socket = NULL | ) |
Send non-blocking.
Does a non-blocking send.
| socket | the socket that was used to send the request. |
Definition at line 370 of file visca.cpp.
References fawkes::Exception::append(), recv_ack(), and send().
Referenced by set_pan_tilt(), and set_zoom().
| void Visca::send_with_reply | ( | ) |
Send and wait for reply, blocking.
Definition at line 413 of file visca.cpp.
References fawkes::Exception::append(), recv(), recv_ack(), and send().
Referenced by apply_effect(), cancel_command(), get_mirror(), get_pan_tilt(), get_white_balance_mode(), get_zoom(), is_powered(), reset_pan_tilt(), reset_pan_tilt_limit(), reset_zoom(), set_mirror(), set_pan_tilt(), set_pan_tilt_limit(), set_power(), set_zoom(), set_zoom_digital_enabled(), set_zoom_speed_tele(), and set_zoom_speed_wide().
| void Visca::set_address | ( | ) |
| void Visca::set_mirror | ( | bool | mirror | ) |
Sett mirror sate.
| mirror | true to enable mirroring, false to disable |
Definition at line 1240 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
Referenced by PanTiltSonyEviD100PThread::init().
| void Visca::set_pan_tilt | ( | int | pan, |
| int | tilt | ||
| ) |
Set pan tilt.
| pan | pan |
| tilt | tilt |
Definition at line 610 of file visca.cpp.
References fawkes::Exception::append(), NONBLOCKING_PANTILT, send_nonblocking(), and send_with_reply().
Referenced by SonyEviD100PVisca::set_pan_tilt_rad().
| void Visca::set_pan_tilt_limit | ( | int | pan_left, |
| int | pan_right, | ||
| int | tilt_up, | ||
| int | tilt_down | ||
| ) |
Set pan tilt limit.
| 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 861 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::set_pan_tilt_speed | ( | unsigned char | pan_speed, |
| unsigned char | tilt_speed | ||
| ) |
Set pan/tilt speed.
| pan_speed | a value between 0 and MAX_PAN_SPEED |
| tilt_speed | a value between 0 and MAX_TILT_SPEED |
| Exception | thrown if desired pan or tilt speed is too high |
Definition at line 666 of file visca.cpp.
References MAX_PAN_SPEED, and MAX_TILT_SPEED.
Referenced by SonyEviD100PVisca::set_speed_radsec().
| void Visca::set_power | ( | bool | powered | ) |
Set power state.
| powered | true to power on, false to power off |
Definition at line 562 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
Referenced by PanTiltSonyEviD100PThread::finalize(), and PanTiltSonyEviD100PThread::init().
| void Visca::set_zoom | ( | unsigned int | zoom | ) |
Set zoom.
| zoom | zoom value |
Definition at line 986 of file visca.cpp.
References fawkes::Exception::append(), NONBLOCKING_ZOOM, send_nonblocking(), and send_with_reply().
| void Visca::set_zoom_digital_enabled | ( | bool | enabled | ) |
Enable or disable digital zoome.
| enabled | true to enable digital zoom, false to disable |
Definition at line 1050 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::set_zoom_speed_tele | ( | unsigned int | speed | ) |
Set zoom speed in tele.
| speed | speed |
Definition at line 942 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::set_zoom_speed_wide | ( | unsigned int | speed | ) |
Set zoom speed in wide angle.
| speed | speed |
Definition at line 964 of file visca.cpp.
References fawkes::Exception::append(), and send_with_reply().
| void Visca::start_get_pan_tilt | ( | ) |
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 692 of file visca.cpp.
References fawkes::Exception::append(), and send().
|
static |
Number of non-blocking items.
Definition at line 64 of file visca.h.
Referenced by set_pan_tilt_speed(), and Visca().
|
static |
Number of non-blocking items.
Definition at line 65 of file visca.h.
Referenced by set_pan_tilt_speed(), and Visca().
|
static |
Number of non-blocking items.
Definition at line 62 of file visca.h.
Referenced by is_nonblocking_finished(), and Visca().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |