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