CigiBaseSensorCtrl.h

Go to the documentation of this file.
00001 
00055 #if !defined(_CIGI_BASE_SENSOR_CTRL_INCLUDED_)
00056 #define _CIGI_BASE_SENSOR_CTRL_INCLUDED_
00057 
00058 #include "CigiBasePacket.h"
00059 
00060 
00061 // ====================================================================
00062 // preprocessor definitions
00063 // ====================================================================
00064 
00065 #define CIGI_SENSOR_CTRL_PACKET_ID_V1 9
00066 #define CIGI_SENSOR_CTRL_PACKET_SIZE_V1 24
00067 
00068 #define CIGI_SENSOR_CTRL_PACKET_ID_V2 9
00069 #define CIGI_SENSOR_CTRL_PACKET_SIZE_V2 24
00070 
00071 #define CIGI_SENSOR_CTRL_PACKET_ID_V3 17
00072 #define CIGI_SENSOR_CTRL_PACKET_SIZE_V3 24
00073 
00074 
00075 class CigiSensorCtrlV1;
00076 class CigiSensorCtrlV2;
00077 class CigiSensorCtrlV3;
00078 
00079 
00080 class CIGI_SPEC CigiBaseSensorCtrl : public CigiBasePacket
00081 {
00082 
00083 friend class CigiSensorCtrlV1;
00084 friend class CigiSensorCtrlV2;
00085 friend class CigiSensorCtrlV3;
00086 
00087 public:
00088 
00089    //=========================================================
00092    enum PolarityGrp
00093    {
00094       WhiteHot=0,
00095       BlackHot=1
00096    };
00097 
00098    //=========================================================
00101    enum TrackModeGrp
00102    {
00103       TrackOff=0,
00104       ForceCorrelate=1,
00105       Scene=2,
00106       Target=3,
00107       Ship=4,
00108       TMDefA=5,
00109       TMDefB=6,
00110       TMDefC=7
00111    };
00112 
00113    //=========================================================
00116    enum TrackPolarityGrp
00117    {
00118       TrackWhite=0,
00119       TrackBlack=1
00120    };
00121 
00122    //=========================================================
00125    enum ResponseTypeGrp
00126    {
00127       GatePos=0,
00128       GateAndTargetPos=1
00129    };
00130 
00131 
00132 
00133 
00134    //==> Management
00135 
00136    //=========================================================
00139    CigiBaseSensorCtrl();
00140 
00141    //=========================================================
00144    virtual ~CigiBaseSensorCtrl();
00145 
00146 
00147    //==> Buffer Packing/Unpacking
00148 
00149    //=========================================================
00160    virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00161 
00162    //=========================================================
00172    virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00173 
00174    //=========================================================
00186         virtual int GetCnvt(CigiVersionID &CnvtVersion,
00187                        CigiCnvtInfoType::Type &CnvtInfo);
00188 
00189 
00190 
00191    //==> Accessing Member Variable Values functions
00192 
00193    //+> SensorID
00194 
00195    //=========================================================
00203    int SetSensorID(const Cigi_uint8 SensorIDIn, bool bndchk=true)
00204    {
00205       SensorID = SensorIDIn;
00206       return(CIGI_SUCCESS);
00207    }
00208 
00209    //=========================================================
00212    Cigi_uint8 GetSensorID(void) const { return(SensorID); }
00213 
00214 
00215    //+> SensorOn
00216 
00217    //=========================================================
00224    int SetSensorOn(const bool SensorOnIn, bool bndchk=true)
00225    {
00226       SensorOn = SensorOnIn;
00227       return(CIGI_SUCCESS);
00228    }
00229 
00230    //=========================================================
00233    bool GetSensorOn(void) const { return(SensorOn); }
00234 
00235 
00236    //+> Polarity
00237 
00238    //=========================================================
00248    int SetPolarity(const PolarityGrp PolarityIn, bool bndchk=true);
00249 
00250    //=========================================================
00253    PolarityGrp GetPolarity(void) const { return(Polarity); }
00254 
00255 
00256    //+> LineDropEn
00257 
00258    //=========================================================
00266    int SetLineDropEn(const bool LineDropEnIn, bool bndchk=true)
00267    {
00268       LineDropEn = LineDropEnIn;
00269       return(CIGI_SUCCESS);
00270    }
00271 
00272    //=========================================================
00275    bool GetLineDropEn(void) const { return(LineDropEn); }
00276 
00277 
00278    //+> TrackMode
00279 
00280    //=========================================================
00293    int SetTrackMode(const TrackModeGrp TrackModeIn, bool bndchk=true);
00294 
00295    //=========================================================
00298    TrackModeGrp GetTrackMode(void) const { return(TrackMode); }
00299 
00300 
00301    //+> AutoGainEn
00302 
00303    //=========================================================
00311    int SetAutoGainEn(const bool AutoGainEnIn, bool bndchk=true)
00312    {
00313       AutoGainEn = AutoGainEnIn;
00314       return(CIGI_SUCCESS);
00315    }
00316 
00317    //=========================================================
00320    bool GetAutoGainEn(void) const { return(AutoGainEn); }
00321 
00322 
00323    //+> TrackPolarity
00324 
00325    //=========================================================
00335    int SetTrackPolarity(const TrackPolarityGrp TrackPolarityIn, bool bndchk=true);
00336 
00337    //=========================================================
00340    TrackPolarityGrp GetTrackPolarity(void) const { return(TrackPolarity); }
00341 
00342 
00343    //+> Level
00344 
00345    //=========================================================
00352    int SetLevel(const float LevelIn, bool bndchk=true);
00353 
00354    //=========================================================
00357    float GetLevel(void) const { return(Level); }
00358 
00359 
00360    //+> ACCoupling
00361 
00362    //=========================================================
00370    int SetACCoupling(const float ACCouplingIn, bool bndchk=true);
00371 
00372    //=========================================================
00375    float GetACCoupling(void) const { return(ACCoupling); }
00376 
00377 
00378    //+> Noise
00379 
00380    //=========================================================
00388    int SetNoise(const float NoiseIn, bool bndchk=true);
00389 
00390    //=========================================================
00393    float GetNoise(void) const { return(Noise); }
00394 
00395 
00396 
00397 protected:
00398 
00399    //==> Member variables
00400 
00401    //=========================================================
00405    Cigi_uint16 ViewID;
00406 
00407    //=========================================================
00411    Cigi_uint8 SensorID;
00412 
00413    //=========================================================
00417    bool SensorOn;
00418 
00419    //=========================================================
00426    PolarityGrp Polarity;
00427 
00428    //=========================================================
00433    bool LineDropEn;
00434 
00435    //=========================================================
00444    TrackModeGrp TrackMode;
00445 
00446    //=========================================================
00451    bool AutoGainEn;
00452 
00453    //=========================================================
00459    TrackPolarityGrp TrackPolarity;
00460 
00461    //=========================================================
00468    ResponseTypeGrp ResponseType;
00469 
00470    //=========================================================
00477    float Gain;
00478 
00479    //=========================================================
00484    float Level;
00485 
00486    //=========================================================
00491    float ACCoupling;
00492 
00493    //=========================================================
00498    float Noise;
00499 
00500 
00501 };
00502 
00503 #endif // #if !defined(_CIGI_BASE_SENSOR_CTRL_INCLUDED_)

Generated on Wed Apr 29 08:59:55 2009 for CCL by  doxygen 1.4.7