Я использую модуль Qt QtRemoteObject
для запуска процессов на многих устройствах.Текущая архитектура состоит в том, что есть хост-компьютер (назовите его ManagerNode), который создает объект-источник, затем есть много других удаленных компьютеров, которые работают в локальной сети (назовите их узлами процессора).При запуске многих процессорных узлов мне удалось подключить их к узлу ManagerNode.Однажды подключенная связь через сигналы / слоты стала довольно тривиальной.
Мой вопрос: на узле ManagerNode я хотел бы зафиксировать какой-то сигнал, когда каждый из узлов процессора подключен , а также когда узлы процессора отключены (т. Е. Из-за интернет-перебоев / компьютерных сбоев).
Вот некоторые фрагменты моего кода:
Host / main.cpp
#include <QCoreApplication>
#include "simpleswitch.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QRemoteObjectRegistryHost regHost(QUrl("tcp://10.81.2.42"));
QRemoteObjectHost host;
host.setHostUrl(QUrl("tcp://10.81.2.42:1"));
host.setRegistryUrl(QUrl("tcp://10.81.2.42"));
SimpleSwitch simpleSwitch;
host.enableRemoting(&simpleSwitch);
return a.exec();
}
Replica / main.cpp
#include <QCoreApplication>
#include "client.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QRemoteObjectNode node(QUrl("tcp://10.81.2.42"));
while (!node.waitForRegistry(1000));
qDebug() << "Registry is Setup";
QSharedPointer<SimpleSwitchReplica> ptr;
ptr.reset(node.acquire<SimpleSwitchReplica>());
Client rswitch(ptr);
return a.exec();
}
Я обнаружил, что в классе SimpleSwitchReplica есть сигнал для StateChanged
, и это работает всякий раз, когда есть соединение / отключение от ManagerNode.Но этот сигнал посылается на ProcessorNode, тогда как я хочу, чтобы сигнал на ManagerNode ...
Любая помощь по этому вопросу будет принята с благодарностью.