Win CE Event in Qt-Eventqueue einreihen
Verfasst: 9. August 2011 14:02
Hallo,
ich bin noch realitiv in der Qt-Materie, habe aber schon das erste große Problem.
Ich schreibe eine Qt-Konsolenanwendung die Daten und Event seines WinCE-Dienst empfängt.
Der Dienst bedient die RS232 uns soll sich über ein Event melden, um die Nutzdaten abzuholen.
Leider habe ich beim Einbinden des Event ein Q_ASSERT Problem(Rot markiert):
00051 : QObject(parent), handleToEvent(hEvent), enabled(false)
00052 {
00053 Q_D(QObject);
00054 QEventDispatcherWin32 *eventDispatcher = qobject_cast<QEventDispatcherWin32 *>(d->threadData->eventDispatcher);
00055 Q_ASSERT_X(eventDispatcher, "QWinEventNotifier::QWinEventNotifier()",
00056 "Cannot create a win event notifier without a QEventDispatcherWin32");
00057 eventDispatcher->registerEventNotifier(this);
00058 enabled = true;
00059 }
Das Problem tritt auf wenn ich folgenden Code ausführe(rot markiert):
bool MST_Interface::init(void)
{
//Auf die Dienst-Nachrichten registrieren
herrevent = INVALID_HANDLE_VALUE;
hrecevent = INVALID_HANDLE_VALUE;
hmsgqueue = INVALID_HANDLE_VALUE;
//WINAPI Event erstellen und in der QtMsgqueue registrieren
hrecevent = CreateEvent(NULL,FALSE,FALSE,TEXT("RXMessageready"));
if(hrecevent == INVALID_HANDLE_VALUE)
{
qDebug()<< __FILE__ << "Unable to create receive event" ;
return false;
}
else
{//Event Receive in der Qt-Queue registrieren
notrecevent = new QWinEventNotifier(hrecevent,this);
connect(notrecevent, SIGNAL(activated(HANDLE)),SLOT(&serviceReceiveHandler(HANDLE h)));
}
Leider habe ich gar keine Idee was daran falsch sein könnte.
Da ich das nicht zum Spaß mache sondern unter Zeitdruck stehe bin ich für jede Hilfe sehr dankbar!
ich bin noch realitiv in der Qt-Materie, habe aber schon das erste große Problem.
Ich schreibe eine Qt-Konsolenanwendung die Daten und Event seines WinCE-Dienst empfängt.
Der Dienst bedient die RS232 uns soll sich über ein Event melden, um die Nutzdaten abzuholen.
Leider habe ich beim Einbinden des Event ein Q_ASSERT Problem(Rot markiert):
00051 : QObject(parent), handleToEvent(hEvent), enabled(false)
00052 {
00053 Q_D(QObject);
00054 QEventDispatcherWin32 *eventDispatcher = qobject_cast<QEventDispatcherWin32 *>(d->threadData->eventDispatcher);
00055 Q_ASSERT_X(eventDispatcher, "QWinEventNotifier::QWinEventNotifier()",
00056 "Cannot create a win event notifier without a QEventDispatcherWin32");
00057 eventDispatcher->registerEventNotifier(this);
00058 enabled = true;
00059 }
Das Problem tritt auf wenn ich folgenden Code ausführe(rot markiert):
bool MST_Interface::init(void)
{
//Auf die Dienst-Nachrichten registrieren
herrevent = INVALID_HANDLE_VALUE;
hrecevent = INVALID_HANDLE_VALUE;
hmsgqueue = INVALID_HANDLE_VALUE;
//WINAPI Event erstellen und in der QtMsgqueue registrieren
hrecevent = CreateEvent(NULL,FALSE,FALSE,TEXT("RXMessageready"));
if(hrecevent == INVALID_HANDLE_VALUE)
{
qDebug()<< __FILE__ << "Unable to create receive event" ;
return false;
}
else
{//Event Receive in der Qt-Queue registrieren
notrecevent = new QWinEventNotifier(hrecevent,this);
connect(notrecevent, SIGNAL(activated(HANDLE)),SLOT(&serviceReceiveHandler(HANDLE h)));
}
Leider habe ich gar keine Idee was daran falsch sein könnte.
Da ich das nicht zum Spaß mache sondern unter Zeitdruck stehe bin ich für jede Hilfe sehr dankbar!