1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

Merge branch 'thread/OP-1169_UAVO_Browser_Bug' into next

This commit is contained in:
Fredrik Arvidsson 2014-01-19 12:33:02 +01:00
commit 42ffb3b1e9
8 changed files with 56 additions and 31 deletions

View File

@ -5,7 +5,9 @@ Pedro Assuncao
Fredrik Arvidsson
Werner Backes
Jose Barros
Mikael Blomqvist
Pete Boehl
Glenn Campigli
David Carlson
James Cotton
Steve Doll
@ -13,7 +15,9 @@ Piotr Esden-Tempski
Richard Flay
Peter Farnworth
Ed Faulkner
Andrew Finegan
Darren Furniss
Cliff Geerdes
Frederic Goddeeris
Daniel Godin
Anthony Gomez
@ -24,6 +28,7 @@ Peter Gunnarsson
Dean Hall
Joe Hlebasko
Andy Honecker
Patrick Huebner
Ryan Hunt
Mark James
Ricky King
@ -34,6 +39,7 @@ Alan Krum
Edouard Lafargue
Mike Labranche
Fredrik Larsson
Richard von Lehe
Pablo Lema
David Llama
Matt Lipski
@ -65,6 +71,7 @@ Troy Schultz
Dr. Erhard Siegl
Dusty Anne Smith
Mike Smith
Bertrand Songis
Alex Sowa
Pete Stapley
Vova Starikh

View File

