Merge branch 'master' of dev.vatsim-germany.org:vatpilotclient/client

This commit is contained in:
Roland Winklmeier
2014-01-17 20:14:37 +01:00
17 changed files with 142 additions and 60 deletions

View File

@@ -22,7 +22,7 @@ MainWindow::MainWindow(GuiModes::WindowMode windowMode, QWidget *parent) :
QMainWindow(parent, windowMode == GuiModes::WindowFrameless ? (Qt::Window | Qt::FramelessWindowHint) : Qt::Tool), QMainWindow(parent, windowMode == GuiModes::WindowFrameless ? (Qt::Window | Qt::FramelessWindowHint) : Qt::Tool),
ui(new Ui::MainWindow), ui(new Ui::MainWindow),
m_infoWindow(nullptr), m_infoWindow(nullptr),
m_windowMode(windowMode), m_init(false), m_coreMode(GuiModes::CoreExternal), m_init(false), m_windowMode(windowMode), m_coreMode(GuiModes::CoreExternal),
m_coreAvailable(false), m_contextNetworkAvailable(false), m_contextVoiceAvailable(false), m_coreAvailable(false), m_contextNetworkAvailable(false), m_contextVoiceAvailable(false),
m_dBusConnection("dummy"), m_coreRuntime(nullptr), m_dBusConnection("dummy"), m_coreRuntime(nullptr),
m_atcListOnline(nullptr), m_atcListBooked(nullptr), m_atcListOnline(nullptr), m_atcListBooked(nullptr),

View File

