#include <cams/control/sony_evid100p.h>
Inheritance diagram for firevision::SonyEviD100PControl:
Public Member Functions | |
SonyEviD100PControl (const CameraArgumentParser *cap) | |
Constructor. | |
SonyEviD100PControl (const char *tty_port) | |
Constructor. | |
virtual | ~SonyEviD100PControl () |
Destructor. | |
void | open () |
Open visca device. | |
void | close () |
Close Visca device. | |
void | process_pantilt () |
Process pan/tilt information. | |
bool | supports_pan () |
Check whether this controller supports panning. | |
bool | supports_tilt () |
Check whether this controller supports tilting. | |
void | set_pan (int pan) |
Set pan value. | |
void | set_tilt (int tilt) |
Set tilt value. | |
void | set_pan_tilt (int pan, int tilt) |
Set pan and tilt in one go. | |
void | set_pan_tilt_rad (float pan, float tilt) |
Set pan and tilt as float value. | |
int | pan () |
Get pan value. | |
int | tilt () |
Get tilt value. | |
void | start_get_pan_tilt () |
Start asynchronous fetch operation for pan and tilt values. | |
void | pan_tilt (int &pan, int &tilt) |
Get pan and tilt at the same time. | |
void | pan_tilt_rad (float &pan, float &tilt) |
Get pan and tilt at the same time in radiant. | |
int | min_pan () |
Get minimum pan value. | |
int | max_pan () |
Get maximum pan value. | |
int | min_tilt () |
Get minimum tilt value. | |
int | max_tilt () |
Get maximum tilt value. | |
void | reset_pan_tilt () |
Bring camera into home position. | |
void | set_pan_tilt_limit (int pan_left, int pan_right, int tilt_up, int tilt_down) |
Set pan/tilt limits. | |
void | reset_pan_tilt_limit () |
Reset pan/tilt limits. | |
void | reset_zoom () |
Reset zoom. | |
void | set_zoom (unsigned int zoom) |
Set new camera-specific zoom value. | |
unsigned int | zoom () |
Get current zoom value. | |
unsigned int | zoom_max () |
Maximum zoom value. | |
unsigned int | zoom_min () |
Minimum zoom value. | |
void | set_zoom_speed_tele (unsigned int speed) |
Set speed in tele range. | |
void | set_zoom_speed_wide (unsigned int speed) |
Set speed in wide range. | |
void | set_zoom_digital_enabled (bool enabled) |
Set if digital zoom may be used. | |
unsigned int | white_balance_mode () |
Get current white balance mode. | |
bool | supports_effect (unsigned int effect) |
Check if camera control supports desired effect. | |
void | set_effect (unsigned int effect) |
Enable effect. | |
unsigned int | effect () |
Current effect. | |
void | reset_effect () |
Reset effect. | |
Static Public Attributes | |
static const unsigned int | EFFECT_PASTEL = 1 |
Pastel effect. | |
static const unsigned int | EFFECT_NEGATIVE = 2 |
Negative effect. | |
static const unsigned int | EFFECT_SEPIA = 3 |
Sepia effect. | |
static const unsigned int | EFFECT_BW = 4 |
B/W effect. | |
static const unsigned int | EFFECT_SOLARIZE = 5 |
Solarize effect. | |
static const unsigned int | EFFECT_MOSAIC = 6 |
Mosaic effect. | |
static const unsigned int | EFFECT_SLIM = 7 |
Slim effect. | |
static const unsigned int | EFFECT_STRETCH = 8 |
Stretch effect. | |
static const int | MAX_PAN = 1440 |
Maximum pan. | |
static const int | MIN_PAN = -1439 |
Minimum pan. | |
static const int | MAX_TILT = 360 |
Max Tilt. | |
static const int | MIN_TILT = - 359 |
Min tilt . | |
static const float | MAX_PAN_DEG = 100.f |
Max pan in degrees. | |
static const float | MIN_PAN_DEG = -100.f |
Min pan in degrees. | |
static const float | MAX_TILT_DEG = 25.f |
Max tilt in degrees. | |
static const float | MIN_TILT_DEG = - 25.f |
Min tilt in degrees. | |
static const float | MAX_PAN_RAD = deg2rad(MAX_PAN_DEG) |
Max pan in rad. | |
static const float | MIN_PAN_RAD = deg2rad(MIN_PAN_DEG) |
Min pan in rad. | |
static const float | MAX_TILT_RAD = deg2rad(MAX_TILT_DEG) |
Max tilt in rad. | |
static const float | MIN_TILT_RAD = deg2rad(MIN_TILT_DEG) |
Min tilt in rad. | |
static const float | PAN_STEPS_PER_DEG = MAX_PAN / MAX_PAN_DEG |
Pan steps per degree. | |
static const float | TILT_STEPS_PER_DEG = MAX_TILT / MAX_TILT_DEG |
Tilt steps per degree. | |
static const float | PAN_STEPS_PER_RAD = MAX_PAN / MAX_PAN_RAD |
Pan steps per rad. | |
static const float | TILT_STEPS_PER_RAD = MAX_TILT / MAX_TILT_RAD |
Tilt steps per rad. |
Internally uses Visca.
Definition at line 39 of file sony_evid100p.h.
firevision::SonyEviD100PControl::SonyEviD100PControl | ( | const CameraArgumentParser * | cap | ) |
Constructor.
Uses camera argument parser to gather arguments. The ID that the camera argument parser returns is used as the serial port (like /dev/ttyS0).
cap | camera argument parser |
Definition at line 125 of file sony_evid100p.cpp.
References firevision::CameraArgumentParser::cam_id(), firevision::CameraControlEffect::EFFECT_NONE, and open().
firevision::SonyEviD100PControl::SonyEviD100PControl | ( | const char * | tty_port | ) |
Constructor.
tty_port | serial port (e.g. /dev/ttyS0) |
Definition at line 107 of file sony_evid100p.cpp.
References firevision::CameraControlEffect::EFFECT_NONE, and open().
firevision::SonyEviD100PControl::~SonyEviD100PControl | ( | ) | [virtual] |
void firevision::SonyEviD100PControl::close | ( | ) |
Close Visca device.
Definition at line 173 of file sony_evid100p.cpp.
References firevision::ViscaControl::close().
Referenced by ~SonyEviD100PControl().
unsigned int firevision::SonyEviD100PControl::effect | ( | ) | [virtual] |
Current effect.
Implements firevision::CameraControlEffect.
Definition at line 456 of file sony_evid100p.cpp.
int firevision::SonyEviD100PControl::max_pan | ( | ) | [virtual] |
Get maximum pan value.
Implements firevision::CameraControlPanTilt.
Definition at line 285 of file sony_evid100p.cpp.
References MAX_PAN.
int firevision::SonyEviD100PControl::max_tilt | ( | ) | [virtual] |
Get maximum tilt value.
Implements firevision::CameraControlPanTilt.
Definition at line 299 of file sony_evid100p.cpp.
References MAX_TILT.
int firevision::SonyEviD100PControl::min_pan | ( | ) | [virtual] |
Get minimum pan value.
Implements firevision::CameraControlPanTilt.
Definition at line 292 of file sony_evid100p.cpp.
References MIN_PAN.
int firevision::SonyEviD100PControl::min_tilt | ( | ) | [virtual] |
Get minimum tilt value.
Implements firevision::CameraControlPanTilt.
Definition at line 306 of file sony_evid100p.cpp.
References MIN_TILT.
void firevision::SonyEviD100PControl::open | ( | ) |
Open visca device.
Definition at line 152 of file sony_evid100p.cpp.
References fawkes::Exception::append(), firevision::ViscaControl::clear(), firevision::ViscaControl::close(), firevision::ViscaControl::open(), and firevision::ViscaControl::set_address().
Referenced by SonyEviD100PControl().
int firevision::SonyEviD100PControl::pan | ( | ) | [virtual] |
Get pan value.
Implements firevision::CameraControlPanTilt.
Definition at line 267 of file sony_evid100p.cpp.
References firevision::ViscaControl::getPanTilt(), and tilt().
Referenced by tilt().
void firevision::SonyEviD100PControl::pan_tilt | ( | int & | pan, | |
int & | tilt | |||
) | [virtual] |
Get pan and tilt at the same time.
This will store the current pan and tilt values in the given arguments.
pan | contains current pan after call | |
tilt | contains current tilt after call |
Implements firevision::CameraControlPanTilt.
Definition at line 246 of file sony_evid100p.cpp.
References firevision::ViscaControl::getPanTilt().
void firevision::SonyEviD100PControl::pan_tilt_rad | ( | float & | pan, | |
float & | tilt | |||
) | [virtual] |
Get pan and tilt at the same time in radiant.
This will store the current pan and tilt values in the given arguments.
pan | contains current pan after call | |
tilt | contains current tilt after call |
Implements firevision::CameraControlPanTilt.
Definition at line 256 of file sony_evid100p.cpp.
References firevision::ViscaControl::getPanTilt(), and PAN_STEPS_PER_RAD.
void firevision::SonyEviD100PControl::process_pantilt | ( | ) | [virtual] |
Process pan/tilt information.
Some operations allow for asynchronous usage (like fetching pan/tilt data). This is because some cameras need some time to retrieve the information and thus it is a good idea to let that run besides the image processing loop. With process_control the incoming information is processed.
Implements firevision::CameraControlPanTilt.
Definition at line 181 of file sony_evid100p.cpp.
References firevision::ViscaControl::process().
void firevision::SonyEviD100PControl::reset_effect | ( | ) | [virtual] |
Reset effect.
Disable all effects.
Implements firevision::CameraControlEffect.
Definition at line 463 of file sony_evid100p.cpp.
References firevision::ViscaControl::resetEffect().
void firevision::SonyEviD100PControl::reset_pan_tilt | ( | ) | [virtual] |
Bring camera into home position.
After the reset the camera shall look forward (horizontally and vertically centered "home" position).
Implements firevision::CameraControlPanTilt.
Definition at line 313 of file sony_evid100p.cpp.
References firevision::ViscaControl::resetPanTilt().
void firevision::SonyEviD100PControl::reset_pan_tilt_limit | ( | ) | [virtual] |
Reset pan/tilt limits.
This removes all limits from the pan/tilt methods thus the only constraints are hardware induced.
Implements firevision::CameraControlPanTilt.
Definition at line 328 of file sony_evid100p.cpp.
References firevision::ViscaControl::resetPanTiltLimit().
void firevision::SonyEviD100PControl::reset_zoom | ( | ) | [virtual] |
Reset zoom.
NotImplementedException | Not implemented by this control |
Implements firevision::CameraControlZoom.
Definition at line 335 of file sony_evid100p.cpp.
References firevision::ViscaControl::resetZoom().
void firevision::SonyEviD100PControl::set_effect | ( | unsigned int | effect | ) | [virtual] |
Enable effect.
effect | camera-specific effect. |
Implements firevision::CameraControlEffect.
Definition at line 417 of file sony_evid100p.cpp.
References firevision::ViscaControl::applyEffectBnW(), firevision::ViscaControl::applyEffectMosaic(), firevision::ViscaControl::applyEffectNegArt(), firevision::ViscaControl::applyEffectPastel(), firevision::ViscaControl::applyEffectSepia(), firevision::ViscaControl::applyEffectSlim(), firevision::ViscaControl::applyEffectSolarize(), firevision::ViscaControl::applyEffectStretch(), EFFECT_BW, EFFECT_MOSAIC, EFFECT_NEGATIVE, firevision::CameraControlEffect::EFFECT_NONE, EFFECT_PASTEL, EFFECT_SEPIA, EFFECT_SLIM, EFFECT_SOLARIZE, EFFECT_STRETCH, and firevision::ViscaControl::resetEffect().
void firevision::SonyEviD100PControl::set_pan | ( | int | pan | ) | [virtual] |
Set pan value.
The pan value is dependent on the camera control. See the implementations documentation for details.
pan | new pan value |
Implements firevision::CameraControlPanTilt.
Definition at line 202 of file sony_evid100p.cpp.
References firevision::ViscaControl::setPanTilt().
void firevision::SonyEviD100PControl::set_pan_tilt | ( | int | pan, | |
int | tilt | |||
) | [virtual] |
Set pan and tilt in one go.
Sometimes camera controls have a command for setting pan and tilt at the same time. If possible this should be preferred since is minimizes the number of required operations and communication acts. See the implementations documentation for details.
pan | new pan value | |
tilt | new tilt value |
Implements firevision::CameraControlPanTilt.
Definition at line 218 of file sony_evid100p.cpp.
References firevision::ViscaControl::setPanTilt().
Referenced by set_pan_tilt_rad().
void firevision::SonyEviD100PControl::set_pan_tilt_limit | ( | int | pan_left, | |
int | pan_right, | |||
int | tilt_up, | |||
int | tilt_down | |||
) | [virtual] |
Set pan/tilt limits.
Some camera controls allow for extra constraints to the min and max pan/tilt values.
pan_left | new minimum pan limit | |
pan_right | new maximum pan limit | |
tilt_up | new minimum tilt limit | |
tilt_down | new maximum tilt limit |
Implements firevision::CameraControlPanTilt.
Definition at line 320 of file sony_evid100p.cpp.
References firevision::ViscaControl::setPanTiltLimit().
void firevision::SonyEviD100PControl::set_pan_tilt_rad | ( | float | pan, | |
float | tilt | |||
) | [virtual] |
Set pan and tilt as float value.
You give a radiant value where the camera should head relative to the basic camera position. Implementations shall look forward (center the camera) for if pan equals zero, look right if the pan is positive and left is the pan is negative, they shall look forward (vertically centered) if tilt is zero, upwards if tilt is negative and downwards if tilt is positive.
pan | new pan value in radiant | |
tilt | new tilt value in radiant |
Implements firevision::CameraControlPanTilt.
Definition at line 227 of file sony_evid100p.cpp.
References PAN_STEPS_PER_RAD, set_pan_tilt(), and TILT_STEPS_PER_RAD.
void firevision::SonyEviD100PControl::set_tilt | ( | int | tilt | ) | [virtual] |
Set tilt value.
The tilt value is dependent on the camera control. See the implementations documentation for details.
tilt | new tilt value |
Implements firevision::CameraControlPanTilt.
Definition at line 210 of file sony_evid100p.cpp.
References firevision::ViscaControl::setPanTilt().
void firevision::SonyEviD100PControl::set_zoom | ( | unsigned int | zoom | ) | [virtual] |
Set new camera-specific zoom value.
zoom | zoom value |
Implements firevision::CameraControlZoom.
Definition at line 342 of file sony_evid100p.cpp.
References firevision::ViscaControl::setZoom().
void firevision::SonyEviD100PControl::set_zoom_digital_enabled | ( | bool | enabled | ) | [virtual] |
Set if digital zoom may be used.
enabled | true, to enable digital zoom, false otherwise |
NotImplementedException | Not implemented by this control |
Reimplemented from firevision::CameraControlZoom.
Definition at line 386 of file sony_evid100p.cpp.
References firevision::ViscaControl::setZoomDigitalEnabled().
void firevision::SonyEviD100PControl::set_zoom_speed_tele | ( | unsigned int | speed | ) | [virtual] |
Set speed in tele range.
speed | camera-specific speed value |
NotImplementedException | Not implemented by this control |
Reimplemented from firevision::CameraControlZoom.
Definition at line 372 of file sony_evid100p.cpp.
References firevision::ViscaControl::setZoomSpeedTele().
void firevision::SonyEviD100PControl::set_zoom_speed_wide | ( | unsigned int | speed | ) | [virtual] |
Set speed in wide range.
speed | camera-specific speed value. |
NotImplementedException | Not implemented by this control |
Reimplemented from firevision::CameraControlZoom.
Definition at line 379 of file sony_evid100p.cpp.
References firevision::ViscaControl::setZoomSpeedWide().
void firevision::SonyEviD100PControl::start_get_pan_tilt | ( | ) | [virtual] |
Start asynchronous fetch operation for pan and tilt values.
This will initiate fetching the pan and tilt values but will not wait until the values have been received but will return immediately (non-blocking).
Implements firevision::CameraControlPanTilt.
Definition at line 239 of file sony_evid100p.cpp.
References firevision::ViscaControl::startGetPanTilt().
bool firevision::SonyEviD100PControl::supports_effect | ( | unsigned int | effect | ) | [virtual] |
Check if camera control supports desired effect.
Use camera-specific constants.
effect | supported effect |
Implements firevision::CameraControlEffect.
Definition at line 393 of file sony_evid100p.cpp.
References EFFECT_BW, EFFECT_MOSAIC, EFFECT_NEGATIVE, firevision::CameraControlEffect::EFFECT_NONE, EFFECT_PASTEL, EFFECT_SEPIA, EFFECT_SLIM, EFFECT_SOLARIZE, and EFFECT_STRETCH.
bool firevision::SonyEviD100PControl::supports_pan | ( | ) | [virtual] |
Check whether this controller supports panning.
Implements firevision::CameraControlPanTilt.
Definition at line 188 of file sony_evid100p.cpp.
bool firevision::SonyEviD100PControl::supports_tilt | ( | ) | [virtual] |
Check whether this controller supports tilting.
Implements firevision::CameraControlPanTilt.
Definition at line 195 of file sony_evid100p.cpp.
int firevision::SonyEviD100PControl::tilt | ( | ) | [virtual] |
Get tilt value.
Implements firevision::CameraControlPanTilt.
Definition at line 276 of file sony_evid100p.cpp.
References firevision::ViscaControl::getPanTilt(), and pan().
Referenced by pan().
unsigned int firevision::SonyEviD100PControl::white_balance_mode | ( | ) |
Get current white balance mode.
Definition at line 473 of file sony_evid100p.cpp.
References firevision::ViscaControl::getWhiteBalanceMode().
unsigned int firevision::SonyEviD100PControl::zoom | ( | ) | [virtual] |
Get current zoom value.
Implements firevision::CameraControlZoom.
Definition at line 349 of file sony_evid100p.cpp.
References firevision::ViscaControl::getZoom().
unsigned int firevision::SonyEviD100PControl::zoom_max | ( | ) | [virtual] |
Maximum zoom value.
Implements firevision::CameraControlZoom.
Definition at line 365 of file sony_evid100p.cpp.
unsigned int firevision::SonyEviD100PControl::zoom_min | ( | ) | [virtual] |
Minimum zoom value.
Implements firevision::CameraControlZoom.
Definition at line 358 of file sony_evid100p.cpp.
const unsigned int firevision::SonyEviD100PControl::EFFECT_BW = 4 [static] |
B/W effect.
Definition at line 50 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_MOSAIC = 6 [static] |
Mosaic effect.
Definition at line 52 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_NEGATIVE = 2 [static] |
Negative effect.
Definition at line 48 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_PASTEL = 1 [static] |
Pastel effect.
Definition at line 47 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_SEPIA = 3 [static] |
Sepia effect.
Definition at line 49 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_SLIM = 7 [static] |
Slim effect.
Definition at line 53 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_SOLARIZE = 5 [static] |
Solarize effect.
Definition at line 51 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const unsigned int firevision::SonyEviD100PControl::EFFECT_STRETCH = 8 [static] |
Stretch effect.
Definition at line 54 of file sony_evid100p.h.
Referenced by set_effect(), and supports_effect().
const int firevision::SonyEviD100PControl::MAX_PAN = 1440 [static] |
const float firevision::SonyEviD100PControl::MAX_PAN_DEG = 100.f [static] |
const float firevision::SonyEviD100PControl::MAX_PAN_RAD = deg2rad(MAX_PAN_DEG) [static] |
const int firevision::SonyEviD100PControl::MAX_TILT = 360 [static] |
const float firevision::SonyEviD100PControl::MAX_TILT_DEG = 25.f [static] |
const float firevision::SonyEviD100PControl::MAX_TILT_RAD = deg2rad(MAX_TILT_DEG) [static] |
const int firevision::SonyEviD100PControl::MIN_PAN = -1439 [static] |
const float firevision::SonyEviD100PControl::MIN_PAN_DEG = -100.f [static] |
const float firevision::SonyEviD100PControl::MIN_PAN_RAD = deg2rad(MIN_PAN_DEG) [static] |
const int firevision::SonyEviD100PControl::MIN_TILT = - 359 [static] |
const float firevision::SonyEviD100PControl::MIN_TILT_DEG = - 25.f [static] |
const float firevision::SonyEviD100PControl::MIN_TILT_RAD = deg2rad(MIN_TILT_DEG) [static] |
const float firevision::SonyEviD100PControl::PAN_STEPS_PER_DEG = MAX_PAN / MAX_PAN_DEG [static] |
const float firevision::SonyEviD100PControl::PAN_STEPS_PER_RAD = MAX_PAN / MAX_PAN_RAD [static] |
Pan steps per rad.
Definition at line 122 of file sony_evid100p.h.
Referenced by pan_tilt_rad(), and set_pan_tilt_rad().
const float firevision::SonyEviD100PControl::TILT_STEPS_PER_DEG = MAX_TILT / MAX_TILT_DEG [static] |
const float firevision::SonyEviD100PControl::TILT_STEPS_PER_RAD = MAX_TILT / MAX_TILT_RAD [static] |
Tilt steps per rad.
Definition at line 123 of file sony_evid100p.h.
Referenced by set_pan_tilt_rad().