#include <p2os_ptz.h>
Public Types | |
enum | CameraType { CAMERA_VCC4, CAMERA_C50I } |
enum | Command { DELIM = 0x00, DEVICEID = 0x30, PANSLEW = 0x50, TILTSLEW = 0x51, STOP = 0x53, INIT = 0x58, SLEWREQ = 0x59, ANGLEREQ = 0x5c, PANTILT = 0x62, SETRANGE = 0x64, PANTILTREQ = 0x63, INFRARED = 0x76, PRODUCTNAME = 0x87, LEDCONTROL = 0x8E, CONTROL = 0x90, POWER = 0xA0, AUTOFOCUS = 0xA1, ZOOMSTOP = 0xA2, GAIN = 0xA5, FOCUS = 0xB0, ZOOM = 0xB3, ZOOMREQ = 0xB4, IRCUTFILTER = 0xB5, DIGITALZOOM = 0xB7, FOOTER = 0xEF, RESPONSE = 0xFE, HEADER = 0xFF } |
enum | CommState { COMM_UNKNOWN, COMM_BIDIRECTIONAL, COMM_UNIDIRECTIONAL } |
Public Member Functions | |
void | callback (const p2os_msgs::PTZStateConstPtr &msg) |
int | getAbsPanTilt (int *pan, int *tilt) |
int | getAbsZoom (int *zoom) |
p2os_msgs::PTZState | getCurrentState () |
int | getMaxZoom (int *max_zoom) |
void | getPtzPacket (int s1, int s2=0) |
bool | isOn () const |
P2OSPtz (P2OSNode *p2os, bool bidirectional_com=false) | |
int | receiveCommandAnswer (int asize) |
int | receiveRequestAnswer (unsigned char *data, int s1, int s2) |
int | sendAbsPanTilt (int pan, int tilt) |
int | sendAbsZoom (int zoom) |
int | sendCommand (unsigned char *str, int len) |
int | sendInit () |
int | sendRequest (unsigned char *str, int len, unsigned char *reply) |
int | setControlMode () |
int | setDefaultTiltRange () |
int | setPower (Power on) |
int | setup () |
void | shutdown () |
Public Attributes | |
circbuf | cb_ |
Protected Types | |
enum | Error { CAM_ERROR_NONE = 0x30, CAM_ERROR_BUSY = 0x31, CAM_ERROR_PARAM = 0x35, CAM_ERROR_MODE = 0x39, CAM_ERROR_UNKNOWN = 0xFF } |
enum | Param { MAX_PAN = 98, MIN_PAN = -98, MAX_TILT = 88, MIN_TILT = -30, MAX_PAN_SLEW = 90, MIN_PAN_SLEW = 1, MAX_TILT_SLEW = 69, MIN_TILT_SLEW = 1, MAX_ZOOM_OPTIC = 1960, MIN_ZOOM = 0 } |
enum | Power { POWER_OFF = 0, POWER_ON = 1 } |
Protected Attributes | |
bool | bidirectional_com_ |
p2os_msgs::PTZState | current_state_ |
int | error_code_ |
bool | is_on_ |
int | max_zoom_ |
P2OSNode * | p2os_ |
int | pan_ |
int | tilt_ |
int | zoom_ |
Static Protected Attributes | |
static const int | COMMAND_RESPONSE_BYTES = 6 |
static const int | MAX_COMMAND_LENGTH = 19 |
static const int | MAX_REQUEST_LENGTH = 17 |
static const int | PACKET_TIMEOUT = 300 |
static const int | PAN_THRESH = 1 |
static const int | SLEEP_TIME_USEC = 300000 |
static const int | TILT_THRESH = 1 |
static const int | ZOOM_THRESH = 1 |
Definition at line 56 of file p2os_ptz.h.
enum P2OSPtz::CameraType |
Definition at line 96 of file p2os_ptz.h.
enum P2OSPtz::Command |
DELIM |
Delimeter character. |
DEVICEID |
Default device ID. |
PANSLEW |
Sets the pan slew. |
TILTSLEW |
Sets the tilt slew. |
STOP |
Stops current pan/tilt motion. |
INIT |
Initializes the camera. |
SLEWREQ |
Request pan/tilt min/max slew. |
ANGLEREQ |
Request pan/tilt min/max angle. |
PANTILT |
Pan/tilt command. |
SETRANGE |
Pan/tilt min/max range assignment. |
PANTILTREQ |
Request pan/tilt position. |
INFRARED |
Controls operation of IR lighting. |
PRODUCTNAME |
Requests the product name. |
LEDCONTROL |
Controls LED status. |
CONTROL |
Puts camera in Control mode. |
POWER |
Turns on/off power. |
AUTOFOCUS |
Controls auto-focusing functions. |
ZOOMSTOP |
Stops zoom motion. |
GAIN |
Sets gain adjustment on camera. |
FOCUS |
Manual focus adjustment. |
ZOOM |
Zooms camera lens. |
ZOOMREQ |
Requests max zoom position. |
IRCUTFILTER |
Controls the IR cut filter. |
DIGITALZOOM |
Controls the digital zoom amount. |
FOOTER |
Packet Footer. |
RESPONSE |
Packet header for response. |
HEADER |
Packet Header. |
Definition at line 59 of file p2os_ptz.h.
enum P2OSPtz::CommState |
Definition at line 90 of file p2os_ptz.h.
enum P2OSPtz::Error [protected] |
Definition at line 117 of file p2os_ptz.h.
enum P2OSPtz::Param [protected] |
MAX_PAN | |
MIN_PAN | |
MAX_TILT | |
MIN_TILT | |
MAX_PAN_SLEW | |
MIN_PAN_SLEW | |
MAX_TILT_SLEW | |
MIN_TILT_SLEW | |
MAX_ZOOM_OPTIC | |
MIN_ZOOM |
Definition at line 103 of file p2os_ptz.h.
enum P2OSPtz::Power [protected] |
Definition at line 126 of file p2os_ptz.h.
P2OSPtz::P2OSPtz | ( | P2OSNode * | p2os, |
bool | bidirectional_com = false |
||
) |
Definition at line 41 of file p2os_ptz.cpp.
void P2OSPtz::callback | ( | const p2os_msgs::PTZStateConstPtr & | msg | ) |
Definition at line 162 of file p2os_ptz.cpp.
int P2OSPtz::getAbsPanTilt | ( | int * | pan, |
int * | tilt | ||
) |
Definition at line 838 of file p2os_ptz.cpp.
int P2OSPtz::getAbsZoom | ( | int * | zoom | ) |
Definition at line 694 of file p2os_ptz.cpp.
p2os_msgs::PTZState P2OSPtz::getCurrentState | ( | ) | [inline] |
Definition at line 162 of file p2os_ptz.h.
int P2OSPtz::getMaxZoom | ( | int * | max_zoom | ) |
Definition at line 641 of file p2os_ptz.cpp.
void P2OSPtz::getPtzPacket | ( | int | s1, |
int | s2 = 0 |
||
) |
Definition at line 509 of file p2os_ptz.cpp.
bool P2OSPtz::isOn | ( | ) | const [inline] |
Definition at line 161 of file p2os_ptz.h.
int P2OSPtz::receiveCommandAnswer | ( | int | asize | ) |
Definition at line 299 of file p2os_ptz.cpp.
int P2OSPtz::receiveRequestAnswer | ( | unsigned char * | data, |
int | s1, | ||
int | s2 | ||
) |
Definition at line 412 of file p2os_ptz.cpp.
int P2OSPtz::sendAbsPanTilt | ( | int | pan, |
int | tilt | ||
) |
Definition at line 909 of file p2os_ptz.cpp.
int P2OSPtz::sendAbsZoom | ( | int | zoom | ) |
Definition at line 745 of file p2os_ptz.cpp.
int P2OSPtz::sendCommand | ( | unsigned char * | str, |
int | len | ||
) |
Definition at line 226 of file p2os_ptz.cpp.
int P2OSPtz::sendInit | ( | ) |
Definition at line 616 of file p2os_ptz.cpp.
int P2OSPtz::sendRequest | ( | unsigned char * | str, |
int | len, | ||
unsigned char * | reply | ||
) |
Definition at line 262 of file p2os_ptz.cpp.
int P2OSPtz::setControlMode | ( | ) |
Definition at line 591 of file p2os_ptz.cpp.
int P2OSPtz::setDefaultTiltRange | ( | ) |
Definition at line 794 of file p2os_ptz.cpp.
int P2OSPtz::setPower | ( | Power | on | ) |
Definition at line 563 of file p2os_ptz.cpp.
int P2OSPtz::setup | ( | ) |
Definition at line 56 of file p2os_ptz.cpp.
void P2OSPtz::shutdown | ( | ) |
Definition at line 151 of file p2os_ptz.cpp.
bool P2OSPtz::bidirectional_com_ [protected] |
Definition at line 174 of file p2os_ptz.h.
Definition at line 168 of file p2os_ptz.h.
const int P2OSPtz::COMMAND_RESPONSE_BYTES = 6 [static, protected] |
Definition at line 180 of file p2os_ptz.h.
p2os_msgs::PTZState P2OSPtz::current_state_ [protected] |
Definition at line 175 of file p2os_ptz.h.
int P2OSPtz::error_code_ [protected] |
Definition at line 173 of file p2os_ptz.h.
bool P2OSPtz::is_on_ [protected] |
Definition at line 172 of file p2os_ptz.h.
const int P2OSPtz::MAX_COMMAND_LENGTH = 19 [static, protected] |
Definition at line 178 of file p2os_ptz.h.
const int P2OSPtz::MAX_REQUEST_LENGTH = 17 [static, protected] |
Definition at line 179 of file p2os_ptz.h.
int P2OSPtz::max_zoom_ [protected] |
Definition at line 170 of file p2os_ptz.h.
P2OSNode* P2OSPtz::p2os_ [protected] |
Definition at line 166 of file p2os_ptz.h.
const int P2OSPtz::PACKET_TIMEOUT = 300 [static, protected] |
Definition at line 181 of file p2os_ptz.h.
int P2OSPtz::pan_ [protected] |
Definition at line 171 of file p2os_ptz.h.
const int P2OSPtz::PAN_THRESH = 1 [static, protected] |
Definition at line 183 of file p2os_ptz.h.
const int P2OSPtz::SLEEP_TIME_USEC = 300000 [static, protected] |
Definition at line 182 of file p2os_ptz.h.
int P2OSPtz::tilt_ [protected] |
Definition at line 171 of file p2os_ptz.h.
const int P2OSPtz::TILT_THRESH = 1 [static, protected] |
Definition at line 184 of file p2os_ptz.h.
int P2OSPtz::zoom_ [protected] |
Definition at line 171 of file p2os_ptz.h.
const int P2OSPtz::ZOOM_THRESH = 1 [static, protected] |
Definition at line 185 of file p2os_ptz.h.