USB Communication Using Qt
-
It's possible to use the QtSerialPort on QT4? On this page (see: http://qt-project.org/wiki/Building-Qt-5-from-Git#15e7b6ad3df43ff719f8388ab4afb1cc) show thats is possible but he only explains to build in qt5!
Anyone is using on QT4? The example there show only to build on Windows, not on linux...
-
Possible.
Build and install process:
bq. $mkdir serialport-build $cd serialport-build $qmake ../qtserialport/serialport.pro $make (or nmake) $make install (or nmake install) Note: But in Windows, this build and install only the Debug version. To build and install Release version - just repeat the steps again, with: bq. $qmake ../qtserialport/serialport.pro CONFIG+=release use: ~~~ your custom *.pro file: bq. CONFIG += serialport your *.cpp file: @#include <QtAddOnSerialPort/serialport.h> #include <QtAddOnSerialPort/serialportinfo.h> QT_USE_NAMESPACE_SERIALPORT@
-
hi kuzulis, from QtCreator I build and appears to works fine... Doing the make as you said give me an error...
I have already copy and past the folder "QtAddOnSerialPorta" to “../bin/QtSDK/Desktop/Qt/4.8.1/gcc/include/.” and QtCreator find the includes:@
#include <QtAddOnSerialPort/serialport.h>
#include <QtAddOnSerialPort/serialportinfo.h
@I'm trying to run the example on that page but doesn't works.... the errors:
"Undefined reference to 'QtAddOn::SerialPort::SerialPortInfo::avaliablePorts()'"
... (more others 14 similar erros) -
Sorry I made some mistake:
When I try to compile on Qt using 4.6.1 or using the make on shell It gives me this error:
moc_serialport.cpp:55:16: error: ‘SerialPort’ was not declared in this scope
On the QT 4.8.1 the Qt Creator gives the message:
...
#error (moc changes too much)
... -
Remove (clear) away all that you previously copied by hand and do as I have indicated in the "above":http://qt-project.org/forums/viewreply/90605/
-
See the errors:
@
...
...
...
/home/dvl/SOURCE_CODE/qtserialport/src -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I/home/dvl/SOURCE_CODE/qtserialport/src -I. -I/home/dvl/SOURCE_CODE/qtserialport/src -I. -o moc_serialport.o moc_serialport.cpp
moc_serialport.cpp:55:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:56:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:57:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:58:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:59:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:60:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:61:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:62:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:63:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:64:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:65:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:66:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:67:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:68:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:69:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:70:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:71:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:72:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:73:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:74:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:75:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:76:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:77:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:78:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:79:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:80:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:81:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:82:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:83:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:84:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:85:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:86:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:87:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:88:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:89:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:90:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:91:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:92:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:93:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:94:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:95:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:96:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:97:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:98:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:99:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:100:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:101:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:102:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:103:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:104:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:105:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:106:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:107:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:108:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:109:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:110:16: error: ‘SerialPort’ was not declared in this scope
moc_serialport.cpp:142:19: error: ‘SerialPort’ has not been declared
moc_serialport.cpp:151:20: error: ‘SerialPort’ has not been declared
moc_serialport.cpp:151:45: error: non-member function ‘const QMetaObject* metaObject()’ cannot have cv-qualifier
/usr/include/QtCore/qobject.h: In function ‘const QMetaObject* metaObject()’:
/usr/include/QtCore/qobject.h:296:33: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected
...
...
...
@ -
I do not know what you did - but I have everything working well.
1.To start, try to remove all the headers, libraries, etc. QtSerialPort of the your *nix OS.
2. Download the latest version of the library
3. Build and install library to the system step-by-step, see an new updated manual in the Wiki.
4. Create a new blank project and include the library as stated in the WikiMore anything, I can not help you, because I can not control all of your "curves" action.
-
You may want to have a look at "libusb-win32":http://sourceforge.net/apps/trac/libusb-win32/wiki. It depens wether you are using ftdi chips for the µC side, or want to build your usb-client on the controller yourself. For attaching a device very simple try to use the ftdi232 with either vcp or d2xx usage. I.e. "ftdi-link":http://www.ftdichip.com/Products/ICs/FT231X.html
.. frank -
The "chips":http://www.ftdichip.com/Drivers/VCP.htm do have drivers for several os. Using your own driver has to supply your own usb VID. Which library you use may depend on the way you want to build it and if you want to use polling or event driven mode to receive data. However, I've used QExtSerialport for Windows and it works fine using a QThread polling the data once a msec.
-
bq. My client is using the µC “NXP LPC2366”, I have the driver for him!
I have questions:
- NXP LPC2366 It's ARM MCU?
- The client uses the "native" serial interface of MCU (USART), or emulation via the USB interface of MCU?
- If the emulation, then it serial port correct whether is determined by SerialPortInfo::availablePorts() (QtSerialPort) ? If incorrectly - that let me know.
bq. However, I’ve used QExtSerialport for Windows and it works fine using a QThread polling the data once a msec.
Polling to use threads - this is redundant and inefficient, and I do not believe that you get exactly 1 ms. But this is offtopic.
-
Well kuzulis, you make some technical questions that in the moment I cannot answer you!
I GUESS that my client is using the "native" serial interface of ARM, he sends to me the Windows Driver (.INF), it can help me for something?I have build another time the QtSerialPort using the QtCreator, and now I have some others files:
@
QtAddOnSerialPort/
QtAddOnSerialPortVersion
serialport-global.h
serialportinfo.h
headers.pri
qtaddonserialportversion.h
serialport.h
1.0.0/
QtAddOnSerialPort/
private/
qringbuffer_p.h
serialportengine_symbian_p.h
serialportinfo_p.h
qwineventnotifier_p.h
serialportengine_unix_p.h
serialport_p.h
serialportengine_p.h
serialportengine_win_p.h
ttylocker_unix_p.h
@This is correct?
Missing something?
Thanks! -
bq. I GUESS that my client is using the “native” serial interface of ARM, he sends to me the Windows Driver (.INF),
If the driver, so it's not "native" USART, I guess it emulates in the MCU via USB. For native USART of MCU driver is not needed.
bq. it can help me for something?
Probably. You can here show this *.inf file?
bq. This is correct? Missing something?
Most likely you have build a library for Qt5. For Qt5 is correct.
After build on Qt5, the QtSerialPort libraries (debug and release) is automatically copied to Qt5/qtbase/bin and Qt5/qtbase/lib, then you need to run "make install" (or nmake install) and these header files are also copied to the Qt5/include