@ -1,3 +1,20 @@
--- RELEASE-14.01-RC1 ---
This is the release candidate 1 for the first 2014 software release.
This version still supports the CopterControl and CC3D.
It include some major "under the hood" changes like migration
to Qt5.1 and QtQuick2 widgets, and a overhaul of UAVTalk to improve
Telemetry and OPLink reliability.
Some functions addition in this release:
- "Rattitude" flight mode;
- Altitude Hold Reimplementation;
- Multiple PID banks;
- "Cruise Control"
the full list of features, improvements and bufixes shipping
in this release is accessible here:
http://progress.openpilot.org/browse/OP/fixforversion/10220
--- RELEASE-13.06.04 ---
This maintenance release includes the following fixes missing in (previously not released to public) RELEASE-13.06.03.
- Fixed issues with Google Maps;
@ -6,7 +23,8 @@ This maintenance release includes the following fixes missing in (previously not
JIRA issues addressed in this maintenance release:
OP-1044, OP-1070, OP-1072
Use the following link for a comprehensive list of issues addressed by this release
http://progress.openpilot.org/browse/OP-1070
http://progress.openpilot.org/issues/?filter=11060
--- RELEASE-13.06.03 ---

View File

@ -42,11 +42,11 @@ HighLightManager::HighLightManager(long checkingInterval)
bool HighLightManager::add(TreeItem *itemToAdd)
{
// Lock to ensure thread safety
QMutexLocker locker(&m_listMutex);
QMutexLocker locker(&m_mutex);
// Check so that the item isn't already in the list
if (!m_itemsList.contains(itemToAdd)) {
m_itemsList.append(itemToAdd);
if (!m_items.contains(itemToAdd)) {
m_items.insert(itemToAdd);
return true;
}
return false;
@ -59,10 +59,10 @@ bool HighLightManager::add(TreeItem *itemToAdd)
bool HighLightManager::remove(TreeItem *itemToRemove)
{
// Lock to ensure thread safety
QMutexLocker locker(&m_listMutex);
QMutexLocker locker(&m_mutex);
// Remove item and return result
return m_itemsList.removeOne(itemToRemove);
return m_items.remove(itemToRemove);
}
/*
@ -74,10 +74,10 @@ bool HighLightManager::remove(TreeItem *itemToRemove)
void HighLightManager::checkItemsExpired()
{
// Lock to ensure thread safety
QMutexLocker locker(&m_listMutex);
QMutexLocker locker(&m_mutex);
// Get a mutable iterator for the list
QMutableLinkedListIterator<TreeItem *> iter(m_itemsList);
QMutableSetIterator<TreeItem *> iter(m_items);
// This is the timestamp to compare with
QTime now = QTime::currentTime();
@ -211,7 +211,6 @@ void TreeItem::setHighlight(bool highlight)
void TreeItem::removeHighlight()
{
m_highlight = false;
// update();
emit updateHighlight(this);
}

View File

@ -78,11 +78,11 @@ private:
// The timer checking highlight expiration.
QTimer m_expirationTimer;
// The list holding all items due to be updated.
QLinkedList<TreeItem *> m_itemsList;
// The collection holding all items due to be updated.
QSet<TreeItem *> m_items;
// Mutex to lock when accessing list.
QMutex m_listMutex;
// Mutex to lock when accessing collection.
QMutex m_mutex;
};
class TreeItem : public QObject {
@ -231,8 +231,8 @@ public:
QList<MetaObjectTreeItem *> getMetaObjectItems();
private:
QMap<quint32, DataObjectTreeItem *> m_objectTreeItemsPerObjectIds;
QMap<quint32, MetaObjectTreeItem *> m_metaObjectTreeItemsPerObjectIds;
QHash<quint32, DataObjectTreeItem *> m_objectTreeItemsPerObjectIds;
QHash<quint32, MetaObjectTreeItem *> m_metaObjectTreeItemsPerObjectIds;
};
class ObjectTreeItem : public TreeItem {

View File

@ -122,7 +122,7 @@ void UAVObjectBrowserWidget::useScientificNotation(bool scientific)
Q_ASSERT(objManager);
UAVObjectTreeModel *tmpModel = m_model;
m_model = new UAVObjectTreeModel(0, m_viewoptions->cbCategorized, scientific);
m_model = new UAVObjectTreeModel(0, m_viewoptions->cbCategorized->isChecked(), scientific);
m_model->setRecentlyUpdatedColor(m_recentlyUpdatedColor);
m_model->setManuallyChangedColor(m_manuallyChangedColor);
m_model->setRecentlyUpdatedTimeout(m_recentlyUpdatedTimeout);

View File

@ -33,7 +33,6 @@
#include "uavobjectfield.h"
#include "extensionsystem/pluginmanager.h"
#include <QColor>
// #include <QIcon>
#include <QtCore/QTimer>
#include <QtCore/QSignalMapper>
#include <QtCore/QDebug>
@ -41,6 +40,7 @@
UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent, bool categorize, bool useScientificNotation) :
QAbstractItemModel(parent),
m_useScientificFloatNotation(useScientificNotation),
m_categorize(categorize),
m_recentlyUpdatedTimeout(500), // ms
m_recentlyUpdatedColor(QColor(255, 230, 230)),
m_manuallyChangedColor(QColor(230, 230, 255))
@ -54,7 +54,7 @@ UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent, bool categorize, bool us
connect(objManager, SIGNAL(newInstance(UAVObject *)), this, SLOT(newObject(UAVObject *)));
TreeItem::setHighlightTime(m_recentlyUpdatedTimeout);
setupModelData(objManager, categorize);
setupModelData(objManager);
}
UAVObjectTreeModel::~UAVObjectTreeModel()
@ -63,7 +63,7 @@ UAVObjectTreeModel::~UAVObjectTreeModel()
delete m_rootItem;
}
void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager, bool categorize)
void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager)
{
// root
QList<QVariant> rootData;
@ -83,7 +83,7 @@ void UAVObjectTreeModel::setupModelData(UAVObjectManager *objManager, bool categ
QList< QList<UAVDataObject *> > objList = objManager->getDataObjects();
foreach(QList<UAVDataObject *> list, objList) {
foreach(UAVDataObject * obj, list) {
addDataObject(obj, categorize);
addDataObject(obj);
}
}
}
@ -97,13 +97,13 @@ void UAVObjectTreeModel::newObject(UAVObject *obj)
}
}
void UAVObjectTreeModel::addDataObject(UAVDataObject *obj, bool categorize)
void UAVObjectTreeModel::addDataObject(UAVDataObject *obj)
{
TopTreeItem *root = obj->isSettings() ? m_settingsTree : m_nonSettingsTree;
TreeItem *parent = root;
if (categorize && obj->getCategory() != 0 && !obj->getCategory().isEmpty()) {
if (m_categorize && obj->getCategory() != 0 && !obj->getCategory().isEmpty()) {
QStringList categoryPath = obj->getCategory().split('/');
parent = createCategoryItems(categoryPath, root);
}

View File

@ -92,9 +92,9 @@ private slots:
void updateHighlight(TreeItem *);
private:
void setupModelData(UAVObjectManager *objManager, bool categorize = true);
void setupModelData(UAVObjectManager *objManager);
QModelIndex index(TreeItem *item);
void addDataObject(UAVDataObject *obj, bool categorize = true);
void addDataObject(UAVDataObject *obj);
MetaObjectTreeItem *addMetaObject(UAVMetaObject *obj, TreeItem *parent);
void addArrayField(UAVObjectField *field, TreeItem *parent);
void addSingleField(int index, UAVObjectField *field, TreeItem *parent);
@ -115,6 +115,7 @@ private:
QColor m_manuallyChangedColor;
bool m_onlyHilightChangedValues;
bool m_useScientificFloatNotation;
bool m_categorize;
// Highlight manager to handle highlighting of tree items.
HighLightManager *m_highlightManager;

View File

@ -44,31 +44,31 @@
type="enum"
elements="6"
options="Manual,Stabilized1,Stabilized2,Stabilized3,Autotune,AltitudeHold,AltitudeVario,VelocityControl,PositionHold,ReturnToBase,Land,PathPlanner,POI"
defaultvalue="Stabilized1,Stabilized2,Stabilized3,AltitudeHold,PositionHold,Manual"
defaultvalue="Stabilized1,Stabilized2,Stabilized3,AltitudeHold,AltitudeVario,Manual"
limits="\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI;\
\
%0401NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0402NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI,\
%0903NE:Autotune:AltitudeVario:AltitudeHold:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI"/>
%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner:POI"/>
<field name="ArmedTimeout" units="ms" type="uint16" elements="1" defaultvalue="30000"/>
<field name="ArmingSequenceTime" units="ms" type="uint16" elements="1" defaultvalue="1000"/>