From b115e3901d10c29dc94c7efc245ba0aae666beca Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 25 Feb 2014 01:39:39 +0100 Subject: [PATCH] refs #146 , check for valid transponder code. During testing I ran into a situation, where I've received an invalid XPDR code from the network. This check resets XPDR to 0000 , further logging could be provided. --- src/blackcore/network_vatlib.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index 0abaf1ab1..179d5e4af 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -643,7 +643,19 @@ namespace BlackCore mode = CTransponder::ModeC; break; } - CTransponder transponder(tn, pos.xpdrCode, mode); + + // I did have a situation where I got wrong transponger codes (KB) + // So I now check for a valid code in order to detect such codes + CTransponder transponder(tn, 0, mode); + if (CTransponder::isValidTransponderCode(pos.xpdrCode)) + { + transponder = CTransponder(tn, pos.xpdrCode, mode); + } + else + { + // TODO: how do with log this + qDebug() << "Wrong transponder code" << pos.xpdrMode << callsign; + } emit cbvar_cast(cbvar)->aircraftPositionUpdate(callsign, situation, transponder); }