From 0f6b7d910ef80f5704d2358cd2c20724c60845fa Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Fri, 27 Dec 2019 21:40:15 +0000 Subject: [PATCH] Ref T723 [xswiftbus] Expose configuration to enable/disable TCAS traffic --- src/blackmisc/simulation/xplane/xswiftbusconfigwriter.cpp | 8 ++++++++ src/blackmisc/simulation/xplane/xswiftbusconfigwriter.h | 4 ++++ src/xswiftbus/config.cpp | 7 +++++++ src/xswiftbus/config.h | 5 +++++ src/xswiftbus/traffic.cpp | 4 ++++ src/xswiftbus/xswiftbus.conf | 3 +++ 6 files changed, 31 insertions(+) diff --git a/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.cpp b/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.cpp index d86467d5e..75e6ef503 100644 --- a/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.cpp +++ b/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.cpp @@ -41,6 +41,11 @@ namespace BlackMisc m_debug = on; } + void CXSwiftBusConfigWriter::setTcasEnabled(bool on) + { + m_tcas = on; + } + void CXSwiftBusConfigWriter::updateInAllXPlaneVersions() { updateInXPlane9(); @@ -85,6 +90,9 @@ namespace BlackMisc ts << endl; ts << "# Render phase debugging - to help diagnose crashes" << endl; ts << "debug = " << boolToOnOff(m_debug) << endl; + ts << endl; + ts << "# TCAS traffic - to disable in case of crashes" << endl; + ts << "tcas = " << boolToOnOff(m_debug) << endl; } } } // ns diff --git a/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.h b/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.h index 16b1c0295..49f145291 100644 --- a/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.h +++ b/src/blackmisc/simulation/xplane/xswiftbusconfigwriter.h @@ -36,6 +36,9 @@ namespace BlackMisc //! Set debug on/off void setDebugMode(bool on); + //! Set TCAS on/off + void setTcasEnabled(bool on); + //! Update xswiftbus.conf in all known X-Plane versions (XP9 - XP11 are supported) void updateInAllXPlaneVersions(); @@ -56,6 +59,7 @@ namespace BlackMisc QString m_dbusAddress = "127.0.0.1"; QString m_dbusPort = "45001"; bool m_debug = false; + bool m_tcas = true; }; } } diff --git a/src/xswiftbus/config.cpp b/src/xswiftbus/config.cpp index 605eb00b3..a507bf65e 100644 --- a/src/xswiftbus/config.cpp +++ b/src/xswiftbus/config.cpp @@ -60,6 +60,7 @@ namespace XSwiftBus else if (stringCompareCaseInsensitive(key, "dbusAddress")) { valid = parseDBusAddress(value); } else if (stringCompareCaseInsensitive(key, "dbusPort")) { valid = parseDBusPort(value); } else if (stringCompareCaseInsensitive(key, "debug")) { valid = parseDebug(value); } + else if (stringCompareCaseInsensitive(key, "tcasTraffic")) { valid = parseTcas(value); } else { WARNING_LOG("xswiftbus.conf line " + std::to_string(lineNo) + ": Unknown variable " + value + "!"); @@ -129,6 +130,12 @@ namespace XSwiftBus return true; } + bool CConfig::parseTcas(const std::string &value) + { + m_tcas = stringCompareCaseInsensitive(value, "on"); + return true; + } + std::string CConfig::dbusModeToString(DBusMode mode) { switch (mode) diff --git a/src/xswiftbus/config.h b/src/xswiftbus/config.h index 2a1a6901c..56b3552fe 100644 --- a/src/xswiftbus/config.h +++ b/src/xswiftbus/config.h @@ -53,11 +53,15 @@ namespace XSwiftBus //! Get debug on/off bool getDebugMode() const { return m_debug; } + //! Get tcas traffic on/off + bool getTcasEnabled() const { return m_tcas; } + private: bool parseDBusMode(const std::string &value); bool parseDBusAddress(const std::string &value); bool parseDBusPort(const std::string &value); bool parseDebug(const std::string &value); + bool parseTcas(const std::string &value); static std::string dbusModeToString(DBusMode mode); @@ -66,6 +70,7 @@ namespace XSwiftBus std::string m_dbusAddress = "127.0.0.1"; int m_dbusPort = 45001; bool m_debug = false; + bool m_tcas = true; }; } // ns diff --git a/src/xswiftbus/traffic.cpp b/src/xswiftbus/traffic.cpp index 30cbf8e0d..7a80891e4 100644 --- a/src/xswiftbus/traffic.cpp +++ b/src/xswiftbus/traffic.cpp @@ -255,6 +255,10 @@ namespace XSwiftBus { return s_instance->getConfig().getDebugMode() ? 1 : 0; } + else if (strcmp(section, "debug") == 0 && strcmp(name, "tcas_traffic") == 0) + { + return s_instance->getConfig().getTcasEnabled() ? 1 : 0; + } return def; } diff --git a/src/xswiftbus/xswiftbus.conf b/src/xswiftbus/xswiftbus.conf index a165a1904..3278e3db1 100644 --- a/src/xswiftbus/xswiftbus.conf +++ b/src/xswiftbus/xswiftbus.conf @@ -9,3 +9,6 @@ dbusPort = 45001 # Render phase debugging - to help diagnose crashes debug = off + +# TCAS traffic - to disable in case of crashes +tcas = on