@@ -1538,7 +1538,7 @@ QSizeGrip {
<item> <item>
<widget class="QTabWidget" name="tb_Settings"> <widget class="QTabWidget" name="tb_Settings">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>1</number>
</property> </property>
<widget class="QWidget" name="tb_SettingsTrafficNetwork"> <widget class="QWidget" name="tb_SettingsTrafficNetwork">
<attribute name="title"> <attribute name="title">
@@ -1736,14 +1736,14 @@ QSizeGrip {
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="lbl_SettingsAircraftType"> <widget class="QLabel" name="lbl_SettingsIcaoTypeDesignator">
<property name="text"> <property name="text">
<string>ICAO type (e.g. A320)</string> <string>ICAO type (e.g. A320)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QLineEdit" name="lbl_SettingsAircraftType"/> <widget class="QLineEdit" name="le_SettingsIcaoTypeDesignator"/>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="lbl_SettingsIcaoAirline"> <widget class="QLabel" name="lbl_SettingsIcaoAirline">
@@ -1756,14 +1756,14 @@ QSizeGrip {
<widget class="QLineEdit" name="le_SettingsIcaoAirline"/> <widget class="QLineEdit" name="le_SettingsIcaoAirline"/>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="lbl_SettingsPlaneType"> <widget class="QLabel" name="lbl_SettingsIcaoType">
<property name="text"> <property name="text">
<string>Plane type</string> <string>Aircraft type (e.g. L2J)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="3" column="1">
<widget class="QLineEdit" name="le_SettingsPlaneType"/> <widget class="QLineEdit" name="le_SettingsIcaoType"/>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="lbl_SettingsModes"> <widget class="QLabel" name="lbl_SettingsModes">

View File

@@ -42,12 +42,15 @@ bool MainWindow::reloadOwnAircraft()
if (this->m_contextVoiceAvailable) if (this->m_contextVoiceAvailable)
{ {
CVoiceRoomList selectedRooms = this->m_contextNetwork->getSelectedVoiceRooms(); CVoiceRoomList selectedRooms = this->m_contextNetwork->getSelectedVoiceRooms();
this->m_voiceRoomCom1 = this->ui->cb_CockpitVoiceRoom1Override->isChecked() ? if (selectedRooms.size() == 2)
this->ui->le_CockpitVoiceRoomCom1->text().trimmed() : {
selectedRooms[0]; this->m_voiceRoomCom1 = this->ui->cb_CockpitVoiceRoom1Override->isChecked() ?
this->m_voiceRoomCom2 = this->ui->cb_CockpitVoiceRoom2Override->isChecked() ? this->ui->le_CockpitVoiceRoomCom1->text().trimmed() :
this->ui->le_CockpitVoiceRoomCom2->text().trimmed() : selectedRooms[0];
selectedRooms[1]; this->m_voiceRoomCom2 = this->ui->cb_CockpitVoiceRoom2Override->isChecked() ?
this->ui->le_CockpitVoiceRoomCom2->text().trimmed() :
selectedRooms[1];
}
} }
// //

View File

@@ -117,6 +117,7 @@ void MainWindow::init(GuiModes::CoreMode coreMode)
// signal / slots // signal / slots
bool connect; bool connect;
this->connect(this->m_contextNetwork, &IContextNetwork::statusMessage, this, &MainWindow::displayStatusMessage); this->connect(this->m_contextNetwork, &IContextNetwork::statusMessage, this, &MainWindow::displayStatusMessage);
this->connect(this->m_contextNetwork, &IContextNetwork::statusMessages, this, &MainWindow::displayStatusMessages);
this->connect(this->m_contextNetwork, &IContextNetwork::connectionTerminated, this, &MainWindow::connectionTerminated); this->connect(this->m_contextNetwork, &IContextNetwork::connectionTerminated, this, &MainWindow::connectionTerminated);
this->connect(this->m_contextNetwork, &IContextNetwork::connectionStatusChanged, this, &MainWindow::connectionStatusChanged); this->connect(this->m_contextNetwork, &IContextNetwork::connectionStatusChanged, this, &MainWindow::connectionStatusChanged);
this->connect(this->m_contextSettings, &IContextSettings::changedNetworkSettings, this, &MainWindow::changedNetworkSettings); this->connect(this->m_contextSettings, &IContextSettings::changedNetworkSettings, this, &MainWindow::changedNetworkSettings);

View File

@@ -1,10 +1,10 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node> <node>
<interface name="blackmisctest.datacontext"> <interface name="blackmisctest.datacontext">
<property name="qpAtcOnlineList" type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" access="readwrite"> <property name="qpAtcOnlineList" type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" access="readwrite">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName" value="BlackMisc::Aviation::CAtcStationList"/>
</property> </property>
<property name="qpAtcBookedList" type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" access="readwrite"> <property name="qpAtcBookedList" type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" access="readwrite">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName" value="BlackMisc::Aviation::CAtcStationList"/>
</property> </property>
<property name="qpFooStrings" type="as" access="read"/> <property name="qpFooStrings" type="as" access="read"/>
@@ -19,14 +19,12 @@
<arg name="baz" type="s" direction="in"/> <arg name="baz" type="s" direction="in"/>
</method> </method>
<method name="updateBookedControllers"> <method name="updateBookedControllers">
<arg type="i" direction="out"/>
<arg name="condition" type="(aiavai)" direction="in"/> <arg name="condition" type="(aiavai)" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/>
<arg name="values" type="(aiavai)" direction="in"/> <arg name="values" type="(aiavai)" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="BlackMisc::CValueMap"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="BlackMisc::CValueMap"/>
</method> </method>
<method name="updateOnlineControllers"> <method name="updateOnlineControllers">
<arg type="i" direction="out"/>
<arg name="condition" type="(aiavai)" direction="in"/> <arg name="condition" type="(aiavai)" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/>
<arg name="values" type="(aiavai)" direction="in"/> <arg name="values" type="(aiavai)" direction="in"/>

View File

@@ -22,7 +22,7 @@
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::PhysicalQuantities::CSpeed"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::PhysicalQuantities::CSpeed"/>
</method> </method>
<method name="receiveComUnit"> <method name="receiveComUnit">
<arg name="comUnit" type="(s(dd(s))(dd(s))i)" direction="in"/> <arg name="comUnit" type="(s(dd(s))(dd(s))iiib)" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CComSystem"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CComSystem"/>
</method> </method>
<method name="receiveAltitude"> <method name="receiveAltitude">
@@ -66,21 +66,21 @@
<arg name="lengthsVariantList" type="av" direction="in"/> <arg name="lengthsVariantList" type="av" direction="in"/>
</method> </method>
<method name="receiveAtcStation"> <method name="receiveAtcStation">
<arg name="station" type="((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i))" direction="in"/> <arg name="station" type="((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStation"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStation"/>
</method> </method>
<method name="pingAtcStation"> <method name="pingAtcStation">
<arg type="((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i))" direction="out"/> <arg type="((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb))" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStation"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStation"/>
<arg name="station" type="((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i))" direction="in"/> <arg name="station" type="((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStation"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStation"/>
</method> </method>
<method name="receiveCallsign"> <method name="receiveCallsign">
<arg name="callsign" type="(s)" direction="in"/> <arg name="callsign" type="(ss)" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CCallsign"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CCallsign"/>
</method> </method>
<method name="getAtcStationList"> <method name="getAtcStationList">
<arg type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" direction="out"/> <arg type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStationList"/>
<arg name="number" type="i" direction="in"/> <arg name="number" type="i" direction="in"/>
</method> </method>
@@ -89,7 +89,7 @@
<arg name="number" type="i" direction="in"/> <arg name="number" type="i" direction="in"/>
</method> </method>
<method name="receiveAtcStationList"> <method name="receiveAtcStationList">
<arg name="AtcStationList" type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" direction="in"/> <arg name="AtcStationList" type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStationList"/>
</method> </method>
<method name="receiveValueMap"> <method name="receiveValueMap">
@@ -97,9 +97,9 @@
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::CValueMap"/>
</method> </method>
<method name="pingAtcStationList"> <method name="pingAtcStationList">
<arg type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" direction="out"/> <arg type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStationList"/>
<arg name="AtcStationList" type="(a((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)))" direction="in"/> <arg name="AtcStationList" type="(a((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb)))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStationList"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="BlackMisc::Aviation::CAtcStationList"/>
</method> </method>
<method name="getSpeed"> <method name="getSpeed">
@@ -107,7 +107,7 @@
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::PhysicalQuantities::CSpeed"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::PhysicalQuantities::CSpeed"/>
</method> </method>
<method name="getAtcStation"> <method name="getAtcStation">
<arg type="((s)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))b((iii)(iiii)i)((iii)(iiii)i))" direction="out"/> <arg type="((ss)(dd(s))(ssss)((dd(s))(dd(s))(dd(s)))(dd(s))(dd(s))b((iii)(iiii)i)((iii)(iiii)i)(si((iii)(iiii)i))(si((iii)(iiii)i))(ssbb))" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStation"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::Aviation::CAtcStation"/>
</method> </method>
</interface> </interface>

View File

@@ -82,7 +82,7 @@ namespace BlackMiscTest
/*! /*!
* \brief Default constructor * \brief Default constructor
*/ */
CDataContext(QObject *parent = 0) : QObject(parent) {} CDataContext(QObject *parent = nullptr) : QObject(parent) {}
/*! /*!
* \brief ctor for Qt meta system * \brief ctor for Qt meta system

View File

@@ -33,28 +33,81 @@ int main(int argc, char *argv[])
} }
// some runtime settings // some runtime settings
QString ip = "192.168.0.133";
QString port = "45000";
const QString executable = QString(cmdlineArgs.at(0)); // used as command to fork myself const QString executable = QString(cmdlineArgs.at(0)); // used as command to fork myself
const bool clientFlag = cmdlineArgs.contains("client", Qt::CaseInsensitive); const bool clientFlag = cmdlineArgs.contains("client", Qt::CaseInsensitive);
const bool useSessionBusForServer = cmdlineArgs.contains("session", Qt::CaseInsensitive); // flag for session bus bool useSessionBusForServer;
QString address(useSessionBusForServer ? "session" : "tcp:host=192.168.0.133,port=45000"); // testing with real transfer if (cmdlineArgs.contains("session", Qt::CaseInsensitive))
// loopback 127.0.0.1 {
// session mode
useSessionBusForServer = true;
}
else
{
// TCP/IP mode
useSessionBusForServer = false;
if (cmdlineArgs.length() > 2)
{
ip = cmdlineArgs.at(cmdlineArgs.length() - 2);
port = cmdlineArgs.at(cmdlineArgs.length() - 1);
}
}
QString addressTcp = QString("tcp:host=%1,port=%2").arg(ip).arg(port);
QString address(useSessionBusForServer ? "session" : addressTcp); // testing with real transfer
// Create a Testservice instance and register it with the session bus only if // Create a Testservice instance and register it with the session bus only if
// the service isn't already available. // the service isn't already available.
if (!clientFlag) if (!clientFlag)
{ {
// Configure tests // Configure tests
qDebug() << "1 .. Run testservice to test data transfer" << address; Menu:
qDebug() << "1sb. Run testservice via session bus";
qDebug() << "2 .. Data context example (via TCP)" << address;
qDebug() << "2sb. Data context example (via session bus)";
qDebug() << "3 .. Data context example, only server (via TCP)" << address;
qDebug() << "3sb. Data context example, only server (via session bus)";
qDebug() << "1 .. Run testservice to test data transfer" << addressTcp;
qDebug() << "1sb. Run testservice via session bus";
qDebug() << "2 .. Data context example (via TCP)" << addressTcp;
qDebug() << "2sb. Data context example (via session bus)";
qDebug() << "3 .. Data context example, only server (via TCP)" << addressTcp;
qDebug() << "3sb. Data context example, only server (via session bus)";
qDebug() << "----- Change address / port (no validation, do before starting server)";
qDebug() << "loop Address to loopback, 127.0.0.1";
qDebug() << "ip some IP address, e.g 192.168.100.100";
qDebug() << "port some port, e.g 12345";
qDebug() << "-----";
qDebug() << "x .. Bye"; qDebug() << "x .. Bye";
QTextStream qtin(stdin); QTextStream qtin(stdin);
QString mode = qtin.readLine().toLower(); QString mode = qtin.readLine().toLower().trimmed();
bool startServer = !mode.startsWith('3');
if (mode.startsWith("l"))
{
ip = "127.0.0.1";
addressTcp = QString("tcp:host=%1,port=%2").arg(ip).arg(port);
goto Menu;
}
if (mode.startsWith("i"))
{
QStringList p = mode.split(QRegExp("\\s"));
if (p.length() > 1)
{
ip = p.at(1);
addressTcp = QString("tcp:host=%1,port=%2").arg(ip).arg(port);
}
goto Menu;
}
if (mode.startsWith("p"))
{
QStringList p = mode.split(QRegExp("\\s"));
if (p.length() > 1)
{
port = p.at(1);
addressTcp = QString("tcp:host=%1,port=%2").arg(ip).arg(port);
}
goto Menu;
}
// start DBus
address = QString(useSessionBusForServer ? "session" : addressTcp); // testing with real transfer
bool startClient = !mode.startsWith('3');
if (mode.contains("sb", Qt::CaseInsensitive)) address = "session"; if (mode.contains("sb", Qt::CaseInsensitive)) address = "session";
if (mode.startsWith("1")) if (mode.startsWith("1"))
{ {
@@ -71,6 +124,8 @@ int main(int argc, char *argv[])
// I know I am in the "server process here", so I can safely create a CDBusServer // I know I am in the "server process here", so I can safely create a CDBusServer
// this runs in the original process and can be directly debugged // this runs in the original process and can be directly debugged
qDebug();
qDebug("--------------------------------------------------------");
BlackCore::CDBusServer *dBusServer = new BlackCore::CDBusServer(useSessionBusForServer ? "session" : address); BlackCore::CDBusServer *dBusServer = new BlackCore::CDBusServer(useSessionBusForServer ? "session" : address);
qDebug() << "server" << dBusServer->address() << "connected:" << dBusServer->isConnected(); qDebug() << "server" << dBusServer->address() << "connected:" << dBusServer->isConnected();
@@ -78,9 +133,16 @@ int main(int argc, char *argv[])
QStringList args; QStringList args;
args << "client"; args << "client";
args << mode; args << mode;
if (address == "session") args << address; if (address == "session")
{
if (startServer) BlackMiscTest::ServiceTool::startNewProcess(executable, args, &a); args << address; // set session as cmd arg
}
else
{
args << ip;
args << port;
}
if (startClient) BlackMiscTest::ServiceTool::startNewProcess(executable, args, &a);
// run tests // run tests
if (mode == "testservice") if (mode == "testservice")

View File

@@ -660,8 +660,7 @@ namespace BlackMiscTest
value.addValue(CAtcStation::IndexBookedUntil, QDateTime::currentDateTimeUtc().addDays(2)); value.addValue(CAtcStation::IndexBookedUntil, QDateTime::currentDateTimeUtc().addDays(2));
qDebug() << " condition" << condition; qDebug() << " condition" << condition;
qDebug() << " values" << value; qDebug() << " values" << value;
qint32 c = dataContextInterface.updateOnlineControllers(condition, value); dataContextInterface.updateOnlineControllers(condition, value);
qDebug() << c << "values changed in online controllers";
} }
// display current status // display current status
@@ -679,7 +678,7 @@ namespace BlackMiscTest
// next round? Client // next round? Client
qDebug() << "Key x to exit"; qDebug() << "Key x to exit";
qDebug() << "1 .. add new list via property on interface"; qDebug() << "1 .. add new list via property on interface";
qDebug() << "3 .. append 1 to controllers in context (no expected to change anything)"; // add to reference qDebug() << "3 .. append 1 to controllers in context (not expected to change anything)"; // add to reference
qDebug() << "5 .. foo signal directly on interface"; qDebug() << "5 .. foo signal directly on interface";
qDebug() << "7x . 7<callsign>, update if, e.g. 7EDDM_TWR"; qDebug() << "7x . 7<callsign>, update if, e.g. 7EDDM_TWR";

View File

@@ -5,6 +5,10 @@
<arg name="message" type="(sii((iii)(iiii)i))" direction="in"/> <arg name="message" type="(sii((iii)(iiii)i))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::CStatusMessage"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::CStatusMessage"/>
</signal> </signal>
<signal name="statusMessages">
<arg name="messages" type="(a(sii((iii)(iiii)i)))" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="BlackMisc::CStatusMessageList"/>
</signal>
<signal name="changedAtcStationsOnline"> <signal name="changedAtcStationsOnline">
</signal> </signal>
<signal name="changedAtcStationsBooked"> <signal name="changedAtcStationsBooked">

View File

@@ -246,11 +246,11 @@ namespace BlackCore
} }
// send as message // send as message
QString m("connection status changed "); QString m("connection status changed from %1 to %2");
m.append(this->m_network->connectionStatusToString(from)).append(" ").append(this->m_network->connectionStatusToString(to)); m = m.arg(INetwork::connectionStatusToString(from), INetwork::connectionStatusToString(to));
msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork,
to == INetwork::DisconnectedError ? CStatusMessage::SeverityError : CStatusMessage::SeverityInfo, m)); to == INetwork::DisconnectedError ? CStatusMessage::SeverityError : CStatusMessage::SeverityInfo, m));
emit this->statusMessage(msgs[0]); emit this->statusMessages(msgs);
// send as own signal // send as own signal
emit this->connectionStatusChanged(from, to); emit this->connectionStatusChanged(from, to);

View File

@@ -38,6 +38,8 @@ namespace BlackCore
"connectionTerminated", this, SIGNAL(connectionTerminated())); "connectionTerminated", this, SIGNAL(connectionTerminated()));
connection.connect(serviceName, IContextNetwork::ServicePath(), IContextNetwork::InterfaceName(), connection.connect(serviceName, IContextNetwork::ServicePath(), IContextNetwork::InterfaceName(),
"statusMessage", this, SIGNAL(statusMessage(BlackMisc::CStatusMessage))); "statusMessage", this, SIGNAL(statusMessage(BlackMisc::CStatusMessage)));
connection.connect(serviceName, IContextNetwork::ServicePath(), IContextNetwork::InterfaceName(),
"statusMessages", this, SIGNAL(statusMessages(BlackMisc::CStatusMessageList)));
connection.connect(serviceName, IContextNetwork::ServicePath(), IContextNetwork::InterfaceName(), connection.connect(serviceName, IContextNetwork::ServicePath(), IContextNetwork::InterfaceName(),
"textMessagesReceived", this, SIGNAL(textMessagesReceived(BlackMisc::Network::CTextMessageList))); "textMessagesReceived", this, SIGNAL(textMessagesReceived(BlackMisc::Network::CTextMessageList)));
} }

View File

@@ -106,11 +106,17 @@ namespace BlackCore
signals: signals:
/*! /*!
* \brief ATC station list has been changed * \brief Send status messages
* \param message * \param message
*/ */
void statusMessage(const BlackMisc::CStatusMessage &message); void statusMessage(const BlackMisc::CStatusMessage &message);
/*!
* \brief Send status messages
* \param messages
*/
void statusMessages(const BlackMisc::CStatusMessageList &messages);
/*! /*!
* \brief List has been changed * \brief List has been changed
*/ */
@@ -137,8 +143,6 @@ namespace BlackCore
* \param to * \param to
*/ */
// If I use the enum, adaptor / interface are not created correctly // If I use the enum, adaptor / interface are not created correctly
void connectionStatusChanged(uint from, uint to); void connectionStatusChanged(uint from, uint to);
/*! /*!

View File

@@ -64,11 +64,20 @@ namespace BlackCore
Connected Connected
}; };
QString connectionStatusToString(ConnectionStatus status) const static const QString connectionStatusToString(ConnectionStatus status)
{ {
int index = metaObject()->indexOfEnumerator("ConnectionStatus"); // the version with metaObject, metaObject()->indexOfEnumerator does not work anymore
QMetaEnum metaEnum = metaObject()->enumerator(index); // an interface cannot be used with Q_DECLAREMETATYPE
return metaEnum.valueToKey(status); switch (status)
{
case Disconnected: return "disconnected";
case DisconnectedError: return "disconnectedError";
case Connecting: return "connecting";
case Connected: return "connected";
default: break;
}
qFatal("Missing value");
return ""; // just for compiler warning
} }
virtual bool isConnected() const = 0; virtual bool isConnected() const = 0;
@@ -101,7 +110,7 @@ namespace BlackCore
virtual void setOwnAircraftPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) = 0; virtual void setOwnAircraftPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) = 0;
virtual void setOwnAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation) = 0; virtual void setOwnAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation) = 0;
virtual void setOwnAircraftAvionics(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, virtual void setOwnAircraftAvionics(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2,
const BlackMisc::Aviation::CTransponder &xpdr) = 0; const BlackMisc::Aviation::CTransponder &transponder) = 0;
// Weather / flight plan // Weather / flight plan
virtual void requestMetar(const QString &airportICAO) = 0; virtual void requestMetar(const QString &airportICAO) = 0;

View File

@@ -31,8 +31,8 @@ namespace BlackCore
CNetworkVatlib::CNetworkVatlib(CNetworkVatlib::LoginMode loginMode, QObject *parent) CNetworkVatlib::CNetworkVatlib(CNetworkVatlib::LoginMode loginMode, QObject *parent)
: INetwork(parent), : INetwork(parent),
m_net(Cvatlib_Network::Create()), m_net(Cvatlib_Network::Create()),
m_status(Cvatlib_Network::connStatus_Idle),
m_loginMode(loginMode), m_loginMode(loginMode),
m_status(Cvatlib_Network::connStatus_Idle),
m_fsdTextCodec(QTextCodec::codecForName("latin1")) m_fsdTextCodec(QTextCodec::codecForName("latin1"))
{ {
try try

View File

@@ -37,7 +37,7 @@ namespace BlackMisc
* \brief Default constructor * \brief Default constructor
*/ */
CModulator() : CModulator() :
CAvionicsBase("default"), m_volumeInput(0), m_volumeOutput(0), m_digits(2) {} CAvionicsBase("default"), m_volumeInput(0), m_volumeOutput(0), m_enabled(true), m_digits(2) {}
/*! /*!
* \brief Constructor * \brief Constructor
@@ -47,7 +47,7 @@ namespace BlackMisc
* \param digits * \param digits
*/ */
CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency, int digits) : CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency, int digits) :
CAvionicsBase(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency), m_volumeInput(0), m_volumeOutput(0), m_digits(digits), m_enabled(true) {} CAvionicsBase(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency), m_volumeInput(0), m_volumeOutput(0), m_enabled(true), m_digits(digits) {}
/*! /*!
* \brief String for converter * \brief String for converter

View File

@@ -25,7 +25,7 @@ namespace BlackMisc
* (The implicitly generated copy constructor would suffice, but for what seems to be a bug in MSVC2010 template instantiation) * (The implicitly generated copy constructor would suffice, but for what seems to be a bug in MSVC2010 template instantiation)
*/ */
template <class MU, class PQ> CPhysicalQuantity<MU, PQ>::CPhysicalQuantity(const CPhysicalQuantity &other) : template <class MU, class PQ> CPhysicalQuantity<MU, PQ>::CPhysicalQuantity(const CPhysicalQuantity &other) :
m_value(other.m_value), m_unit(other.m_unit) CValueObject(), m_value(other.m_value), m_unit(other.m_unit)
{ {
// void // void
} }