[Interest] QSerialport EV_RXCHAR not emitted or catched while moving window

Riccardo Roasio riccardo.roasio at gmail.com
Thu Mar 15 14:07:31 CET 2012


the serial port class is this one:

http://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCwQFjAA&url=http%3A%2F%2Fgitorious.org%2Finbiza-labs%2Fqserialport&ei=8OhhT_vNGY6KhQeg6tieCA&usg=AFQjCNF7vwKcu_dJz8y-QE6ziYhoPe4uNw&sig2=adTbs9FuJPYZhrNXtnfALg

it expect a EV_RXCHAR event on receiving something on the serial port
so it reimplements the QWidget event function:

bool WinSerialPortEngine::event(QEvent *e)
{
 //   qDebug()<<"event "<<e<<" "<<e->type();
    bool ret = false;
    if (e->type() == QEvent::WinEventAct) {
        if (EV_ERR & m_currentMask & m_setMask) {
            m_parent->canErrorNotification();
            ret = true;
        }

        if (EV_RXCHAR & m_currentMask & m_setMask)
        {
            m_parent->canReadNotification();
            ret = true;
        }

        //FIXME: This is why it does not work?
        if (EV_TXEMPTY & m_currentMask & m_setMask) {
            m_parent->canWriteNotification();
            ret = true;
        }
    }
    else
    {
         ret = QWinEventNotifier::event(e);
    }

    ::WaitCommEvent(m_descriptor, &m_currentMask, &m_ov);
    return ret;
}

the problem is that while receiving events like the
QEvent::NonClientAreaMouseButtonPres on the gui thread it stop
receivng EV_RXCHAR event on the serial port class



Il 15 marzo 2012 12:53, Samuel Gaist <samuel.gaist at edeltech.ch> ha scritto:
>
> On 15 mars 2012, at 12:37, Riccardo Roasio wrote:
>
>> Hi,
>>
>> i have a program with :
>>
>> - a main thread
>> - a serial manager thread using Qserialport
>>
>> i noticed that if i move the main gui the EV_RXCHAR event is not fired
>> or cached...
>>
>> what's wrong?
>>
>> thanks,
>> Riccardo
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
> Hi,
>
> With so few information, we won't be really be able to help you.
> But here is a few questions:
> - How is your serial manager thread implemented ? (My guess: run reimplementation)
> - Do you have signals slots directly connected ?
>
> Hope this helps
> Samuel
>
> PS:
> Did you also read this article ?
> http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/
>
> And there where a few discussions on the qt-nokia mailing list last year about threading, you might want to look for them
>



More information about the Interest mailing list