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

Samuel Gaist samuel.gaist at edeltech.ch
Thu Mar 15 14:26:21 CET 2012


I must say, I don't understand your use of QSerialPort.

You are waiting on data coming from the serial port, aren't you ?
So, why not just connect to the readyRead signal ?

On 15 mars 2012, at 14:07, Riccardo Roasio wrote:

> 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