Real Time Applications in Qt
-
Hello
I have developed some GUI applications using Qt. But I never worked on advance applications like multithreading and real time applications. So for my reference I need some examples in multithreading and real time. Can I refer Scribble and gtalk application as real time applications?. These are already in Qt Examples. I am not sure which examples I can refer for getting some basic idea.
Please help give.Thanks in advance
-
Do you want "real time" or "high performance"? People often use them interchangeably, but there are important differences (http://en.wikipedia.org/wiki/Real-time_computing#Real-time_and_high-performance )
Anyway, all applications need to produce correct output, but real time applications also need to produce the output within certain deadlines. So yes, we can consider GTalk, Scribble as real-time apps -- GTalk needs to deliver messages within a few seconds or less; Scribble needs to keep up with my mouse clicks. Another example is audio/video streaming. These are soft real-time programs though, since it's not serious if they miss deadlines sometimes. (If a hard real-time program misses a deadline, it's catastrophic -- e.g. software inside a pacemaker)
-
Very simply, multithreading is just splitting up computation between different CPU cores. It's usually done to improve performance; people usually don't care if a program is single-threaded or multi-threaded or not, unless multi-threading affects the program's performance.
Any single-threaded program can be made multi-threaded, even a "Hello World" program.
A simple but incomplete example can be found at http://qt-project.org/forums/viewthread/20691/
A useful example is at http://blog.qt.digia.com/2010/05/18/qtmultimedia-in-action-a-spectrum-analyser/ -- Analysing audio data takes a long time, so the programmer put that function in a different thread. Otherwise, the GUI might hang while the program is processing data.
Warning: Qt's official documentation on QThreads are currently outdated. Don't follow them until they're updated
-
@JKSH I need to write my own DAQ Software that acquires data from COM-Port and sets some digital outputs also over COM.
Is there a way in Qt Framework to bind a cpu core to a Thread to mimic PLC behavior?
I know that Beckhoff uses consumer cpus as soft PLC's.
Thanks in advance! -
@LS-KS said in Real Time Applications in Qt:
Is there a way in Qt Framework to bind a cpu core to a Thread
I don't think there is. You will have to use system calls to do this.