13 #if !defined(_ciSensor_h_)
61 bool archive(std::ofstream &outf);
72 int serialize(
char *filepath);
94 bool parseXML(
clXML& xmlDocument);
104 bool loadXMLNode(
std::string tag,
char *nodeString);
132 bool loadXMLNode(
std::string tag,
double *nodeBool);
142 void saveXML(
clXML* xmlDocument);
143 void saveXML(
clXML* xmlDocument,
int sensorIndex,
int SigSimActive,
int SenSimActive);
152 int serializeCheck(
char *filepath);
178 virtual bool insert(
ciSensor sensor,
int idx = -1);
190 virtual bool remove(
int idx);
201 char *getName(
int idx = 0);
213 void setName(
const char *
name,
int idx = 0);
224 int getType(
int idx = 0);
236 SensorType getSensorType(
int idx = 0);
248 void setType(
int type,
int idx = 0);
260 void setSensorType(SensorType
type,
int idx = 0);
274 void setBandInfo(
double lowerBandLim,
double upperBandLim,
int nBands,
int idx = 0);
288 void setBandInfo(
double lowerBandLim,
double upperBandLim,
double dx,
int idx = 0);
302 void getBandInfo(
double &lowerBandLim,
double &upperBandLim,
int &nBands,
int idx = 0);
316 void getBandInfo(
double &lowerBandLim,
double &upperBandLim,
double &dx,
int idx = 0);
329 void setFOVDegrees(
double horz,
double vert,
int idx = 0);
342 void getFOVDegrees(
double &horz,
double &vert,
int idx = 0);
355 void setFOVPixels(
int horz,
int vert,
int idx = 0);
368 void getFOVPixels(
int &horz,
int &vert,
int idx = 0);
378 void setDetectorScaleFactor(
double horizontalScaleFactor,
double verticalScaleFactor,
int idx = 0);
388 void getDetectorScaleFactor(
double &horizontalScaleFactor,
double &verticalScaleFactor,
int idx = 0);
399 void setScreenOffset(
int horizontalScreenOffset,
int verticalScreenOffset,
int idx = 0);
410 void getScreenOffset(
int &horizontalScreenOffset,
int &verticalScreenOffset,
int idx = 0);
423 void setTemperatureLimits(
double tMax,
double tMin,
int idx = 0);
436 void getTemperatureLimits(
double &tMax,
double &tMin,
int idx = 0);
448 void setMaxLightLevel(
double maxLightLevel,
int idx = 0);
459 double getMaxLightLevel(
int idx = 0);
471 void setSaturationRatio(
double satRatio,
int idx = 0);
482 double getSaturationRatio(
int idx = 0);
493 char *getQEResponseFile(
int idx = 0);
505 void setQEResponseFile(
char *filename,
int idx = 0);
516 char *getTrackfile(
int idx = 0);
528 void setTrackfile(
char *filename,
int idx = 0);
573 void setAutomaticRadiance(
bool flag,
int idx = 0);
581 bool getAutomaticRadiance(
int idx = 0);
589 void setDopplerSpatialEffects(
bool flag,
int idx = 0);
598 bool getDopplerSpatialEffects(
int idx = 0);
607 void setDopplerBeamSharpening(
bool flag,
int idx = 0);
615 bool getDopplerBeamSharpening(
int idx = 0);
627 void setGain(
double gain,
int idx = 0);
638 double getGain(
int idx = 0);
650 void setLevel(
double level,
int idx = 0);
661 double getLevel(
int idx = 0);
673 void setPemitterW(
double PemitterW,
int idx = 0);
684 double getPemitterW(
int idx = 0);
696 void setTransmitterGain(
double AntGain,
int idx = 0);
707 double getTransmitterGain(
int idx = 0);
719 void setReceiverGain(
double AntGain,
int idx = 0);
730 double getReceiverGain(
int idx = 0);
742 void setGainPattern(
int pattern,
int idx = 0);
753 int getGainPattern(
int idx);
766 void setFCemitterHz(
double FCemitterHz,
int idx = 0);
777 double getFCemitterHz(
int idx = 0);
789 void setBWemitterHz(
double BWemitterHz,
int idx = 0);
800 double getBWemitterHz(
int idx = 0);
812 void setChannelResolutionHz(
double ChannelResolutionHz,
int idx = 0);
823 double getChannelResolutionHz(
int idx = 0);
835 void setPulseWidth(
double PulseWidth,
int idx = 0);
846 double getPulseWidth(
int idx = 0);
858 void setPRF(
double PRF,
int idx = 0);
869 double getPRF(
int idx = 0);
881 void setNFPRF(
double PRF,
int idx = 0);
892 double getNFPRF(
int idx = 0);
904 void setTPolAngle(
double PolAngle,
int idx = 0);
915 double getTPolAngle(
int idx = 0);
927 void setRPolAngle(
double PolAngle,
int idx = 0);
938 double getRPolAngle(
int idx = 0);
950 void setSysTempK(
double degK,
int idx = 0);
961 double getSysTempK(
int idx);
973 void setBeamWidth(
double rad,
int idx = 0);
984 double getBeamWidth(
int idx = 0);
996 void setRangeCompensation(
bool rangeCompensation,
int idx = 0);
1007 bool getRangeCompensation(
int idx = 0)
const;
1011 void setFRDAngularVelocity(
double Yradpersec,
double Pradpersec,
double Rradpersec,
int idx = 0);
1015 void getFRDAngularVelocity(
double &Yradpersec,
double &Pradpersec,
double &Rradpersec,
int idx = 0);
1019 void setSpotfile(
char *filename,
int idx = 0);
1023 char *getSpotfile(
int idx);
1040 void setTAprops(
double ThreshDetect,
double ThreshClassify,
double ThreshRecognize,
double ThreshIdentify,
double PersistenceTime,
int idx = 0);
1056 void getTAprops(
double &ThreshDetect,
double &ThreshClassify,
double &ThreshRecognize,
double &ThreshIdentify,
double &PersistenceTime,
int idx = 0);
1068 void setDopplerThreshold(
double threshold,
int idx = 0);
1079 double getDopplerThreshold(
int idx = 0);
1091 void setDopplerThresholdMin(
double threshold,
int idx = 0);
1102 double getDopplerThresholdMin(
int idx = 0);
1114 void setDopplerThresholdMax(
double threshold,
int idx = 0);
1125 double getDopplerThresholdMax(
int idx = 0);
1137 void setClutterReductionMode(
int CRMode,
int idx = 0);
1148 int getClutterReductionMode(
int idx = 0);
1160 void setClutterReductionFactor(
double CRFactor,
int idx = 0);
1171 double getClutterReductionFactor(
int idx = 0);
1183 void setUseTrackfile(
bool useTrackfile,
int idx = 0);
1194 bool getUseTrackfile(
int idx = 0);
1205 void setWorldPosition(
double x,
double y,
double z,
int i = 0);
1216 void getWorldPosition(
double&
x,
double&
y,
double&
z,
int i = 0);
1230 void setGeodeticPosition(
double latitude,
double longitude,
double altitude,
int idx = 0);
1244 void getGeodeticPosition(
double &latitude,
double &longitude,
double &altitude,
int idx = 0);
1258 void setNEDOrientation(
double heading,
double pitch,
double roll,
int idx = 0);
1272 void getNEDOrientation(
double &heading,
double &pitch,
double &roll,
int idx = 0);
1286 void setNEDLinearVelocity(
double n,
double e,
double d,
int idx = 0);
1300 void getNEDLinearVelocity(
double &
n,
double &
e,
double &d,
int idx = 0);
1312 void SetActive(
bool isActive,
int idx = 0);
1323 bool GetActive(
int idx = 0);
1338 int getRGBColor(
int idx = 0) {
return m_sensorList[idx].m_sensorRGBColor; }
1346 void setReprojection(
bool flag,
int idx = 0);
1354 bool getReprojection(
int idx = 0);
1357 void setBoresightROI(
double x,
double y,
double width,
double height,
int idx = 0);
1358 void getBoresightROI(
double &
x,
double &
y,
double &
width,
double &
height,
int idx = 0);
1359 void setIntegrationPathlength(
double length,
int idx = 0);
1360 void getIntegrationPathlength(
double &
length,
int idx = 0);
1361 void setShadowOrientationDown(
bool flag,
int idx = 0);
1362 bool getShadowOrientationDown(
int idx = 0);
1363 void setIntegrationTime(
double time,
int idx = 0);
1364 void getIntegrationTime(
double &time,
int idx = 0);
1366 void setIntensityModulationGain(
double imodGain,
int idx = 0);
1367 double getIntensityModulationGain(
int idx = 0);
1376 void setMtiRadarReturn(
bool flag,
int idx = 0);
1384 bool getMtiRadarReturn(
int idx = 0);
1393 void setDisplayType(
int displayType,
int idx = 0);
1402 int getDisplayType(
int idx = 0);
1413 void setRadianceScaleEnable(
bool enable,
int idx = 0 )
1415 m_sensorList[idx].applyRadianceScale =
enable;
1427 bool getRadianceScaleEnable(
int idx = 0)
const
1429 return m_sensorList[idx].applyRadianceScale;
1441 int getPPIMaxDownRangeResolution(
int idx = 0)
const
1443 return m_sensorList[idx].m_ppiMaxDownRangeResolution;
1455 void setPPIMaxDownRangeResolution(
int samples,
int idx = 0 )
1457 m_sensorList[idx].m_ppiMaxDownRangeResolution =
samples;
1469 int getPPIMaxCrossRangeResolution(
int idx = 0)
const
1471 return m_sensorList[idx].m_ppiMaxCrossRangeResolution;
1483 void setPPIMaxCrossRangeResolution(
int samples,
int idx = 0 )
1485 m_sensorList[idx].m_ppiMaxCrossRangeResolution =
samples;
1507 void setMinWedgeExtent(
double angle,
int idx = 0 )
1509 if( angle >= -360.0 && angle < m_sensorList[idx].maxWedgeExtent && angle < 360.0 )
1510 m_sensorList[idx].minWedgeExtent =
angle;
1532 void setMaxWedgeExtent(
double angle,
int idx = 0 )
1534 if( angle > -360.0 && angle > m_sensorList[idx].minWedgeExtent && angle <= 360.0 )
1535 m_sensorList[idx].maxWedgeExtent =
angle;
1572 double getMaxRadarRangeScale(
int idx = 0)
const;
1583 void setMaxRadarRangeScale(
double rangeScale,
int idx = 0 );
1587 void enableBacksweep(
bool backsweep,
int idx = 0 ){ m_sensorList[idx].enableBacksweep = backsweep; }
1591 void showOtwView(
bool show,
int idx = 0 ){ m_sensorList[idx].showOtwView = show; }
1593 void setPPIDisplayOffsetScale(
int offsetX,
int offsetY,
double scaleX,
double scaleY,
int idx = 0);
1594 void getPPIDisplayOffsetScale(
int &offsetX,
int &offsetY,
double &scaleX,
double &scaleY,
int idx = 0);
1595 void setPPIRadarReturnColor(
double red,
double green,
double blue,
int idx = 0);
1596 void getPPIRadarReturnColor(
double &
red,
double &
green,
double &
blue,
int idx = 0);
1597 void setPPISARTRadarColor(
double red,
double green,
double blue,
int idx = 0);
1598 void getPPISARTRadarColor(
double &
red,
double &
green,
double &
blue,
int idx = 0);
1599 void setPPITurbulenceRadarColor(
double red,
double green,
double blue,
int idx = 0);
1600 void getPPITurbulenceRadarColor(
double &
red,
double &
green,
double &
blue,
int idx = 0);
1602 void setPPIRangeRingRenderEnable(
bool renderEnable,
int idx = 0 )
1604 m_sensorList[idx].m_rangeRingRenderEnable = renderEnable;
1606 bool getPPIRangeRingRenderEnable(
int idx = 0 )
const
1608 return m_sensorList[idx].m_rangeRingRenderEnable;
1611 void setPPIRadarArmSweepRenderEnable(
bool renderEnable,
int idx = 0 )
1613 m_sensorList[idx].m_radarArmSweepRenderEnable = renderEnable;
1615 bool getPPIRadarArmSweepRenderEnable(
int idx = 0 )
const
1617 return m_sensorList[idx].m_radarArmSweepRenderEnable;
1620 void setPPIRadarCursorEnable(
bool renderEnable,
int idx = 0 )
1622 m_sensorList[idx].m_PPIradarCursorEnable = renderEnable;
1624 bool getPPIRadarCursorEnable(
int idx = 0 )
const
1626 return m_sensorList[idx].m_PPIradarCursorEnable;
1629 void setPPILineWidth(
double lineWidth,
int idx = 0 )
1631 m_sensorList[idx].m_lineWidth = lineWidth;
1633 double getPPILineWidth(
int idx = 0 )
const
1635 return m_sensorList[idx].m_lineWidth;
1682 void setDBScenter(
double centerX,
double centerY,
int idx = 0);
1683 void getDBScenter(
double ¢erX,
double ¢erY,
int idx = 0);
1694 int getGMTIMode(
int idx = 0)
const
1696 return m_sensorList[idx].m_gmtiMode;
1708 void setGMTIMode(
int mode,
int idx = 0 )
1710 m_sensorList[idx].m_gmtiMode =
mode;
1722 int getGMTITrackFilterMode(
int idx = 0)
const
1724 return m_sensorList[idx].m_gmtiTrackFilterMode;
1736 void setGMTITrackFilterMode(
int mode,
int idx = 0 )
1738 m_sensorList[idx].m_gmtiTrackFilterMode =
mode;
1750 int getGMTITrackFilterID(
int idx = 0)
const
1752 return m_sensorList[idx].m_gmtiTrackFilterID;
1764 void setGMTITrackFilterID(
int id,
int idx = 0 )
1766 m_sensorList[idx].m_gmtiTrackFilterID =
id;
1778 void getScaleMTItargetIndicators(
double &
x,
double &
y,
int idx = 0)
const
1780 x = m_sensorList[idx].m_mtiScaleX;
1781 y = m_sensorList[idx].m_mtiScaleY;
1793 void setScaleMTItargetIndicators(
double x,
double y,
int idx = 0 )
1795 m_sensorList[idx].m_mtiScaleX =
x;
1796 m_sensorList[idx].m_mtiScaleY =
y;
1808 int getAirToAirMode(
int idx = 0)
const
1810 return m_sensorList[idx].m_airToAirMode;
1822 void setAirToAirMode(
int mode,
int idx = 0 )
1824 m_sensorList[idx].m_airToAirMode =
mode;
1836 int getMaxMTItargets(
int idx = 0)
const
1838 return m_sensorList[idx].m_maxMTItargets;
1850 void setMaxMTItargets(
int maxTargets,
int idx = 0 )
1852 m_sensorList[idx].m_maxMTItargets = maxTargets;
1864 double getMaxAirToAirVelocity(
int idx = 0)
const
1866 return m_sensorList[idx].m_maxA2Avelocity;
1878 void setMaxAirToAirVelocity(
double maxVelocity,
int idx = 0 )
1880 m_sensorList[idx].m_maxA2Avelocity = maxVelocity;
1892 void getCagedModeHeadingPitch(
double &heading,
double &pitch,
int idx = 0)
const
1894 heading = m_sensorList[idx].m_cagedModeHeading;
1895 pitch = m_sensorList[idx].m_cagedModePitch;
1908 void setCagedModeHeadingPitch(
double heading,
double pitch,
int idx = 0 )
1910 m_sensorList[idx].m_cagedModeHeading = heading;
1911 m_sensorList[idx].m_cagedModePitch = pitch;
1923 double getTransponderReceiverFrequency(
int idx = 0)
const
1925 return m_sensorList[idx].m_transponderReceiverFrequency;
1937 void setTransponderReceiverFrequency(
double frequency,
int idx = 0 )
1939 m_sensorList[idx].m_transponderReceiverFrequency = frequency;
1951 double getTrackLifeTime(
int idx = 0)
const
1953 return m_sensorList[idx].m_trackLifeTime;
1965 void setTrackLifeTime(
double lifetime,
int idx = 0 )
1967 m_sensorList[idx].m_trackLifeTime = lifetime;
1979 char* getRadarColorMapFileName(
int idx = 0)
const
1981 return m_sensorList[idx].m_radarColorMapFileName;
1993 void setRadarColorMapFileName(
const char* filepath,
int idx = 0);
2004 int getMaxMTIhistory(
int idx = 0)
const
2006 return m_sensorList[idx].m_maxMTIhistory;
2018 void setMaxMTIhistory(
int history,
int idx = 0 )
2020 m_sensorList[idx].m_maxMTIhistory = history;
2030 void setSensorOptics(
ciOptics optics,
int idx = 0);
2038 ciOptics &getSensorOptics(
int idx = 0);
2046 void setSensorElectronics(
ciElectronics electronics,
int idx = 0);
2062 void setSensorDetector(
ciDetector detector,
int idx = 0);
2078 void setSensorSenSim(
ciSenSim senSim,
int idx = 0);
2086 ciSenSim &getSensorSenSim(
int idx = 0);
2188 char trackFilepath[512];
2209 char QEResponseFile[512];
2228 char spotFilepath[512];
2300 char m_radarColorMapFileName[768];
2317 #endif // _ciSensor_h_