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
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
00135
00136
00139 CigiBaseSensorCtrl();
00140
00141
00144 virtual ~CigiBaseSensorCtrl();
00145
00146
00147
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
00192
00193
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
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
00237
00238
00248 int SetPolarity(const PolarityGrp PolarityIn, bool bndchk=true);
00249
00250
00253 PolarityGrp GetPolarity(void) const { return(Polarity); }
00254
00255
00256
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
00279
00280
00293 int SetTrackMode(const TrackModeGrp TrackModeIn, bool bndchk=true);
00294
00295
00298 TrackModeGrp GetTrackMode(void) const { return(TrackMode); }
00299
00300
00301
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
00324
00325
00335 int SetTrackPolarity(const TrackPolarityGrp TrackPolarityIn, bool bndchk=true);
00336
00337
00340 TrackPolarityGrp GetTrackPolarity(void) const { return(TrackPolarity); }
00341
00342
00343
00344
00345
00352 int SetLevel(const float LevelIn, bool bndchk=true);
00353
00354
00357 float GetLevel(void) const { return(Level); }
00358
00359
00360
00361
00362
00370 int SetACCoupling(const float ACCouplingIn, bool bndchk=true);
00371
00372
00375 float GetACCoupling(void) const { return(ACCoupling); }
00376
00377
00378
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
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_)