[FSD]FSD improvements and fixes

* Ignore new unused messages
* Correctly increase statistic
This commit is contained in:
Klaus Basan
2019-11-11 02:20:14 +01:00
committed by Mat Sutcliffe
parent 857d5eb005
commit 8633502cdb
2 changed files with 15 additions and 5 deletions

View File

@@ -655,13 +655,17 @@ namespace BlackCore
void CFSDClient::sendClientResponse(ClientQueryType queryType, const QString &receiver) void CFSDClient::sendClientResponse(ClientQueryType queryType, const QString &receiver)
{ {
QStringList responseData; if (queryType == ClientQueryType::Unknown) { return; }
if (queryType == ClientQueryType::IsValidATC) if (queryType == ClientQueryType::IsValidATC)
{ {
this->handleIllegalFsdState("Never use sendClientResponse with IsValidATC from the client"); this->handleIllegalFsdState("Never use sendClientResponse with IsValidATC from the client");
return; return;
} }
else if (queryType == ClientQueryType::Capabilities)
this->increaseStatisticsValue(QStringLiteral("sendClientResponse"), toQString(queryType));
QStringList responseData;
if (queryType == ClientQueryType::Capabilities)
{ {
responseData.clear(); responseData.clear();
if (m_capabilities & Capabilities::AtcInfo) responseData.push_back(toQString(Capabilities::AtcInfo) % "=1"); if (m_capabilities & Capabilities::AtcInfo) responseData.push_back(toQString(Capabilities::AtcInfo) % "=1");
@@ -738,7 +742,6 @@ namespace BlackCore
{ {
this->handleIllegalFsdState(QStringLiteral("Dont send '%1' as pilot client!").arg(toQString(ClientQueryType::AircraftConfig))); this->handleIllegalFsdState(QStringLiteral("Dont send '%1' as pilot client!").arg(toQString(ClientQueryType::AircraftConfig)));
} }
this->increaseStatisticsValue(QStringLiteral("sendClientResponse"), toQString(queryType));
} }
void CFSDClient::sendClientIdentification(const QString &fsdChallenge) void CFSDClient::sendClientIdentification(const QString &fsdChallenge)
@@ -786,12 +789,14 @@ namespace BlackCore
m_messageTypeMapping["#DA"] = MessageType::DeleteATC; m_messageTypeMapping["#DA"] = MessageType::DeleteATC;
m_messageTypeMapping["#DP"] = MessageType::DeletePilot; m_messageTypeMapping["#DP"] = MessageType::DeletePilot;
m_messageTypeMapping["$FP"] = MessageType::FlightPlan; m_messageTypeMapping["$FP"] = MessageType::FlightPlan;
m_messageTypeMapping["#PC"] = MessageType::FlightPlanAcknowledge;
m_messageTypeMapping["$DI"] = MessageType::FsdIdentification; m_messageTypeMapping["$DI"] = MessageType::FsdIdentification;
m_messageTypeMapping["$!!"] = MessageType::KillRequest; m_messageTypeMapping["$!!"] = MessageType::KillRequest;
m_messageTypeMapping["@"] = MessageType::PilotDataUpdate; m_messageTypeMapping["@"] = MessageType::PilotDataUpdate;
m_messageTypeMapping["$PI"] = MessageType::Ping; m_messageTypeMapping["$PI"] = MessageType::Ping;
m_messageTypeMapping["$PO"] = MessageType::Pong; m_messageTypeMapping["$PO"] = MessageType::Pong;
m_messageTypeMapping["$ER"] = MessageType::ServerError; m_messageTypeMapping["$ER"] = MessageType::ServerError;
m_messageTypeMapping["#DL"] = MessageType::ServerHeartbeat;
m_messageTypeMapping["#TM"] = MessageType::TextMessage; m_messageTypeMapping["#TM"] = MessageType::TextMessage;
m_messageTypeMapping["#SB"] = MessageType::PilotClientCom; m_messageTypeMapping["#SB"] = MessageType::PilotClientCom;
} }
@@ -1767,6 +1772,8 @@ namespace BlackCore
{ {
case MessageType::AddAtc: /* ignore */ break; case MessageType::AddAtc: /* ignore */ break;
case MessageType::AddPilot: /* ignore */ break; case MessageType::AddPilot: /* ignore */ break;
case MessageType::ServerHeartbeat: /* ignore */ break;
case MessageType::FlightPlanAcknowledge: /* ignore */ break;
case MessageType::AtcDataUpdate: handleAtcDataUpdate(tokens); break; case MessageType::AtcDataUpdate: handleAtcDataUpdate(tokens); break;
case MessageType::AuthChallenge: handleAuthChallenge(tokens); break; case MessageType::AuthChallenge: handleAuthChallenge(tokens); break;
case MessageType::AuthResponse: handleAuthResponse(tokens); break; case MessageType::AuthResponse: handleAuthResponse(tokens); break;

View File

@@ -17,6 +17,7 @@
#include <QStringList> #include <QStringList>
//! Message type //! Message type
//! \remark FSD Server docu https://studentweb.uvic.ca/~norrisng/fsd-doc/
enum class MessageType enum class MessageType
{ {
Unknown, Unknown,
@@ -31,12 +32,14 @@ enum class MessageType
DeleteATC, DeleteATC,
DeletePilot, DeletePilot,
FlightPlan, FlightPlan,
FlightPlanAcknowledge,
FsdIdentification, FsdIdentification,
KillRequest, KillRequest,
PilotDataUpdate, PilotDataUpdate,
Ping, Ping,
Pong, Pong,
ServerError, ServerError,
ServerHeartbeat,
TextMessage, TextMessage,
PilotClientCom, PilotClientCom,
}; };