Commit 6feb451d authored by Don Gagne's avatar Don Gagne

parent 5ea49f8f
...@@ -14,8 +14,9 @@ Note: This file only contains high level features or important fixes. ...@@ -14,8 +14,9 @@ Note: This file only contains high level features or important fixes.
## 4.0 ## 4.0
## 4.0.8 - Not yet released ## 4.0.9 - Not yet released
* Don't auto-connect to second Cube Orange/Yellow composite port
* Plan: Fix bugs associated with mission commands which specify and altitude but no lat/lon * Plan: Fix bugs associated with mission commands which specify and altitude but no lat/lon
* Fix bug which could prevent view switching from working after altitude mode warning dialog would pop up * Fix bug which could prevent view switching from working after altitude mode warning dialog would pop up
......
...@@ -294,10 +294,35 @@ QString QGCSerialPortInfo::_boardTypeToString(BoardType_t boardType) ...@@ -294,10 +294,35 @@ QString QGCSerialPortInfo::_boardTypeToString(BoardType_t boardType)
QList<QGCSerialPortInfo> QGCSerialPortInfo::availablePorts(void) QList<QGCSerialPortInfo> QGCSerialPortInfo::availablePorts(void)
{ {
// Cube Orange/Yellow are composite devices which expose two usb ports over a single usb connection.
// The first port is the mavlink connection, the second is the SLCAN connection by default.
// We don't expose the second port as being available to QGC.
static const int hexCubeVID = 11694;
static const int hexCubeOrangePID = 4118;
static const int hexCubeYellowPID = 4114;
bool cubeOrangeAlreadySeen = false;
bool cubeYellowAlreadySeen = false;
QList<QGCSerialPortInfo> list; QList<QGCSerialPortInfo> list;
for(QSerialPortInfo portInfo: QSerialPortInfo::availablePorts()) { for(QSerialPortInfo portInfo: QSerialPortInfo::availablePorts()) {
if (!isSystemPort(&portInfo)) { if (!isSystemPort(&portInfo)) {
if (portInfo.vendorIdentifier() == hexCubeVID && portInfo.productIdentifier() == hexCubeOrangePID) {
if (cubeOrangeAlreadySeen) {
continue;
}
qCDebug(QGCSerialPortInfoLog) << "Skipping secondary port on Cube Orange" << portInfo.portName();
cubeOrangeAlreadySeen = true;
}
if (portInfo.vendorIdentifier() == hexCubeVID && portInfo.productIdentifier() == hexCubeYellowPID) {
if (cubeYellowAlreadySeen) {
continue;
}
qCDebug(QGCSerialPortInfoLog) << "Skipping secondary port on Cube Yellow" << portInfo.portName();
cubeYellowAlreadySeen = true;
}
list << *((QGCSerialPortInfo*)&portInfo); list << *((QGCSerialPortInfo*)&portInfo);
} }
} }
......
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