00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ARSONYPTZ_H
00028 #define ARSONYPTZ_H
00029
00030 #include "ariaTypedefs.h"
00031 #include "ArBasePacket.h"
00032 #include "ArPTZ.h"
00033
00035
00039 class ArSonyPacket: public ArBasePacket
00040 {
00041 public:
00043 ArSonyPacket(ArTypes::UByte2 bufferSize = 15);
00044 virtual ~ArSonyPacket();
00045
00046 virtual void uByteToBuf(ArTypes::UByte val);
00047 virtual void byte2ToBuf(ArTypes::Byte2 val);
00049 void byte2ToBufAtPos(ArTypes::Byte2 val, ArTypes::UByte2 pose);
00050 };
00051
00052 class ArRobot;
00053
00055
00056 class ArSonyPTZ : public ArPTZ
00057 {
00058 public:
00059 ArSonyPTZ(ArRobot *robot);
00060 virtual ~ArSonyPTZ();
00061
00062 virtual bool init(void);
00063 virtual bool pan(int degrees);
00064 virtual bool panRel(int degrees);
00065 virtual bool tilt(int degrees);
00066 virtual bool tiltRel(int degrees);
00067 virtual bool panTilt(int degreesPan, int degreesTilt);
00068 virtual bool panTiltRel(int degreesPan, int degreesTilt);
00069 virtual bool canZoom(void) const { return true; }
00070 virtual bool zoom(int zoomValue);
00071 virtual bool zoomRel(int zoomValue);
00072 virtual int getPan(void) const { return myPan; }
00073 virtual int getTilt(void) const { return myTilt; }
00074 virtual int getZoom(void) const { return myZoom; }
00075 virtual int getMaxPosPan(void) const { return 90; }
00076 virtual int getMaxNegPan(void) const { return -90; }
00077 virtual int getMaxPosTilt(void) const { return 30; }
00078 virtual int getMaxNegTilt(void) const { return -30; }
00079 virtual int getMaxZoom(void) const { return 1024; }
00080 virtual int getMinZoom(void) const { return 0; }
00081
00082
00083 bool backLightingOn(void);
00084 bool backLightingOff(void);
00085
00086 enum {
00087 MAX_PAN = 95,
00088 MAX_TILT = 25,
00089 MIN_ZOOM = 0,
00090 MAX_ZOOM = 1023
00091 };
00092 protected:
00093 void initializePackets(void);
00094 ArRobot *myRobot;
00095 int myPan;
00096 int myTilt;
00097 int myZoom;
00098 double myDegToTilt;
00099 double myDegToPan;
00100 ArSonyPacket myPacket;
00101 ArSonyPacket myZoomPacket;
00102 ArSonyPacket myPanTiltPacket;
00103 };
00104
00105 #endif // ARSONYPTZ_H