Hallo Leute,
ich möchte folgendes Problem mit zwei Threads lösen:
Thread 1 liest Daten von einer Hardware ein (Pollen) und schreibt diese in eine QList
Thread 2 liest die Daten aus der Qlist und schickt sie an die Ausgabe weiter.
Nun meine Frage dazu: Wie gehe ich dieses Problem an?
Ich wollte es so machen:
Erzeugung einer Klasse pollThread, die von QThread abgeleitet wird. Übergabe einer existierenden QList an den Konstruktor von pollThread.
Erstellung von einem Timer in pollThread, der regelmäßig die hardware abfragen soll.
dazu will ich das timeout-signal mit einem private slot in QThread verbinden. Kann ich das so machen?
grüße
Christian
[gelöst] QThread Knoten im Kopf
[gelöst] QThread Knoten im Kopf
Zuletzt geändert von bw1faeh0 am 25. Oktober 2007 14:24, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
mhh... aber irgendwie mag der Compiler das Ganze ganz und garnicht
Schon an der Header-Datei muckt er rum:
Der compiler meint folgendes dazu:
FmbSniffer.h:22: error: expected `)' before '*' token
FmbSniffer.h:31: error: ISO C++ forbids declaration of `QList' with no type
FmbSniffer.h:31: error: expected `;' before '*' token
FmbSniffer.h:44: error: expected `)' before '*' token
FmbSniffer.h:48: error: ISO C++ forbids declaration of `QList' with no type
FmbSniffer.h:48: error: expected `;' before '*' token
FmbSniffer.h:57: error: expected `)' before '*' token
FmbSniffer.h:57: error: expected `,' or `;' before '*' token
Warum gibt es die Probleme mit QList??
Habe ich gerade ein großes Brett vorm Kopf??
Schon an der Header-Datei muckt er rum:
Code: Alles auswählen
#ifndef __FMBSNIFFER_H__
#define __FMBSNIFFER_H__
#include "global.h"
#include "Workspace.h"
#include "fmbmonitor.h"
#include <QList>
enum
{
c_POLL_INTERVALL = 10
};
enum
{
c_OPEN_CONNECTION_INTERVALL = 1000
};
Code: Alles auswählen
class PollThread:public QThread
{
public:
PollThread(QList *usedTelegramList);
~PollThread();
void start();
private slots:
void readFromHardware();
private:
QList *telegramList;
unsigned long i_list;
QTimer *pollTimer;
QString *newTelegram;
protected:
void run();
};
Code: Alles auswählen
class SendThread : public QThread
{
public:
SendThread(QList *usedTelegramList, Workspace *usedWorkspace)
start();
private:
QList *telegramList;
QString *telegram;
QTimer *sendTimer;
Workspace *workspace;
protected:
void run();
};
Code: Alles auswählen
class FmbSniffer{
public:
FmbSniffer(fmbMonitor *mainWindow, Workspace *usedWorkspace)
;
~FmbSniffer();
public slots:
void openConnection();
private:
PollThread *pollFmbSniffer;
QTimer *connectionTimer;
SendThread *sendToView;
QList *telegramList;
bool connected;
// Verweise auf bereits existierende Objekte
fmbMonitor *mainApp;
Workspace *workspace;
};
#endif /*__FMBSNIFFER_H__*/
FmbSniffer.h:22: error: expected `)' before '*' token
FmbSniffer.h:31: error: ISO C++ forbids declaration of `QList' with no type
FmbSniffer.h:31: error: expected `;' before '*' token
FmbSniffer.h:44: error: expected `)' before '*' token
FmbSniffer.h:48: error: ISO C++ forbids declaration of `QList' with no type
FmbSniffer.h:48: error: expected `;' before '*' token
FmbSniffer.h:57: error: expected `)' before '*' token
FmbSniffer.h:57: error: expected `,' or `;' before '*' token
Warum gibt es die Probleme mit QList??
Habe ich gerade ein großes Brett vorm Kopf??
Zuletzt geändert von bw1faeh0 am 25. Oktober 2007 11:05, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: