Commit f0f05794 authored by lm's avatar lm

Fixed UDP multiplexer bug, fixed serial compile errors

parent 938a4320
...@@ -44,3 +44,7 @@ user_config.pri ...@@ -44,3 +44,7 @@ user_config.pri
*.cproject *.cproject
*.sln *.sln
*.suo *.suo
thirdParty/qserialport-build-desktop/
thirdParty/qserialport/bin/
thirdParty/qserialport/lib/
...@@ -58,36 +58,47 @@ exists(user_config.pri) { ...@@ -58,36 +58,47 @@ exists(user_config.pri) {
} }
INCLUDEPATH += $$BASEDIR/../mavlink/include/common INCLUDEPATH += $$BASEDIR/../mavlink/include/common
INCLUDEPATH += $$BASEDIR/../mavlink/include
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include/common
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include
contains(MAVLINK_CONF, pixhawk) { contains(MAVLINK_CONF, pixhawk) {
# Remove the default set - it is included anyway # Remove the default set - it is included anyway
INCLUDEPATH -= $$BASEDIR/../mavlink/include/common INCLUDEPATH -= $$BASEDIR/../mavlink/include/common
INCLUDEPATH -= $$BASEDIR/thirdParty/mavlink/include/common
# PIXHAWK SPECIAL MESSAGES # PIXHAWK SPECIAL MESSAGES
INCLUDEPATH += $$BASEDIR/../mavlink/include/pixhawk INCLUDEPATH += $$BASEDIR/../mavlink/include/pixhawk
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include/pixhawk
DEFINES += QGC_USE_PIXHAWK_MESSAGES DEFINES += QGC_USE_PIXHAWK_MESSAGES
} }
contains(MAVLINK_CONF, slugs) { contains(MAVLINK_CONF, slugs) {
# Remove the default set - it is included anyway # Remove the default set - it is included anyway
INCLUDEPATH -= $$BASEDIR/../mavlink/include/common INCLUDEPATH -= $$BASEDIR/../mavlink/include/common
INCLUDEPATH -= $$BASEDIR/thirdParty/mavlink/include/common
# SLUGS SPECIAL MESSAGES # SLUGS SPECIAL MESSAGES
INCLUDEPATH += $$BASEDIR/../mavlink/include/slugs INCLUDEPATH += $$BASEDIR/../mavlink/include/slugs
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include/slugs
DEFINES += QGC_USE_SLUGS_MESSAGES DEFINES += QGC_USE_SLUGS_MESSAGES
} }
contains(MAVLINK_CONF, ualberta) { contains(MAVLINK_CONF, ualberta) {
# Remove the default set - it is included anyway # Remove the default set - it is included anyway
INCLUDEPATH -= $$BASEDIR/../mavlink/include/common INCLUDEPATH -= $$BASEDIR/../mavlink/include/common
INCLUDEPATH -= $$BASEDIR/thirdParty/mavlink/include/common
# UALBERTA SPECIAL MESSAGES # UALBERTA SPECIAL MESSAGES
INCLUDEPATH += $$BASEDIR/../mavlink/include/ualberta INCLUDEPATH += $$BASEDIR/../mavlink/include/ualberta
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include/ualberta
DEFINES += QGC_USE_UALBERTA_MESSAGES DEFINES += QGC_USE_UALBERTA_MESSAGES
} }
contains(MAVLINK_CONF, ardupilotmega) { contains(MAVLINK_CONF, ardupilotmega) {
# Remove the default set - it is included anyway # Remove the default set - it is included anyway
INCLUDEPATH -= $$BASEDIR/../mavlink/include/common INCLUDEPATH -= $$BASEDIR/../mavlink/include/common
INCLUDEPATH -= $$BASEDIR/thirdParty/mavlink/include/common
# UALBERTA SPECIAL MESSAGES # UALBERTA SPECIAL MESSAGES
INCLUDEPATH += $$BASEDIR/../mavlink/include/ardupilotmega INCLUDEPATH += $$BASEDIR/../mavlink/include/ardupilotmega
INCLUDEPATH += $$BASEDIR/thirdParty/mavlink/include/ardupilotmega
DEFINES += QGC_USE_ARDUPILOTMEGA_MESSAGES DEFINES += QGC_USE_ARDUPILOTMEGA_MESSAGES
} }
...@@ -97,13 +108,6 @@ contains(MAVLINK_CONF, ardupilotmega) { ...@@ -97,13 +108,6 @@ contains(MAVLINK_CONF, ardupilotmega) {
# done by the plugins above # done by the plugins above
include(qgroundcontrol.pri) include(qgroundcontrol.pri)
# QWT plot and QExtSerial depend on paths set by qgroundcontrol.pri
# Include serial port library
include(src/lib/qextserialport/qextserialport.pri)
# include qserial library
include(thirdParty/qserial/qserialport.prf)
# Include QWT plotting library # Include QWT plotting library
include(src/lib/qwt/qwt.pri) include(src/lib/qwt/qwt.pri)
DEPENDPATH += . \ DEPENDPATH += . \
...@@ -111,11 +115,22 @@ DEPENDPATH += . \ ...@@ -111,11 +115,22 @@ DEPENDPATH += . \
lib/QMapControl/src \ lib/QMapControl/src \
lib/opmapcontrol \ lib/opmapcontrol \
lib/opmapcontrol/src \ lib/opmapcontrol/src \
plugins plugins \
thirdParty/qserialport/include \
thirdParty/qserialport/include/QtSerialPort \
thirdParty/qserialport
INCLUDEPATH += . \ INCLUDEPATH += . \
lib/QMapControl \ lib/QMapControl \
lib/opmapcontrol \ lib/opmapcontrol \
$$BASEDIR/../mavlink/include thirdParty/qserialport/include \
thirdParty/qserialport/include/QtSerialPort \
thirdParty/qserialport/src
# Include serial port library
include(src/lib/qextserialport/qextserialport.pri)
# include qserial library
include(thirdParty/qserialport/qgroundcontrol-qserialport.pri)
# ../mavlink/include \ # ../mavlink/include \
# MAVLink/include \ # MAVLink/include \
......
...@@ -49,7 +49,8 @@ signals: ...@@ -49,7 +49,8 @@ signals:
public: public:
enum baudRateType { enum baudRateType
{
BAUD50, //POSIX ONLY BAUD50, //POSIX ONLY
BAUD75, //POSIX ONLY BAUD75, //POSIX ONLY
BAUD110, BAUD110,
...@@ -77,14 +78,16 @@ public: ...@@ -77,14 +78,16 @@ public:
BAUD921600 // WINDOWS ONLY BAUD921600 // WINDOWS ONLY
}; };
enum dataBitsType { enum dataBitsType
{
DATA_5, DATA_5,
DATA_6, DATA_6,
DATA_7, DATA_7,
DATA_8 DATA_8
}; };
enum parityType { enum parityType
{
PAR_NONE, PAR_NONE,
PAR_ODD, PAR_ODD,
PAR_EVEN, PAR_EVEN,
...@@ -92,13 +95,15 @@ public: ...@@ -92,13 +95,15 @@ public:
PAR_SPACE PAR_SPACE
}; };
enum stopBitsType { enum stopBitsType
{
STOP_1, STOP_1,
STOP_1_5, //WINDOWS ONLY STOP_1_5, //WINDOWS ONLY
STOP_2 STOP_2
}; };
enum flowType { enum flowType
{
FLOW_OFF, FLOW_OFF,
FLOW_HARDWARE, FLOW_HARDWARE,
FLOW_XONXOFF FLOW_XONXOFF
...@@ -107,7 +112,8 @@ public: ...@@ -107,7 +112,8 @@ public:
/** /**
* structure to contain port settings * structure to contain port settings
*/ */
struct portSettings { struct portSettings
{
baudRateType BaudRate; baudRateType BaudRate;
dataBitsType DataBits; dataBitsType DataBits;
parityType Parity; parityType Parity;
...@@ -186,10 +192,11 @@ public: ...@@ -186,10 +192,11 @@ public:
} }
virtual void setTimeout(qint64 timeout) { virtual void setTimeout(qint64 timeout) {
_port->setTimeout(timeout); _port->setTimeout(timeout);
}; }
virtual void setFlow(SerialInterface::flowType flow) { virtual void setFlow(SerialInterface::flowType flow) {
// TODO implement // TODO implement
}; _port->setFlowControl((FlowType)flow);
}
}; };
using namespace TNX; using namespace TNX;
...@@ -262,11 +269,11 @@ public: ...@@ -262,11 +269,11 @@ public:
virtual void setTimeout(qint64 timeout) { virtual void setTimeout(qint64 timeout) {
// TODO implement // TODO implement
//_port->setTimeout(timeout); //_port->setTimeout(timeout);
}; }
virtual void setFlow(SerialInterface::flowType flow) { virtual void setFlow(SerialInterface::flowType flow) {
// TODO map // TODO map
settings.setFlowControl(QPortSettings::FLOW_OFF); settings.setFlowControl(QPortSettings::FLOW_OFF);
}; }
}; };
#endif // SERIALINTERFACE_H #endif // SERIALINTERFACE_H
......
...@@ -48,32 +48,14 @@ SerialLink::SerialLink(QString portname, SerialInterface::baudRateType baudrate, ...@@ -48,32 +48,14 @@ SerialLink::SerialLink(QString portname, SerialInterface::baudRateType baudrate,
this->timeout = 1; ///< The timeout controls how long the program flow should wait for new serial bytes. As we're polling, we don't want to wait at all. this->timeout = 1; ///< The timeout controls how long the program flow should wait for new serial bytes. As we're polling, we don't want to wait at all.
// Set the port name // Set the port name
if (porthandle == "") { if (porthandle == "")
// name = tr("serial link ") + QString::number(getId()) + tr(" (unconfigured)"); {
name = tr("Serial Link ") + QString::number(getId()); name = tr("Serial Link ") + QString::number(getId());
} else {
name = portname.trimmed();
} }
else
#ifdef _WIN3232 {
// Windows 32bit & 64bit serial connection name = portname.trimmed();
winPort = CreateFile(porthandle,
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if(winPort==INVALID_HANDLE_VALUE) {
if(GetLastError()==ERROR_FILE_NOT_FOUND) {
//serial port does not exist. Inform user.
}
//some other error occurred. Inform user.
} }
#else
#endif
loadSettings(); loadSettings();
} }
......
...@@ -85,29 +85,32 @@ void UDPLink::setPort(int port) ...@@ -85,29 +85,32 @@ void UDPLink::setPort(int port)
*/ */
void UDPLink::addHost(const QString& host) void UDPLink::addHost(const QString& host)
{ {
qDebug() << "UDP:" << "ADDING HOST:" << host; if (host != "")
if (host.contains(":")) { {
qDebug() << "HOST: " << host.split(":").first(); qDebug() << "UDP:" << "ADDING HOST:" << host;
QHostInfo info = QHostInfo::fromName(host.split(":").first()); if (host.contains(":")) {
// Add host qDebug() << "HOST: " << host.split(":").first();
QList<QHostAddress> hostAddresses = info.addresses(); QHostInfo info = QHostInfo::fromName(host.split(":").first());
QHostAddress address; // Add host
for (int i = 0; i < hostAddresses.size(); i++) { QList<QHostAddress> hostAddresses = info.addresses();
// Exclude loopback IPv4 and all IPv6 addresses QHostAddress address;
if (!hostAddresses.at(i).toString().contains(":")) { for (int i = 0; i < hostAddresses.size(); i++) {
address = hostAddresses.at(i); // Exclude loopback IPv4 and all IPv6 addresses
if (!hostAddresses.at(i).toString().contains(":")) {
address = hostAddresses.at(i);
}
} }
hosts.append(address);
qDebug() << "Address:" << address.toString();
// Set port according to user input
ports.append(host.split(":").last().toInt());
} else {
QHostInfo info = QHostInfo::fromName(host);
// Add host
hosts.append(info.addresses().first());
// Set port according to default (this port)
ports.append(port);
} }
hosts.append(address);
qDebug() << "Address:" << address.toString();
// Set port according to user input
ports.append(host.split(":").last().toInt());
} else {
QHostInfo info = QHostInfo::fromName(host);
// Add host
hosts.append(info.addresses().first());
// Set port according to default (this port)
ports.append(port);
} }
} }
......
######################################################################
# Automatically generated by qmake (2.01a) Sa. Apr 2 10:42:30 2011
######################################################################
DEPENDPATH += . \
include/QtSerialPort \
src/common \
src/posix \
src/win32
INCLUDEPATH += include \
include/QtSerialPort \
src/posix \
src/win32
# Input
HEADERS += include/QtSerialPort/qportsettings.h \
include/QtSerialPort/qserialport.h \
include/QtSerialPort/qserialport_export.h \
include/QtSerialPort/qserialportnative.h
macx|linux-g++|linux-g++-64 {
HEADERS += src/posix/termioshelper.h
}
win32-msvc2008|win32-g++ {
HEADERS += src/win32/commdcbhelper.h \
src/win32/qwincommevtnotifier.h \
src/win32/wincommevtbreaker.h \
src/win32/commdcbhelper.h \
src/win32/qwincommevtnotifier.h \
src/win32/wincommevtbreaker.h
}
SOURCES += src/common/qportsettings.cpp \
src/common/qserialport.cpp
macx|linux-g++|linux-g++-64 {
SOURCES += src/posix/qserialportnative_posix.cpp \
src/posix/termioshelper.cpp
}
win32-msvc2008|win32-g++ {
SOURCES += src/win32/commdcbhelper.cpp \
src/win32/qserialportnative_win32.cpp \
src/win32/qwincommevtnotifier.cpp \
src/win32/wincommevtbreaker.cpp
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment