int main(int argc, char *argv[])
{
 
	qRegisterMetaType<QSharedPointer<CPacket> >();
 
	RodGui w;
	w.show();
	return a.exec();
}
Q_DECLARE_METATYPE(QSharedPointer<CPacket>)
        int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	qRegisterMetaType<QSharedPointer<CPacket> >();
	RodGui w;
	w.show();
	return a.exec();
}
Q_DECLARE_METATYPE(QSharedPointer<CPacket>)
To copy to clipboard, switch view to plain text mode 
  
	
	{
	Q_OBJECT
 
public:
	~RodGui();
 
private:
	void setupAndStartNetwork();
 
	Network* networkThreadMi;
	Network* networkThreadBer;
	Network* networkThreadBuffer;
	Network* networkThreadQam;
 
	//[qwt plot stuff and widgets]
 
private slots:
	void updatePlot(QSharedPointer<CPacket> packet);
};
 
 
{
	// [create widgets and qwt plots]
	setupAndStartNetwork();
}
 
 
void RodGui::updatePlot(QSharedPointer<CPacket> packet) {
	// [do some calculations with packet and update qwt plots]
}
 
void RodGui::setupAndStartNetwork() {
 
	networkThreadMi 
= new Network
(this, 
QString::number(20004));
	networkThreadBer 
= new Network
(this, 
QString::number(20005));
	networkThreadBuffer 
= new Network
(this, 
QString::number(20006));
	networkThreadQam 
= new Network
(this, 
QString::number(20007));
 
	QObject::connect(networkThreadMi, 
SIGNAL(processedDatagramsReady
(QSharedPointer<CPacket>
)),
 						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadBer, 
SIGNAL(processedDatagramsReady
(QSharedPointer<CPacket>
)),
 						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadBuffer, 
SIGNAL(processedDatagramsReady
(QSharedPointer<CPacket>
)),
 						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadQam, 
SIGNAL(processedDatagramsReady
(QSharedPointer<CPacket>
)),
 						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
 
	networkThreadMi->start();
	networkThreadBer->start();
	networkThreadBuffer->start();
	networkThreadQam->start();
}
        class RodGui : public QMainWindow
{
	Q_OBJECT
public:
	RodGui(QWidget *parent = 0);
	~RodGui();
private:
	void setupAndStartNetwork();
	Network* networkThreadMi;
	Network* networkThreadBer;
	Network* networkThreadBuffer;
	Network* networkThreadQam;
	
	//[qwt plot stuff and widgets]
private slots:
	void updatePlot(QSharedPointer<CPacket> packet);
};
RodGui::RodGui(QWidget *parent) : QMainWindow(parent)
{
	// [create widgets and qwt plots]
	setupAndStartNetwork();
}
void RodGui::updatePlot(QSharedPointer<CPacket> packet) {
	// [do some calculations with packet and update qwt plots]
}
void RodGui::setupAndStartNetwork() {
	networkThreadMi = new Network(this, QString::number(20004));
	networkThreadBer = new Network(this, QString::number(20005));
	networkThreadBuffer = new Network(this, QString::number(20006));
	networkThreadQam = new Network(this, QString::number(20007));
	QObject::connect(networkThreadMi, SIGNAL(processedDatagramsReady(QSharedPointer<CPacket>)),
						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadBer, SIGNAL(processedDatagramsReady(QSharedPointer<CPacket>)),
						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadBuffer, SIGNAL(processedDatagramsReady(QSharedPointer<CPacket>)),
						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	QObject::connect(networkThreadQam, SIGNAL(processedDatagramsReady(QSharedPointer<CPacket>)),
						this, SLOT(updatePlot(QSharedPointer<CPacket>)), Qt::QueuedConnection);
	networkThreadMi->start();
	networkThreadBer->start();
	networkThreadBuffer->start();
	networkThreadQam->start();
}
To copy to clipboard, switch view to plain text mode 
  
	
		Q_OBJECT
 
public:
 
signals:
	void processedDatagramsReady(QSharedPointer<CPacket>);
 
private:
	//[TCP stuff (boost asio)]
 
protected:
	void run();
};
 
void Network::run() {
 
	while (true) {
		//[read some TCP packets via boost asio and deserialize to a class (derived from CPacket)]
		qDebug() << "emit: " << port;
		emit processedDatagramsReady(packet);
		qDebug() << "emit complete: " << port;
	}
}
        class Network : public QThread {
	Q_OBJECT
public:
	Network(QWidget *parent = 0, QString port = 0);
signals:
	void processedDatagramsReady(QSharedPointer<CPacket>);
private:
	QString port;
	//[TCP stuff (boost asio)]
protected:
	void run();
};
void Network::run() {
	while (true) {
		//[read some TCP packets via boost asio and deserialize to a class (derived from CPacket)]
		qDebug() << "emit: " << port;
		emit processedDatagramsReady(packet);
		qDebug() << "emit complete: " << port;
	}
}
To copy to clipboard, switch view to plain text mode 
  
Bookmarks