X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Ftcas.hxx;h=97fae4f374b1d2192c4d67c18716a253ebcdc233;hb=52fd6986f88051ccc00fc2d01529568d79d5a56c;hp=6672eb83f2edb6f4f3fb2d383ed4e196b4fbe188;hpb=27a0ff5442ecb7a0cee4834822a5ba270df03a79;p=flightgear.git diff --git a/src/Instrumentation/tcas.hxx b/src/Instrumentation/tcas.hxx index 6672eb83f..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,58 +134,28 @@ 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; } LocalInfo; /*< info structure for local aircraft */ -// ///////////////////////////////////////////////////////////////////////////// -// // TCAS::Timer ////////////////////////////////////////////////////////////// -// ///////////////////////////////////////////////////////////////////////////// -// -// class Timer -// { -// double start_time; -// -// public: -// bool running; -// -// inline Timer () -// : running(false) {} -// -// inline void start () { running = true; start_time = globals->get_sim_time_sec(); } -// inline void stop () { running = false; } -// inline double elapsed () const { assert(running); return globals->get_sim_time_sec() - start_time; } -// inline double start_or_elapsed () -// { -// if (running) -// return elapsed(); -// else -// { -// start(); -// return 0; -// } -// } -// }; - ///////////////////////////////////////////////////////////////////////////// // TCAS::PropertiesHandler /////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// class PropertiesHandler : public FGVoicePlayer::PropertiesHandler { - TCAS *tcas; - public: - PropertiesHandler (TCAS *device) : - FGVoicePlayer::PropertiesHandler(), tcas(device) {} + PropertiesHandler (TCAS *) : + FGVoicePlayer::PropertiesHandler() {} PropertiesHandler (void) : FGVoicePlayer::PropertiesHandler() {} }; @@ -267,6 +236,7 @@ class TCAS : public SGSubsystem void bind (SGPropertyNode* node); void init (void); + void reinit (void); void update (int mode); void clear (void); @@ -292,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; @@ -354,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;} @@ -366,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; @@ -381,7 +357,7 @@ class TCAS : public SGSubsystem }; private: - string name; + std::string name; int num; double nextUpdateTime; int selfTestStep; @@ -409,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); };