mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Minor FSD client text message handling fixes
This commit is contained in:
@@ -445,9 +445,8 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
if (messages.isEmpty()) { return; }
|
if (messages.isEmpty()) { return; }
|
||||||
|
|
||||||
CTextMessageList privateMessages = messages.getPrivateMessages();
|
const CTextMessageList privateMessages = messages.getPrivateMessages().markedAsSent();
|
||||||
privateMessages.markAsSent();
|
for (const auto &message : privateMessages)
|
||||||
for (const auto &message : as_const(privateMessages))
|
|
||||||
{
|
{
|
||||||
if (message.getRecipientCallsign().isEmpty()) { continue; }
|
if (message.getRecipientCallsign().isEmpty()) { continue; }
|
||||||
TextMessage textMessage(m_ownCallsign.asString(), message.getRecipientCallsign().getFsdCallsignString(), message.getMessage());
|
TextMessage textMessage(m_ownCallsign.asString(), message.getRecipientCallsign().getFsdCallsignString(), message.getMessage());
|
||||||
@@ -457,8 +456,7 @@ namespace BlackCore
|
|||||||
this->increaseStatisticsValue(QStringLiteral("sendTextMessages"));
|
this->increaseStatisticsValue(QStringLiteral("sendTextMessages"));
|
||||||
}
|
}
|
||||||
|
|
||||||
CTextMessageList radioMessages = messages.getRadioMessages();
|
const CTextMessageList radioMessages = messages.getRadioMessages().markedAsSent();
|
||||||
radioMessages.markAsSent();
|
|
||||||
QVector<int> frequencies;
|
QVector<int> frequencies;
|
||||||
for (const auto &message : radioMessages)
|
for (const auto &message : radioMessages)
|
||||||
{
|
{
|
||||||
@@ -486,10 +484,10 @@ namespace BlackCore
|
|||||||
void CFSDClient::sendTextMessage(TextMessageGroups receiverGroup, const QString &message)
|
void CFSDClient::sendTextMessage(TextMessageGroups receiverGroup, const QString &message)
|
||||||
{
|
{
|
||||||
QString receiver;
|
QString receiver;
|
||||||
if (receiverGroup == TextMessageGroups::AllClients) { receiver = '*'; }
|
if (receiverGroup == TextMessageGroups::AllClients) { receiver = '*'; }
|
||||||
else if (receiverGroup == TextMessageGroups::AllAtcClients) { receiver = "*A"; }
|
else if (receiverGroup == TextMessageGroups::AllAtcClients) { receiver = QStringLiteral("*A"); }
|
||||||
else if (receiverGroup == TextMessageGroups::AllPilotClients) { receiver = "*P"; }
|
else if (receiverGroup == TextMessageGroups::AllPilotClients) { receiver = QStringLiteral("*P"); }
|
||||||
else if (receiverGroup == TextMessageGroups::AllSups) { receiver = "*S"; }
|
else if (receiverGroup == TextMessageGroups::AllSups) { receiver = QStringLiteral("*S"); }
|
||||||
else { return; }
|
else { return; }
|
||||||
TextMessage textMessage(m_ownCallsign.asString(), receiver, message);
|
TextMessage textMessage(m_ownCallsign.asString(), receiver, message);
|
||||||
sendMessage(textMessage);
|
sendMessage(textMessage);
|
||||||
@@ -502,15 +500,15 @@ namespace BlackCore
|
|||||||
sendTextMessage(msg);
|
sendTextMessage(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFSDClient::sendRadioMessage(const QVector<int> &frequencies, const QString &message)
|
void CFSDClient::sendRadioMessage(const QVector<int> &frequencieskHz, const QString &message)
|
||||||
{
|
{
|
||||||
QStringList receivers;
|
QStringList receivers;
|
||||||
for (const int &frequency : frequencies)
|
for (const int &frequency : frequencieskHz)
|
||||||
{
|
{
|
||||||
receivers.push_back(QStringLiteral("@%1").arg(frequency - 100000));
|
receivers.push_back(QStringLiteral("@%1").arg(frequency - 100000));
|
||||||
}
|
}
|
||||||
|
|
||||||
TextMessage radioMessage(m_ownCallsign.asString(), receivers.join('&'), message);
|
const TextMessage radioMessage(m_ownCallsign.asString(), receivers.join('&'), message);
|
||||||
sendMessage(radioMessage);
|
sendMessage(radioMessage);
|
||||||
this->increaseStatisticsValue(QStringLiteral("sendTextMessages"));
|
this->increaseStatisticsValue(QStringLiteral("sendTextMessages"));
|
||||||
}
|
}
|
||||||
@@ -520,7 +518,7 @@ namespace BlackCore
|
|||||||
// Removed with T353 although it is standard
|
// Removed with T353 although it is standard
|
||||||
// const QString route = QString(flightPlan.getRoute()).replace(" ", ".");
|
// const QString route = QString(flightPlan.getRoute()).replace(" ", ".");
|
||||||
|
|
||||||
const QString route = flightPlan.getRoute();
|
const QString route = flightPlan.getRoute();
|
||||||
const QString remarks = flightPlan.getRemarks();
|
const QString remarks = flightPlan.getRemarks();
|
||||||
|
|
||||||
//! \fixme that would be the official string, can this be used?
|
//! \fixme that would be the official string, can this be used?
|
||||||
@@ -540,23 +538,22 @@ namespace BlackCore
|
|||||||
default: flightType = FlightType::IFR; break;
|
default: flightType = FlightType::IFR; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<int> timePartsEnroute = flightPlan.getEnrouteTime().getHrsMinSecParts();
|
const QList<int> timePartsEnroute = flightPlan.getEnrouteTime().getHrsMinSecParts();
|
||||||
QList<int> timePartsFuel = flightPlan.getFuelTime().getHrsMinSecParts();
|
const QList<int> timePartsFuel = flightPlan.getFuelTime().getHrsMinSecParts();
|
||||||
|
const FlightPlan fp(m_ownCallsign.asString(), "SERVER", flightType, act,
|
||||||
FlightPlan fp(m_ownCallsign.asString(), "SERVER", flightType, act,
|
flightPlan.getCruiseTrueAirspeed().valueInteger(CSpeedUnit::kts()),
|
||||||
flightPlan.getCruiseTrueAirspeed().valueInteger(CSpeedUnit::kts()),
|
flightPlan.getOriginAirportIcao().asString(),
|
||||||
flightPlan.getOriginAirportIcao().asString(),
|
flightPlan.getTakeoffTimePlanned().toUTC().toString("hhmm").toInt(),
|
||||||
flightPlan.getTakeoffTimePlanned().toUTC().toString("hhmm").toInt(),
|
flightPlan.getTakeoffTimeActual().toUTC().toString("hhmm").toInt(),
|
||||||
flightPlan.getTakeoffTimeActual().toUTC().toString("hhmm").toInt(),
|
alt,
|
||||||
alt,
|
flightPlan.getDestinationAirportIcao().asString(),
|
||||||
flightPlan.getDestinationAirportIcao().asString(),
|
timePartsEnroute[CTime::Hours],
|
||||||
timePartsEnroute[CTime::Hours],
|
timePartsEnroute[CTime::Minutes],
|
||||||
timePartsEnroute[CTime::Minutes],
|
timePartsFuel[CTime::Hours],
|
||||||
timePartsFuel[CTime::Hours],
|
timePartsFuel[CTime::Minutes],
|
||||||
timePartsFuel[CTime::Minutes],
|
flightPlan.getAlternateAirportIcao().asString(),
|
||||||
flightPlan.getAlternateAirportIcao().asString(),
|
remarks,
|
||||||
remarks,
|
route);
|
||||||
route);
|
|
||||||
|
|
||||||
sendMessage(fp);
|
sendMessage(fp);
|
||||||
this->increaseStatisticsValue(QStringLiteral("sendFlightPlan"));
|
this->increaseStatisticsValue(QStringLiteral("sendFlightPlan"));
|
||||||
@@ -576,7 +573,7 @@ namespace BlackCore
|
|||||||
QString modelString = m_ownModelString.isEmpty() ? myAircraft.getModelString() : m_ownModelString;
|
QString modelString = m_ownModelString.isEmpty() ? myAircraft.getModelString() : m_ownModelString;
|
||||||
if (modelString.isEmpty()) { modelString = noModelString(); }
|
if (modelString.isEmpty()) { modelString = noModelString(); }
|
||||||
|
|
||||||
PlaneInfoRequestFsinn planeInfoRequestFsinn(m_ownCallsign.asString(), callsign.toQString(),
|
const PlaneInfoRequestFsinn planeInfoRequestFsinn(m_ownCallsign.asString(), callsign.toQString(),
|
||||||
myAircraft.getAirlineIcaoCodeDesignator(),
|
myAircraft.getAirlineIcaoCodeDesignator(),
|
||||||
myAircraft.getAircraftIcaoCodeDesignator(),
|
myAircraft.getAircraftIcaoCodeDesignator(),
|
||||||
myAircraft.getAircraftIcaoCombinedType(),
|
myAircraft.getAircraftIcaoCombinedType(),
|
||||||
@@ -856,7 +853,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
void CFSDClient::handleTextMessage(const QStringList &tokens)
|
void CFSDClient::handleTextMessage(const QStringList &tokens)
|
||||||
{
|
{
|
||||||
TextMessage textMessage = TextMessage::fromTokens(tokens);
|
const TextMessage textMessage = TextMessage::fromTokens(tokens);
|
||||||
|
|
||||||
const CCallsign sender(textMessage.sender());
|
const CCallsign sender(textMessage.sender());
|
||||||
const CCallsign receiver(textMessage.receiver());
|
const CCallsign receiver(textMessage.receiver());
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ namespace BlackCore
|
|||||||
void sendTextMessage(const BlackMisc::Network::CTextMessage &message);
|
void sendTextMessage(const BlackMisc::Network::CTextMessage &message);
|
||||||
void sendTextMessage(TextMessageGroups receiverGroup, const QString &message);
|
void sendTextMessage(TextMessageGroups receiverGroup, const QString &message);
|
||||||
void sendTextMessage(const QString &receiver, const QString &message);
|
void sendTextMessage(const QString &receiver, const QString &message);
|
||||||
void sendRadioMessage(const QVector<int> &frequencies, const QString &message);
|
void sendRadioMessage(const QVector<int> &frequencieskHz, const QString &message);
|
||||||
void sendFlightPlan(const BlackMisc::Aviation::CFlightPlan &flightPlan);
|
void sendFlightPlan(const BlackMisc::Aviation::CFlightPlan &flightPlan);
|
||||||
void sendPlaneInfoRequest(const BlackMisc::Aviation::CCallsign &receiver);
|
void sendPlaneInfoRequest(const BlackMisc::Aviation::CCallsign &receiver);
|
||||||
void sendPlaneInfoRequestFsinn(const BlackMisc::Aviation::CCallsign &callsign);
|
void sendPlaneInfoRequestFsinn(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
@@ -230,7 +230,7 @@ namespace BlackCore
|
|||||||
const QString payload = message.toTokens().join(':');
|
const QString payload = message.toTokens().join(':');
|
||||||
const QString line = message.pdu() + payload;
|
const QString line = message.pdu() + payload;
|
||||||
const QString buffer = line + "\r\n";
|
const QString buffer = line + "\r\n";
|
||||||
QByteArray bufferEncoded = m_fsdTextCodec->fromUnicode(buffer);
|
const QByteArray bufferEncoded = m_fsdTextCodec->fromUnicode(buffer);
|
||||||
emitRawFsdMessage(buffer.trimmed(), true);
|
emitRawFsdMessage(buffer.trimmed(), true);
|
||||||
if (m_printToConsole) { qDebug() << "FSD Sent=>" << bufferEncoded; }
|
if (m_printToConsole) { qDebug() << "FSD Sent=>" << bufferEncoded; }
|
||||||
if (! m_unitTestMode) { m_socket.write(bufferEncoded); }
|
if (! m_unitTestMode) { m_socket.write(bufferEncoded); }
|
||||||
|
|||||||
Reference in New Issue
Block a user