mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
refs #179 updated sample_cli_client to recent changes in INetwork
This commit is contained in:
@@ -28,6 +28,7 @@ Client::Client(BlackMisc::IContext &ctx)
|
||||
connect(m_net, &INetwork::icaoCodesReplyReceived, this, &Client::icaoCodesReplyReceived);
|
||||
connect(m_net, &INetwork::pongReceived, this, &Client::pongReceived);
|
||||
connect(m_net, &INetwork::textMessagesReceived, this, &Client::textMessagesReceived);
|
||||
connect(m_net, &INetwork::customPacketReceived, this, &Client::customPacketReceived);
|
||||
|
||||
connect(this, &Client::presetServer, m_net, &INetwork::presetServer);
|
||||
connect(this, &Client::presetCallsign, m_net, &INetwork::presetCallsign);
|
||||
@@ -52,11 +53,14 @@ Client::Client(BlackMisc::IContext &ctx)
|
||||
connect(this, &Client::sendPing, m_net, &INetwork::sendPing);
|
||||
connect(this, &Client::sendMetarQuery, m_net, &INetwork::sendMetarQuery);
|
||||
connect(this, &Client::sendWeatherDataQuery, m_net, &INetwork::sendWeatherDataQuery);
|
||||
connect(this, &Client::sendCustomPacket, m_net, &INetwork::sendCustomPacket);
|
||||
|
||||
using namespace std::placeholders;
|
||||
m_commands["help"] = std::bind(&Client::help, this, _1);
|
||||
m_commands["echo"] = std::bind(&Client::echo, this, _1);
|
||||
m_commands["exit"] = std::bind(&Client::exit, this, _1);
|
||||
m_commands["getstatusurls"] = std::bind(&Client::getStatusUrlsCmd, this, _1);
|
||||
m_commands["getservers"] = std::bind(&Client::getKnownServersCmd, this, _1);
|
||||
m_commands["setserver"] = std::bind(&Client::presetServerCmd, this, _1);
|
||||
m_commands["setcallsign"] = std::bind(&Client::presetCallsignCmd, this, _1);
|
||||
m_commands["icaocodes"] = std::bind(&Client::presetIcaoCodesCmd, this, _1);
|
||||
@@ -81,6 +85,7 @@ Client::Client(BlackMisc::IContext &ctx)
|
||||
m_commands["ping"] = std::bind(&Client::sendPingCmd, this, _1);
|
||||
m_commands["metar"] = std::bind(&Client::sendMetarQueryCmd, this, _1);
|
||||
m_commands["weather"] = std::bind(&Client::sendWeatherDataQueryCmd, this, _1);
|
||||
m_commands["custom"] = std::bind(&Client::sendCustomPacketCmd, this, _1);
|
||||
}
|
||||
|
||||
void Client::command(QString line)
|
||||
@@ -125,6 +130,24 @@ void Client::exit(QTextStream &)
|
||||
emit quit();
|
||||
}
|
||||
|
||||
void Client::getStatusUrlsCmd(QTextStream &)
|
||||
{
|
||||
auto urls = m_net->getStatusUrls();
|
||||
for (auto i = urls.begin(); i != urls.end(); ++i)
|
||||
{
|
||||
std::cout << i->toString().toStdString() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void Client::getKnownServersCmd(QTextStream &)
|
||||
{
|
||||
auto servers = m_net->getKnownServers();
|
||||
for (auto i = servers.begin(); i != servers.end(); ++i)
|
||||
{
|
||||
std::cout << i->toFormattedQString().toStdString() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void Client::presetServerCmd(QTextStream &args)
|
||||
{
|
||||
QString hostname;
|
||||
@@ -377,6 +400,21 @@ void Client::sendWeatherDataQueryCmd(QTextStream &args)
|
||||
emit sendWeatherDataQuery(airportICAO);
|
||||
}
|
||||
|
||||
void Client::sendCustomPacketCmd(QTextStream &args)
|
||||
{
|
||||
QString callsign;
|
||||
QString packetId;
|
||||
args >> callsign >> packetId;
|
||||
QStringList data;
|
||||
while (!args.atEnd())
|
||||
{
|
||||
QString field;
|
||||
args >> field;
|
||||
data.push_back(field);
|
||||
}
|
||||
emit sendCustomPacket(callsign, packetId, data);
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
/************ Slots to receive signals from INetwork *************/
|
||||
/****************************************************************************/
|
||||
@@ -392,13 +430,16 @@ void Client::atcDisconnected(const BlackMisc::Aviation::CCallsign &callsign)
|
||||
std::cout << "ATC_DISCONNECTED " << callsign << std::endl;
|
||||
}
|
||||
|
||||
void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldStatus, BlackCore::INetwork::ConnectionStatus newStatus)
|
||||
void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldStatus, BlackCore::INetwork::ConnectionStatus newStatus,
|
||||
const QString &errorMessage)
|
||||
{
|
||||
switch (newStatus)
|
||||
{
|
||||
case BlackCore::INetwork::Disconnected: std::cout << "CONN_STATUS_DISCONNECTED"; break;
|
||||
case BlackCore::INetwork::Disconnecting: std::cout << "CONN_STATUS_DISCONNECTING"; break;
|
||||
case BlackCore::INetwork::DisconnectedError: std::cout << "CONN_STATUS_DISCONNECTED_ERROR"; break;
|
||||
case BlackCore::INetwork::DisconnectedFailed: std::cout << "CONN_STATUS_DISCONNECTED_FAILED"; break;
|
||||
case BlackCore::INetwork::DisconnectedLost: std::cout << "CONN_STATUS_DISCONNECTED_LOST"; break;
|
||||
case BlackCore::INetwork::Connecting: std::cout << "CONN_STATUS_CONNECTING"; break;
|
||||
case BlackCore::INetwork::Connected: std::cout << "CONN_STATUS_CONNECTED"; break;
|
||||
}
|
||||
@@ -407,9 +448,15 @@ void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldSt
|
||||
case BlackCore::INetwork::Disconnected: std::cout << " (was CONN_STATUS_DISCONNECTED)\n"; break;
|
||||
case BlackCore::INetwork::Disconnecting: std::cout << " (was CONN_STATUS_DISCONNECTING)\n"; break;
|
||||
case BlackCore::INetwork::DisconnectedError: std::cout << " (was CONN_STATUS_DISCONNECTED_ERROR)\n"; break;
|
||||
case BlackCore::INetwork::DisconnectedFailed: std::cout << " (was CONN_STATUS_DISCONNECTED_FAILED)\n"; break;
|
||||
case BlackCore::INetwork::DisconnectedLost: std::cout << " (was CONN_STATUS_DISCONNECTED_LOST)\n"; break;
|
||||
case BlackCore::INetwork::Connecting: std::cout << " (was CONN_STATUS_CONNECTING)\n"; break;
|
||||
case BlackCore::INetwork::Connected: std::cout << " (was CONN_STATUS_CONNECTED)\n"; break;
|
||||
}
|
||||
if (!errorMessage.isEmpty())
|
||||
{
|
||||
std::cout << "REASON " << errorMessage.toStdString() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void Client::ipReplyReceived(const QString &ip)
|
||||
@@ -476,3 +523,13 @@ void Client::textMessagesReceived(const BlackMisc::Network::CTextMessageList &li
|
||||
{
|
||||
std::cout << "TEXT MESSAGE" << list.toStdString();
|
||||
}
|
||||
|
||||
void Client::customPacketReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data)
|
||||
{
|
||||
std::cout << "CUSTOM " << callsign << " " << packetId.toStdString() << " ";
|
||||
for (auto i = data.begin(); i != data.end(); ++i)
|
||||
{
|
||||
std::cout << i->toStdString() << std::endl;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ private: //commands
|
||||
void help(QTextStream &args);
|
||||
void echo(QTextStream &args);
|
||||
void exit(QTextStream &args);
|
||||
void getStatusUrlsCmd(QTextStream &args);
|
||||
void getKnownServersCmd(QTextStream &args);
|
||||
void presetServerCmd(QTextStream &args);
|
||||
void presetCallsignCmd(QTextStream &args);
|
||||
void presetIcaoCodesCmd(QTextStream &args);
|
||||
@@ -54,6 +56,7 @@ private: //commands
|
||||
void sendPingCmd(QTextStream &args);
|
||||
void sendMetarQueryCmd(QTextStream &args);
|
||||
void sendWeatherDataQueryCmd(QTextStream &args);
|
||||
void sendCustomPacketCmd(QTextStream &args);
|
||||
|
||||
signals: //to send to INetwork
|
||||
void presetServer(const BlackMisc::Network::CServer &server);
|
||||
@@ -82,12 +85,14 @@ signals: //to send to INetwork
|
||||
void sendPing(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
void sendMetarQuery(const QString &airportICAO);
|
||||
void sendWeatherDataQuery(const QString &airportICAO);
|
||||
void sendCustomPacket(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data);
|
||||
|
||||
public slots: //to receive from INetwork
|
||||
void atcPositionUpdate(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq,
|
||||
const BlackMisc::Geo::CCoordinateGeodetic &pos, const BlackMisc::PhysicalQuantities::CLength &range);
|
||||
void atcDisconnected(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
void connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldStatus, BlackCore::INetwork::ConnectionStatus newStatus);
|
||||
void connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldStatus, BlackCore::INetwork::ConnectionStatus newStatus,
|
||||
const QString &errorMessage);
|
||||
void ipReplyReceived(const QString &ip);
|
||||
void freqReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq);
|
||||
void serverReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &hostname);
|
||||
@@ -101,6 +106,7 @@ public slots: //to receive from INetwork
|
||||
void icaoCodesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcao &icaoData);
|
||||
void pongReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime);
|
||||
void textMessagesReceived(const BlackMisc::Network::CTextMessageList &messages);
|
||||
void customPacketReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data);
|
||||
|
||||
private:
|
||||
QMap<QString, std::function<void(QTextStream &)>> m_commands;
|
||||
|
||||
Reference in New Issue
Block a user