[Qt-interest] QExtSerialPort Overhead
Donal
donaloconnor at gmail.com
Sat Feb 14 04:10:35 CET 2009
Sorted,
I had to use the setTimeout() function so placed
connection->setTimeout(0,100); and that seems to do the trick.
Regards,
Donal
On Sat, Feb 14, 2009 at 1:36 AM, Donal <donaloconnor at gmail.com> wrote:
> Hi again,
>
> Forgive me for posting this in here, I will continue my qextserialport
> issues else where but a final quick one just in case you have any ideas....
>
> I created a separate thread for my serial I/O. In the run() method I
> created all the necessary objects etc and created a connection to the serial
> port successfully. I successfully wrote a command out. My problem however
> though is the amount of time it takes to issue a read.
>
> I created a QTime object to measure the elapsed time and the results are
> crazy. About 500ms just to read from the buffer??
>
> void run()
> {
> connection = new QextSerialPort("/dev/ttyUSB0");
> connection->setBaudRate(BAUD38400);
> connection->setDataBits(DATA_8);
> connection->setParity(PAR_NONE);
> connection->setStopBits(STOP_1);
> connection->setFlowControl(FLOW_OFF);
>
> int result = connection->open(QextSerialPort::ReadWrite);
>
> if (result)
> qDebug("Successfully Connected to Serial Port");
> else
> qDebug("Failure to Connect to Serial Port");
>
> QTime t;
>
> QString message("010C\x0D");
> connection->write(message.toAscii(),message.length());
>
> int bytes = 0;
> QByteArray myBuffer;
> bytes = connection->bytesAvailable();
>
> while(bytes != 33)
> {
> bytes = connection->bytesAvailable();
>
> if (bytes == 33)
> {
> t.start();
> myBuffer = connection->read(bytes);
> qDebug("Time elapsed : %d ms", t.elapsed());
> } else
> SleepThread::msleep(10);
> }
>
> connection->close();
> }
>
> OUTPUT:
>
> Successfully Connected to Serial Port
> Time elapsed : 499 ms
>
> As matter of fact is is always 499ms. I am using XUbuntu in VMWare so I am
> not sure if that is an issue or not.
> I know that my code doesn't do much error checking etc.
>
> How is it so slow to do a read from the buffer?
>
> The problem I have is that I must send a command and read the full response
> as quick as possible so I don't want to be doing sleeps before I attempt to
> read, I want to poll as fast as possible and then read all data from buffer
> at one go.
>
> Cheers.
>
> Donal
>
>
> On Thu, Feb 12, 2009 at 5:08 PM, Donal <donaloconnor at gmail.com> wrote:
>
>> Thanks very much for the response. Yep understand it is not part of the
>> standard QT framework, so apologies for bringing it here.
>>
>> Thanks for the advice, I will take it onboard.
>>
>> Regards,
>> Donal
>>
>> On Thu, Feb 12, 2009 at 4:58 PM, Pascal Patry <iscy at invalidip.com> wrote:
>>
>>> On February 12, 2009 11:31:09 am Donal wrote:
>>> > Hi There,
>>>
>>> Hi,
>>>
>>> > I am wondering if I'll have timing issues further down the line and
>>> need to
>>> > know if QExtSerialPort is the way to go.
>>>
>>> QextSerialPort is not part of Qt. It is a separate project developed
>>> developed by
>>> different people. However its API is based on Qt.
>>>
>>> > I will be querying a serial device roughly 6 times a second, processing
>>> lot
>>> > of different commands. This will be running in a thread along
>>> > with a QTimer in another for reading time outs etc.
>>>
>>> You should probably think about doing an IO only thread here instead of
>>> relying on QTimer
>>> for performance reasons...
>>>
>>> > I will be running this on a 200Mhz ARM processor on Embedded Linux. My
>>> > question is, is QExtSerialPort quick enough to handle such requests
>>> > while updating a GUI with maybe 6 values obtained each second.
>>> >
>>> > If not I may have to go more low level with C.
>>>
>>> Yes, QextSerialPort is more than enough for your needs. It will help you
>>> staying far from
>>> posix calls, while being cross platform. It is only a wrapper, so it
>>> won't hurt the
>>> performance your application.
>>>
>>>
>>> _______________________________________________
>>> Qt-interest mailing list
>>> Qt-interest at trolltech.com
>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090214/07123054/attachment.html
More information about the Qt-interest-old
mailing list