mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 20:40:29 +08:00
INetwork: refactor request/reply pattern and sending position updates to be more encapsulated
refs #81
This commit is contained in:
@@ -26,13 +26,10 @@ Client::Client(BlackMisc::IContext &ctx)
|
|||||||
connect(m_net, &INetwork::atisQueryReplyReceived, this, &Client::atisQueryReplyReceived);
|
connect(m_net, &INetwork::atisQueryReplyReceived, this, &Client::atisQueryReplyReceived);
|
||||||
connect(m_net, &INetwork::nameQueryReplyReceived, this, &Client::nameQueryReplyReceived);
|
connect(m_net, &INetwork::nameQueryReplyReceived, this, &Client::nameQueryReplyReceived);
|
||||||
connect(m_net, &INetwork::capabilitiesQueryReplyReceived, this, &Client::capabilitiesQueryReplyReceived);
|
connect(m_net, &INetwork::capabilitiesQueryReplyReceived, this, &Client::capabilitiesQueryReplyReceived);
|
||||||
connect(m_net, &INetwork::frequencyQueryRequestReceived, this, &Client::freqQueryRequestReceived);
|
|
||||||
connect(m_net, &INetwork::nameQueryRequestReceived, this, &Client::nameQueryRequestReceived);
|
|
||||||
connect(m_net, &INetwork::kicked, this, &Client::kicked);
|
connect(m_net, &INetwork::kicked, this, &Client::kicked);
|
||||||
connect(m_net, &INetwork::metarReceived, this, &Client::metarReceived);
|
connect(m_net, &INetwork::metarReceived, this, &Client::metarReceived);
|
||||||
connect(m_net, &INetwork::pilotDisconnected, this, &Client::pilotDisconnected);
|
connect(m_net, &INetwork::pilotDisconnected, this, &Client::pilotDisconnected);
|
||||||
connect(m_net, &INetwork::aircraftInfoReceived, this, &Client::aircraftInfoReceived);
|
connect(m_net, &INetwork::aircraftInfoReceived, this, &Client::aircraftInfoReceived);
|
||||||
connect(m_net, &INetwork::aircraftInfoRequestReceived, this, &Client::aircraftInfoRequestReceived);
|
|
||||||
connect(m_net, &INetwork::pong, this, &Client::pong);
|
connect(m_net, &INetwork::pong, this, &Client::pong);
|
||||||
connect(m_net, &INetwork::textMessagesReceived, this, &Client::textMessagesReceived);
|
connect(m_net, &INetwork::textMessagesReceived, this, &Client::textMessagesReceived);
|
||||||
|
|
||||||
@@ -49,10 +46,11 @@ Client::Client(BlackMisc::IContext &ctx)
|
|||||||
connect(this, &Client::sendAtisQuery, m_net, &INetwork::sendAtisQuery);
|
connect(this, &Client::sendAtisQuery, m_net, &INetwork::sendAtisQuery);
|
||||||
connect(this, &Client::sendNameQuery, m_net, &INetwork::sendNameQuery);
|
connect(this, &Client::sendNameQuery, m_net, &INetwork::sendNameQuery);
|
||||||
connect(this, &Client::sendCapabilitiesQuery, m_net, &INetwork::sendCapabilitiesQuery);
|
connect(this, &Client::sendCapabilitiesQuery, m_net, &INetwork::sendCapabilitiesQuery);
|
||||||
connect(this, &Client::replyToFreqQuery, m_net, &INetwork::replyToFrequencyQuery);
|
|
||||||
connect(this, &Client::replyToNameQuery, m_net, &INetwork::replyToNameQuery);
|
|
||||||
connect(this, &Client::requestPlaneInfo, m_net, &INetwork::requestAircraftInfo);
|
connect(this, &Client::requestPlaneInfo, m_net, &INetwork::requestAircraftInfo);
|
||||||
connect(this, &Client::sendAircraftInfo, m_net, &INetwork::sendAircraftInfo);
|
connect(this, &Client::setOwnAircraftPosition, m_net, &INetwork::setOwnAircraftPosition);
|
||||||
|
connect(this, &Client::setOwnAircraftTransponder, m_net, &INetwork::setOwnAircraftTransponder);
|
||||||
|
connect(this, &Client::setOwnAircraftFrequency, m_net, &INetwork::setOwnAircraftFrequency);
|
||||||
|
connect(this, &Client::setOwnAircraftIcao, m_net, &INetwork::setOwnAircraftIcao);
|
||||||
connect(this, &Client::ping, m_net, &INetwork::ping);
|
connect(this, &Client::ping, m_net, &INetwork::ping);
|
||||||
connect(this, &Client::requestMetar, m_net, &INetwork::requestMetar);
|
connect(this, &Client::requestMetar, m_net, &INetwork::requestMetar);
|
||||||
connect(this, &Client::requestWeatherData, m_net, &INetwork::requestWeatherData);
|
connect(this, &Client::requestWeatherData, m_net, &INetwork::requestWeatherData);
|
||||||
@@ -75,10 +73,11 @@ Client::Client(BlackMisc::IContext &ctx)
|
|||||||
m_commands["atis"] = std::bind(&Client::sendAtisQueryCmd, this, _1);
|
m_commands["atis"] = std::bind(&Client::sendAtisQueryCmd, this, _1);
|
||||||
m_commands["name"] = std::bind(&Client::sendNameQueryCmd, this, _1);
|
m_commands["name"] = std::bind(&Client::sendNameQueryCmd, this, _1);
|
||||||
m_commands["caps"] = std::bind(&Client::sendCapabilitiesQueryCmd, this, _1);
|
m_commands["caps"] = std::bind(&Client::sendCapabilitiesQueryCmd, this, _1);
|
||||||
m_commands["freqreply"] = std::bind(&Client::replyToFreqQueryCmd, this, _1);
|
|
||||||
m_commands["namereply"] = std::bind(&Client::replyToNameQueryCmd, this, _1);
|
|
||||||
m_commands["aircraftinfo"] = std::bind(&Client::requestAircraftInfoCmd, this, _1);
|
m_commands["aircraftinfo"] = std::bind(&Client::requestAircraftInfoCmd, this, _1);
|
||||||
m_commands["aircraftinforeply"] = std::bind(&Client::sendAircraftInfoCmd, this, _1);
|
m_commands["setposition"] = std::bind(&Client::setOwnAircraftPositionCmd, this, _1);
|
||||||
|
m_commands["setsquawk"] = std::bind(&Client::setOwnAircraftTransponderCmd, this, _1);
|
||||||
|
m_commands["setfreq"] = std::bind(&Client::setOwnAircraftFrequencyCmd, this, _1);
|
||||||
|
m_commands["seticao"] = std::bind(&Client::setOwnAircraftIcaoCmd, this, _1);
|
||||||
m_commands["ping"] = std::bind(&Client::pingCmd, this, _1);
|
m_commands["ping"] = std::bind(&Client::pingCmd, this, _1);
|
||||||
m_commands["metar"] = std::bind(&Client::requestMetarCmd, this, _1);
|
m_commands["metar"] = std::bind(&Client::requestMetarCmd, this, _1);
|
||||||
m_commands["weather"] = std::bind(&Client::requestWeatherDataCmd, this, _1);
|
m_commands["weather"] = std::bind(&Client::requestWeatherDataCmd, this, _1);
|
||||||
@@ -228,23 +227,6 @@ void Client::sendCapabilitiesQueryCmd(QTextStream &args)
|
|||||||
emit sendCapabilitiesQuery(callsign);
|
emit sendCapabilitiesQuery(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::replyToFreqQueryCmd(QTextStream &args)
|
|
||||||
{
|
|
||||||
QString callsign;
|
|
||||||
double num;
|
|
||||||
args >> callsign >> num;
|
|
||||||
BlackMisc::PhysicalQuantities::CFrequency freq(num, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz());
|
|
||||||
emit replyToFreqQuery(callsign, freq);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::replyToNameQueryCmd(QTextStream &args)
|
|
||||||
{
|
|
||||||
QString callsign;
|
|
||||||
QString realname;
|
|
||||||
args >> callsign >> realname;
|
|
||||||
emit replyToNameQuery(callsign, realname);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::requestAircraftInfoCmd(QTextStream &args)
|
void Client::requestAircraftInfoCmd(QTextStream &args)
|
||||||
{
|
{
|
||||||
QString callsign;
|
QString callsign;
|
||||||
@@ -252,7 +234,16 @@ void Client::requestAircraftInfoCmd(QTextStream &args)
|
|||||||
emit requestPlaneInfo(callsign);
|
emit requestPlaneInfo(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::sendAircraftInfoCmd(QTextStream &args)
|
void Client::setOwnAircraftFrequencyCmd(QTextStream &args)
|
||||||
|
{
|
||||||
|
QString callsign;
|
||||||
|
double num;
|
||||||
|
args >> callsign >> num;
|
||||||
|
BlackMisc::PhysicalQuantities::CFrequency freq(num, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz());
|
||||||
|
emit setOwnAircraftFrequency(freq);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Client::setOwnAircraftIcaoCmd(QTextStream &args)
|
||||||
{
|
{
|
||||||
QString callsign;
|
QString callsign;
|
||||||
QString acTypeICAO;
|
QString acTypeICAO;
|
||||||
@@ -260,7 +251,37 @@ void Client::sendAircraftInfoCmd(QTextStream &args)
|
|||||||
QString livery;
|
QString livery;
|
||||||
args >> callsign >> acTypeICAO >> airlineICAO >> livery;
|
args >> callsign >> acTypeICAO >> airlineICAO >> livery;
|
||||||
BlackMisc::Aviation::CAircraftIcao icao(acTypeICAO, "L2J", airlineICAO, livery, "");
|
BlackMisc::Aviation::CAircraftIcao icao(acTypeICAO, "L2J", airlineICAO, livery, "");
|
||||||
emit sendAircraftInfo(callsign, icao);
|
emit setOwnAircraftIcao(icao);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Client::setOwnAircraftPositionCmd(QTextStream &args)
|
||||||
|
{
|
||||||
|
QString lat;
|
||||||
|
QString lon;
|
||||||
|
QString alt;
|
||||||
|
QString speed;
|
||||||
|
QString hdg;
|
||||||
|
QString pitch;
|
||||||
|
QString bank;
|
||||||
|
args >> lat >> lon >> alt >> speed >> hdg >> pitch >> bank;
|
||||||
|
BlackMisc::Aviation::CAircraftSituation position(BlackMisc::Geo::CCoordinateGeodetic(lat.toDouble(), lon.toDouble(), 0),
|
||||||
|
BlackMisc::Aviation::CAltitude(alt.toDouble(), BlackMisc::Aviation::CAltitude::MeanSeaLevel, BlackMisc::PhysicalQuantities::CLengthUnit::ft()),
|
||||||
|
BlackMisc::Aviation::CHeading(hdg.toDouble(), BlackMisc::Aviation::CHeading::True, BlackMisc::PhysicalQuantities::CAngleUnit::deg()),
|
||||||
|
BlackMisc::PhysicalQuantities::CAngle(pitch.toDouble(), BlackMisc::PhysicalQuantities::CAngleUnit::deg()),
|
||||||
|
BlackMisc::PhysicalQuantities::CAngle(bank.toDouble(), BlackMisc::PhysicalQuantities::CAngleUnit::deg()),
|
||||||
|
BlackMisc::PhysicalQuantities::CSpeed(speed.toDouble(), BlackMisc::PhysicalQuantities::CSpeedUnit::kts()));
|
||||||
|
emit setOwnAircraftPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Client::setOwnAircraftTransponderCmd(QTextStream &args)
|
||||||
|
{
|
||||||
|
QString code;
|
||||||
|
QString mode;
|
||||||
|
args >> code >> mode;
|
||||||
|
BlackMisc::Aviation::CTransponder xpdr("transponder", code.toInt(), BlackMisc::Aviation::CTransponder::StateStandby);
|
||||||
|
if (mode == "c") { xpdr.setTransponderCode(BlackMisc::Aviation::CTransponder::ModeC); }
|
||||||
|
else if (mode == "i") { xpdr.setTransponderCode(BlackMisc::Aviation::CTransponder::StateIdent); }
|
||||||
|
emit setOwnAircraftTransponder(xpdr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::pingCmd(QTextStream &args)
|
void Client::pingCmd(QTextStream &args)
|
||||||
@@ -359,16 +380,6 @@ void Client::capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign
|
|||||||
std::cout << "CAPS_REPLY " << callsign << " " << flags << std::endl;
|
std::cout << "CAPS_REPLY " << callsign << " " << flags << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::freqQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign)
|
|
||||||
{
|
|
||||||
std::cout << "FREQ_QUERY " << callsign << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::nameQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign)
|
|
||||||
{
|
|
||||||
std::cout << "NAME_QUERY " << callsign << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::kicked(const QString &msg)
|
void Client::kicked(const QString &msg)
|
||||||
{
|
{
|
||||||
std::cout << "KICKED " << msg.toStdString() << std::endl;
|
std::cout << "KICKED " << msg.toStdString() << std::endl;
|
||||||
@@ -389,11 +400,6 @@ void Client::aircraftInfoReceived(const BlackMisc::Aviation::CCallsign &callsign
|
|||||||
std::cout << "PLANE_INFO_REPLY " << callsign << " " << icaoData.toStdString();
|
std::cout << "PLANE_INFO_REPLY " << callsign << " " << icaoData.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::aircraftInfoRequestReceived(const BlackMisc::Aviation::CCallsign &callsign)
|
|
||||||
{
|
|
||||||
std::cout << "PLANE_INFO_QUERY " << callsign << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client::pong(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime)
|
void Client::pong(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime)
|
||||||
{
|
{
|
||||||
std::cout << "PONG " << callsign << " " << elapsedTime << std::endl;
|
std::cout << "PONG " << callsign << " " << elapsedTime << std::endl;
|
||||||
|
|||||||
@@ -44,10 +44,11 @@ private: //commands
|
|||||||
void sendAtisQueryCmd(QTextStream &args);
|
void sendAtisQueryCmd(QTextStream &args);
|
||||||
void sendNameQueryCmd(QTextStream &args);
|
void sendNameQueryCmd(QTextStream &args);
|
||||||
void sendCapabilitiesQueryCmd(QTextStream &args);
|
void sendCapabilitiesQueryCmd(QTextStream &args);
|
||||||
void replyToFreqQueryCmd(QTextStream &args);
|
|
||||||
void replyToNameQueryCmd(QTextStream &args);
|
|
||||||
void requestAircraftInfoCmd(QTextStream &args);
|
void requestAircraftInfoCmd(QTextStream &args);
|
||||||
void sendAircraftInfoCmd(QTextStream &args);
|
void setOwnAircraftPositionCmd(QTextStream &args);
|
||||||
|
void setOwnAircraftTransponderCmd(QTextStream &args);
|
||||||
|
void setOwnAircraftFrequencyCmd(QTextStream &args);
|
||||||
|
void setOwnAircraftIcaoCmd(QTextStream &args);
|
||||||
void pingCmd(QTextStream &args);
|
void pingCmd(QTextStream &args);
|
||||||
void requestMetarCmd(QTextStream &args);
|
void requestMetarCmd(QTextStream &args);
|
||||||
void requestWeatherDataCmd(QTextStream &args);
|
void requestWeatherDataCmd(QTextStream &args);
|
||||||
@@ -67,10 +68,11 @@ signals: //to send to INetwork
|
|||||||
void sendAtisQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
void sendAtisQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void replyToFreqQuery(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
|
||||||
void replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
|
||||||
void requestPlaneInfo(const BlackMisc::Aviation::CCallsign &callsign);
|
void requestPlaneInfo(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao);
|
void setOwnAircraftPosition(const BlackMisc::Aviation::CAircraftSituation &position);
|
||||||
|
void setOwnAircraftTransponder(const BlackMisc::Aviation::CTransponder &xpdr);
|
||||||
|
void setOwnAircraftFrequency(const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
||||||
|
void setOwnAircraftIcao(const BlackMisc::Aviation::CAircraftIcao &icao);
|
||||||
void ping(const BlackMisc::Aviation::CCallsign &callsign);
|
void ping(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void requestMetar(const QString &airportICAO);
|
void requestMetar(const QString &airportICAO);
|
||||||
void requestWeatherData(const QString &airportICAO);
|
void requestWeatherData(const QString &airportICAO);
|
||||||
@@ -91,13 +93,10 @@ public slots: //to receive from INetwork
|
|||||||
void atisQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &data);
|
void atisQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &data);
|
||||||
void nameQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
void nameQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
||||||
void capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags);
|
void capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags);
|
||||||
void freqQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
void nameQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
void kicked(const QString &msg);
|
void kicked(const QString &msg);
|
||||||
void metarReceived(const QString &data);
|
void metarReceived(const QString &data);
|
||||||
void pilotDisconnected(const BlackMisc::Aviation::CCallsign &callsign);
|
void pilotDisconnected(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void aircraftInfoReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icaoData);
|
void aircraftInfoReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icaoData);
|
||||||
void aircraftInfoRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
void pong(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime);
|
void pong(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime);
|
||||||
void textMessagesReceived(const BlackMisc::Network::CTextMessageList &messages);
|
void textMessagesReceived(const BlackMisc::Network::CTextMessageList &messages);
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ namespace BlackCore
|
|||||||
virtual void ping(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void ping(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
|
|
||||||
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
virtual void replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname) = 0;
|
|
||||||
virtual void sendIpQuery() = 0;
|
virtual void sendIpQuery() = 0;
|
||||||
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
|
|
||||||
@@ -77,10 +76,11 @@ namespace BlackCore
|
|||||||
// Aircraft
|
// Aircraft
|
||||||
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
virtual void sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao) = 0;
|
|
||||||
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign) = 0;
|
||||||
virtual void replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq) = 0;
|
virtual void setOwnAircraftPosition(const BlackMisc::Aviation::CAircraftSituation &aircraft) = 0;
|
||||||
// TODO virtual void setOwnAircraftPosition(...) = 0;
|
virtual void setOwnAircraftTransponder(const BlackMisc::Aviation::CTransponder &xpdr) = 0;
|
||||||
|
virtual void setOwnAircraftFrequency(const BlackMisc::PhysicalQuantities::CFrequency &freq) = 0;
|
||||||
|
virtual void setOwnAircraftIcao(const BlackMisc::Aviation::CAircraftIcao &icao) = 0;
|
||||||
|
|
||||||
// Weather / flight plan
|
// Weather / flight plan
|
||||||
virtual void requestMetar(const QString &airportICAO) = 0;
|
virtual void requestMetar(const QString &airportICAO) = 0;
|
||||||
@@ -99,12 +99,10 @@ namespace BlackCore
|
|||||||
// Aircraft
|
// Aircraft
|
||||||
void pilotDisconnected(const BlackMisc::Aviation::CCallsign &callsign);
|
void pilotDisconnected(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
void aircraftInfoReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao);
|
void aircraftInfoReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao);
|
||||||
void aircraftInfoRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
void aircraftPositionUpdate(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation,
|
void aircraftPositionUpdate(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation,
|
||||||
const BlackMisc::Aviation::CTransponder &transponder);
|
const BlackMisc::Aviation::CTransponder &transponder);
|
||||||
// TODO void aircraftInterimPositionUpdate(...);
|
// TODO void aircraftInterimPositionUpdate(...);
|
||||||
void frequencyQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
void frequencyQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
||||||
void frequencyQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
|
|
||||||
// Connection / Network in general
|
// Connection / Network in general
|
||||||
void kicked(const QString &msg);
|
void kicked(const QString &msg);
|
||||||
@@ -117,9 +115,7 @@ namespace BlackCore
|
|||||||
void capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags);
|
void capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags);
|
||||||
void ipQueryReplyReceived(const QString &ip);
|
void ipQueryReplyReceived(const QString &ip);
|
||||||
void serverQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &hostname);
|
void serverQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &hostname);
|
||||||
|
|
||||||
void nameQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
void nameQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
||||||
void nameQueryRequestReceived(const BlackMisc::Aviation::CCallsign &callsign);
|
|
||||||
|
|
||||||
// Text messages
|
// Text messages
|
||||||
void textMessagesReceived(const BlackMisc::Network::CTextMessageList &messages);
|
void textMessagesReceived(const BlackMisc::Network::CTextMessageList &messages);
|
||||||
@@ -143,7 +139,6 @@ namespace BlackCore
|
|||||||
virtual void terminateConnection() {}
|
virtual void terminateConnection() {}
|
||||||
virtual void ping(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void ping(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void replyToNameQuery(const BlackMisc::Aviation::CCallsign &, const QString &) {}
|
|
||||||
virtual void sendIpQuery() {}
|
virtual void sendIpQuery() {}
|
||||||
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void sendTextMessages(const BlackMisc::Network::CTextMessageList &) {}
|
virtual void sendTextMessages(const BlackMisc::Network::CTextMessageList &) {}
|
||||||
@@ -151,9 +146,11 @@ namespace BlackCore
|
|||||||
virtual void sendAtisQuery(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void sendAtisQuery(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void sendAircraftInfo(const BlackMisc::Aviation::CCallsign &, const BlackMisc::Aviation::CAircraftIcao &) {}
|
|
||||||
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &) {}
|
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &) {}
|
||||||
virtual void replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &, const BlackMisc::PhysicalQuantities::CFrequency &) {}
|
virtual void setOwnAircraftPosition(const BlackMisc::Aviation::CAircraftSituation &) {}
|
||||||
|
virtual void setOwnAircraftTransponder(const BlackMisc::Aviation::CTransponder &) {}
|
||||||
|
virtual void setOwnAircraftFrequency(const BlackMisc::PhysicalQuantities::CFrequency &) {}
|
||||||
|
virtual void setOwnAircraftIcao(const BlackMisc::Aviation::CAircraftIcao &) {}
|
||||||
virtual void requestMetar(const QString &) {}
|
virtual void requestMetar(const QString &) {}
|
||||||
virtual void requestWeatherData(const QString &) {}
|
virtual void requestWeatherData(const QString &) {}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -75,15 +75,15 @@ namespace BlackCore
|
|||||||
m_net->InstallOnPilotInfoRequestReceivedEvent(onPilotInfoRequestReceived, this);
|
m_net->InstallOnPilotInfoRequestReceivedEvent(onPilotInfoRequestReceived, this);
|
||||||
m_net->InstallOnPilotInfoReceivedEvent(onPilotInfoReceived, this);
|
m_net->InstallOnPilotInfoReceivedEvent(onPilotInfoReceived, this);
|
||||||
|
|
||||||
m_timer.start(c_updateIntervalMillisecs, this);
|
connect(&m_processingTimer, SIGNAL(timeout()), this, SLOT(process()));
|
||||||
|
connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update()));
|
||||||
|
m_processingTimer.start(c_processingIntervalMsec);
|
||||||
}
|
}
|
||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkVatlib::~NetworkVatlib()
|
NetworkVatlib::~NetworkVatlib()
|
||||||
{
|
{
|
||||||
m_timer.stop();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (m_net->IsNetworkConnected())
|
if (m_net->IsNetworkConnected())
|
||||||
@@ -99,7 +99,7 @@ namespace BlackCore
|
|||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::timerEvent(QTimerEvent *)
|
void NetworkVatlib::process()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -111,6 +111,35 @@ namespace BlackCore
|
|||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetworkVatlib::update()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (m_net->IsValid() && m_net->IsSessionExists())
|
||||||
|
{
|
||||||
|
Cvatlib_Network::PilotPosUpdate pos;
|
||||||
|
pos.altAdj = 0; // TODO
|
||||||
|
pos.altTrue = m_ownAircraft.getAltitude().value(CLengthUnit::ft());
|
||||||
|
pos.bank = m_ownAircraft.getBank().value(CAngleUnit::deg());
|
||||||
|
pos.groundSpeed = m_ownAircraft.getGroundSpeed().value(CSpeedUnit::kts());
|
||||||
|
pos.heading = m_ownAircraft.getHeading().value(CAngleUnit::deg());
|
||||||
|
pos.lat = m_ownAircraft.getPosition().latitude().value(CAngleUnit::deg());
|
||||||
|
pos.lon = m_ownAircraft.getPosition().longitude().value(CAngleUnit::deg());
|
||||||
|
pos.pitch = m_ownAircraft.getPitch().value(CAngleUnit::deg());
|
||||||
|
pos.rating = Cvatlib_Network::pilotRating_Unknown;
|
||||||
|
pos.xpdrCode = m_ownTransponder.getTransponderCodeFormatted().toShort();
|
||||||
|
switch (m_ownTransponder.getTransponderMode())
|
||||||
|
{
|
||||||
|
case CTransponder::ModeC: pos.xpdrMode = Cvatlib_Network::xpndrMode_Normal; break;
|
||||||
|
case CTransponder::StateIdent: pos.xpdrMode = Cvatlib_Network::xpndrMode_Ident; break;
|
||||||
|
default: pos.xpdrMode = Cvatlib_Network::xpndrMode_Standby; break;
|
||||||
|
}
|
||||||
|
m_net->SendPilotUpdate(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray NetworkVatlib::toFSD(QString qstr) const
|
QByteArray NetworkVatlib::toFSD(QString qstr) const
|
||||||
{
|
{
|
||||||
return m_fsdTextCodec->fromUnicode(qstr);
|
return m_fsdTextCodec->fromUnicode(qstr);
|
||||||
@@ -202,11 +231,36 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_net->LogoffAndDisconnect(c_logoffTimeoutSeconds);
|
m_net->LogoffAndDisconnect(c_logoffTimeoutSec);
|
||||||
}
|
}
|
||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetworkVatlib::setOwnAircraftPosition(const BlackMisc::Aviation::CAircraftSituation &aircraft)
|
||||||
|
{
|
||||||
|
m_ownAircraft = aircraft;
|
||||||
|
|
||||||
|
if (! m_updateTimer.isActive())
|
||||||
|
{
|
||||||
|
m_updateTimer.start(c_updateIntervalMsec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void NetworkVatlib::setOwnAircraftTransponder(const BlackMisc::Aviation::CTransponder &xpdr)
|
||||||
|
{
|
||||||
|
m_ownTransponder = xpdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NetworkVatlib::setOwnAircraftFrequency(const BlackMisc::PhysicalQuantities::CFrequency &freq)
|
||||||
|
{
|
||||||
|
m_ownFrequency = freq;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NetworkVatlib::setOwnAircraftIcao(const BlackMisc::Aviation::CAircraftIcao &icao)
|
||||||
|
{
|
||||||
|
m_ownAircraftIcao = icao;
|
||||||
|
}
|
||||||
|
|
||||||
void NetworkVatlib::sendTextMessages(const BlackMisc::Network::CTextMessageList &messages)
|
void NetworkVatlib::sendTextMessages(const BlackMisc::Network::CTextMessageList &messages)
|
||||||
{
|
{
|
||||||
if (messages.isEmpty()) return;
|
if (messages.isEmpty()) return;
|
||||||
@@ -296,20 +350,20 @@ namespace BlackCore
|
|||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq)
|
void NetworkVatlib::replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_net->ReplyToInfoQuery(Cvatlib_Network::infoQuery_Freq, toFSD(callsign), toFSD(QString::number(freq.value(CFrequencyUnit::MHz()), 'f', 3)));
|
m_net->ReplyToInfoQuery(Cvatlib_Network::infoQuery_Freq, toFSD(callsign), toFSD(QString::number(m_ownFrequency.value(CFrequencyUnit::MHz()), 'f', 3)));
|
||||||
}
|
}
|
||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname)
|
void NetworkVatlib::replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_net->ReplyToInfoQuery(Cvatlib_Network::infoQuery_Name, toFSD(callsign), toFSD(realname));
|
m_net->ReplyToInfoQuery(Cvatlib_Network::infoQuery_Name, toFSD(callsign), toFSD(m_realname));
|
||||||
}
|
}
|
||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
@@ -323,25 +377,25 @@ namespace BlackCore
|
|||||||
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao)
|
void NetworkVatlib::sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
const QByteArray acTypeICAObytes = toFSD(icao.getDesignator());
|
const QByteArray acTypeICAObytes = toFSD(m_ownAircraftIcao.getDesignator());
|
||||||
const QByteArray airlineICAObytes = toFSD(icao.getAirline());
|
const QByteArray airlineICAObytes = toFSD(m_ownAircraftIcao.getAirline());
|
||||||
const QByteArray liverybytes = toFSD(icao.getLivery());
|
const QByteArray liverybytes = toFSD(m_ownAircraftIcao.getLivery());
|
||||||
std::vector<const char *> keysValues;
|
std::vector<const char *> keysValues;
|
||||||
if (!icao.getDesignator().isEmpty())
|
if (!m_ownAircraftIcao.getDesignator().isEmpty())
|
||||||
{
|
{
|
||||||
keysValues.push_back(m_net->acinfo_Equipment);
|
keysValues.push_back(m_net->acinfo_Equipment);
|
||||||
keysValues.push_back(acTypeICAObytes);
|
keysValues.push_back(acTypeICAObytes);
|
||||||
}
|
}
|
||||||
if (icao.hasAirline())
|
if (m_ownAircraftIcao.hasAirline())
|
||||||
{
|
{
|
||||||
keysValues.push_back(m_net->acinfo_Airline);
|
keysValues.push_back(m_net->acinfo_Airline);
|
||||||
keysValues.push_back(airlineICAObytes);
|
keysValues.push_back(airlineICAObytes);
|
||||||
}
|
}
|
||||||
if (icao.hasLivery())
|
if (m_ownAircraftIcao.hasLivery())
|
||||||
{
|
{
|
||||||
keysValues.push_back(m_net->acinfo_Livery);
|
keysValues.push_back(m_net->acinfo_Livery);
|
||||||
keysValues.push_back(liverybytes);
|
keysValues.push_back(liverybytes);
|
||||||
@@ -490,12 +544,21 @@ namespace BlackCore
|
|||||||
emit cbvar_cast(cbvar)->metarReceived(cbvar_cast(cbvar)->fromFSD(data));
|
emit cbvar_cast(cbvar)->metarReceived(cbvar_cast(cbvar)->fromFSD(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::onInfoQueryRequestReceived(Cvatlib_Network *, const char *callsign, Cvatlib_Network::infoQuery type, const char *, void *cbvar)
|
void NetworkVatlib::onInfoQueryRequestReceived(Cvatlib_Network *, const char *callsignString, Cvatlib_Network::infoQuery type, const char *, void *cbvar)
|
||||||
{
|
{
|
||||||
|
auto timer = new QTimer(cbvar_cast(cbvar));
|
||||||
|
timer->setSingleShot(true);
|
||||||
|
timer->start(0);
|
||||||
|
|
||||||
|
BlackMisc::Aviation::CCallsign callsign(callsignString);
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case Cvatlib_Network::infoQuery_Freq: emit cbvar_cast(cbvar)->frequencyQueryRequestReceived(cbvar_cast(cbvar)->fromFSD(callsign)); break;
|
case Cvatlib_Network::infoQuery_Freq:
|
||||||
case Cvatlib_Network::infoQuery_Name: emit cbvar_cast(cbvar)->nameQueryRequestReceived(cbvar_cast(cbvar)->fromFSD(callsign)); break;
|
connect(timer, &QTimer::timeout, [ = ]() { cbvar_cast(cbvar)->replyToFrequencyQuery(callsign); });
|
||||||
|
break;
|
||||||
|
case Cvatlib_Network::infoQuery_Name:
|
||||||
|
connect(timer, &QTimer::timeout, [ = ]() { cbvar_cast(cbvar)->replyToNameQuery(callsign); });
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -582,9 +645,14 @@ namespace BlackCore
|
|||||||
//TODO
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::onPilotInfoRequestReceived(Cvatlib_Network *, const char *callsign, void *cbvar)
|
void NetworkVatlib::onPilotInfoRequestReceived(Cvatlib_Network *, const char *callsignString, void *cbvar)
|
||||||
{
|
{
|
||||||
emit cbvar_cast(cbvar)->aircraftInfoRequestReceived(cbvar_cast(cbvar)->fromFSD(callsign));
|
auto timer = new QTimer(cbvar_cast(cbvar));
|
||||||
|
timer->setSingleShot(true);
|
||||||
|
timer->start(0);
|
||||||
|
|
||||||
|
BlackMisc::Aviation::CCallsign callsign(callsignString);
|
||||||
|
connect(timer, &QTimer::timeout, [ = ]() { cbvar_cast(cbvar)->sendAircraftInfo(callsign); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkVatlib::onPilotInfoReceived(Cvatlib_Network *net, const char *callsign, const char **keysValues, void *cbvar)
|
void NetworkVatlib::onPilotInfoReceived(Cvatlib_Network *net, const char *callsign, const char **keysValues, void *cbvar)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "blackmisc/avallclasses.h"
|
#include "blackmisc/avallclasses.h"
|
||||||
#include <vatlib/vatlib.h>
|
#include <vatlib/vatlib.h>
|
||||||
#include <QScopedPointer>
|
#include <QScopedPointer>
|
||||||
#include <QBasicTimer>
|
#include <QTimer>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
@@ -29,9 +29,6 @@ namespace BlackCore
|
|||||||
NetworkVatlib(QObject *parent = nullptr);
|
NetworkVatlib(QObject *parent = nullptr);
|
||||||
virtual ~NetworkVatlib();
|
virtual ~NetworkVatlib();
|
||||||
|
|
||||||
protected: // QObject overrides
|
|
||||||
virtual void timerEvent(QTimerEvent *);
|
|
||||||
|
|
||||||
public: // INetwork slots overrides
|
public: // INetwork slots overrides
|
||||||
|
|
||||||
// Network
|
// Network
|
||||||
@@ -44,7 +41,6 @@ namespace BlackCore
|
|||||||
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendServerQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendNameQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendCapabilitiesQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
|
|
||||||
virtual void ping(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void ping(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
|
||||||
// Weather
|
// Weather
|
||||||
@@ -55,15 +51,22 @@ namespace BlackCore
|
|||||||
|
|
||||||
// Aircraft
|
// Aircraft
|
||||||
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void requestAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icao);
|
|
||||||
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
virtual void setOwnAircraftPosition(const BlackMisc::Aviation::CAircraftSituation &aircraft);
|
||||||
|
virtual void setOwnAircraftTransponder(const BlackMisc::Aviation::CTransponder &xpdr);
|
||||||
|
virtual void setOwnAircraftFrequency(const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
||||||
|
virtual void setOwnAircraftIcao(const BlackMisc::Aviation::CAircraftIcao &icao);
|
||||||
|
|
||||||
// ATC
|
// ATC
|
||||||
virtual void sendAtcQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendAtcQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void sendAtisQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
virtual void sendAtisQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
virtual void requestMetar(const QString &airportICAO);
|
virtual void requestMetar(const QString &airportICAO);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void replyToFrequencyQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
void replyToNameQuery(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
void sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
|
||||||
private: //shimlib callbacks
|
private: //shimlib callbacks
|
||||||
static void onConnectionStatusChanged(Cvatlib_Network *, Cvatlib_Network::connStatus oldStatus, Cvatlib_Network::connStatus newStatus, void *cbvar);
|
static void onConnectionStatusChanged(Cvatlib_Network *, Cvatlib_Network::connStatus oldStatus, Cvatlib_Network::connStatus newStatus, void *cbvar);
|
||||||
static void onTextMessageReceived(Cvatlib_Network *, const char *from, const char *to, const char *msg, void *cbvar);
|
static void onTextMessageReceived(Cvatlib_Network *, const char *from, const char *to, const char *msg, void *cbvar);
|
||||||
@@ -93,6 +96,10 @@ namespace BlackCore
|
|||||||
QString fromFSD(const char *cstr) const;
|
QString fromFSD(const char *cstr) const;
|
||||||
bool isDisconnected() const { return m_status == Cvatlib_Network::connStatus_Idle || m_status == Cvatlib_Network::connStatus_Disconnected; }
|
bool isDisconnected() const { return m_status == Cvatlib_Network::connStatus_Idle || m_status == Cvatlib_Network::connStatus_Disconnected; }
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void process();
|
||||||
|
void update();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void terminate();
|
void terminate();
|
||||||
|
|
||||||
@@ -107,14 +114,20 @@ namespace BlackCore
|
|||||||
private:
|
private:
|
||||||
QScopedPointer<Cvatlib_Network, VatlibQScopedPointerDeleter> m_net;
|
QScopedPointer<Cvatlib_Network, VatlibQScopedPointerDeleter> m_net;
|
||||||
Cvatlib_Network::connStatus m_status;
|
Cvatlib_Network::connStatus m_status;
|
||||||
|
|
||||||
QBasicTimer m_timer;
|
|
||||||
BlackMisc::Network::CServer m_server;
|
BlackMisc::Network::CServer m_server;
|
||||||
static int const c_updateIntervalMillisecs = 100;
|
|
||||||
static int const c_logoffTimeoutSeconds = 5;
|
QTimer m_processingTimer;
|
||||||
|
QTimer m_updateTimer;
|
||||||
|
static int const c_processingIntervalMsec = 100;
|
||||||
|
static int const c_updateIntervalMsec = 5000;
|
||||||
|
static int const c_logoffTimeoutSec = 5;
|
||||||
|
|
||||||
QByteArray m_callsign;
|
QByteArray m_callsign;
|
||||||
QByteArray m_realname;
|
QByteArray m_realname;
|
||||||
|
BlackMisc::Aviation::CAircraftSituation m_ownAircraft;
|
||||||
|
BlackMisc::Aviation::CTransponder m_ownTransponder;
|
||||||
|
BlackMisc::PhysicalQuantities::CFrequency m_ownFrequency;
|
||||||
|
BlackMisc::Aviation::CAircraftIcao m_ownAircraftIcao;
|
||||||
|
|
||||||
QTextCodec *m_fsdTextCodec;
|
QTextCodec *m_fsdTextCodec;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user