X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Ftcas.hxx;h=97fae4f374b1d2192c4d67c18716a253ebcdc233;hb=52fd6986f88051ccc00fc2d01529568d79d5a56c;hp=2288a7dbeb438b2f2c5ca031a64a1280ce90ad02;hpb=8cf024bf5c4d86accd9e3f1605eb7e7b8d6490f8;p=flightgear.git diff --git a/src/Instrumentation/tcas.hxx b/src/Instrumentation/tcas.hxx index 2288a7dbe..97fae4f37 100644 --- a/src/Instrumentation/tcas.hxx +++ b/src/Instrumentation/tcas.hxx @@ -16,7 +16,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. #ifndef __INSTRUMENTS_TCAS_HXX #define __INSTRUMENTS_TCAS_HXX @@ -28,9 +28,8 @@ #include #include -#include #include -#include "mk_viii.hxx" // FGVoicePlayer only +#include using std::vector; using std::deque; @@ -115,7 +114,7 @@ class TCAS : public SGSubsystem typedef struct { - string callsign; + std::string callsign; bool verticalTA; bool verticalRA; bool horizontalTA; @@ -135,13 +134,14 @@ class TCAS : public SGSubsystem double RAtimestamp; } TrackerTarget; - typedef map TrackerTargets; + typedef map TrackerTargets; typedef struct { double lat; double lon; - float altFt; + float pressureAltFt; + float radarAltFt; float heading; float velocityKt; float verticalFps; @@ -153,11 +153,9 @@ class TCAS : public SGSubsystem class PropertiesHandler : public FGVoicePlayer::PropertiesHandler { - TCAS *tcas; - public: - PropertiesHandler (TCAS *device) : - FGVoicePlayer::PropertiesHandler(), tcas(device) {} + PropertiesHandler (TCAS *) : + FGVoicePlayer::PropertiesHandler() {} PropertiesHandler (void) : FGVoicePlayer::PropertiesHandler() {} }; @@ -238,6 +236,7 @@ class TCAS : public SGSubsystem void bind (SGPropertyNode* node); void init (void); + void reinit (void); void update (int mode); void clear (void); @@ -263,15 +262,14 @@ class TCAS : public SGSubsystem void update (void); - void add (const string callsign, int detectedLevel); + void add (const std::string callsign, int detectedLevel); bool active (void) { return haveTargets;} bool newTraffic (void) { return newTargets;} - bool isTracked (string callsign) { if (!haveTargets) return false;else return _isTracked(callsign);} - bool _isTracked (string callsign); - int getThreatLevel (string callsign); + bool isTracked (std::string callsign) { if (!haveTargets) return false;else return _isTracked(callsign);} + bool _isTracked (std::string callsign); + int getThreatLevel (std::string callsign); private: - TCAS* tcas; double currentTime; bool haveTargets; bool newTargets; @@ -325,8 +323,12 @@ class TCAS : public SGSubsystem void horizontalThreat (float bearing, float distanceNm, float heading, float velocityKt); - void setAlt (float altFt) { self.altFt = altFt;} - float getAlt (void) { return self.altFt;} + void setPressureAlt (float altFt) { self.pressureAltFt = altFt;} + float getPressureAlt (void) { return self.pressureAltFt;} + + void setRadarAlt (float altFt) { self.radarAltFt = altFt;} + float getRadarAlt (void) { return self.radarAltFt;} + float getVelocityKt (void) { return self.velocityKt;} int getRASense (void) { return currentThreat.RASense;} @@ -337,11 +339,14 @@ class TCAS : public SGSubsystem static const SensitivityLevel sensitivityLevels[]; TCAS* tcas; +#ifdef FEATURE_TCAS_DEBUG_THREAT_DETECTOR int checkCount; - +#endif // of FEATURE_TCAS_DEBUG_THREAT_DETECTOR + SGPropertyNode_ptr nodeLat; SGPropertyNode_ptr nodeLon; - SGPropertyNode_ptr nodeAlt; + SGPropertyNode_ptr nodePressureAlt; + SGPropertyNode_ptr nodeRadarAlt; SGPropertyNode_ptr nodeHeading; SGPropertyNode_ptr nodeVelocity; SGPropertyNode_ptr nodeVerticalFps; @@ -352,7 +357,7 @@ class TCAS : public SGSubsystem }; private: - string name; + std::string name; int num; double nextUpdateTime; int selfTestStep; @@ -380,6 +385,7 @@ public: virtual void bind (void); virtual void unbind (void); virtual void init (void); + virtual void reinit (void); virtual void update (double dt); };