mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-05 21:52:10 +01:00
New PipXtreme configuration plugin .. currently not enabled or finished.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2502 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
500a199a70
commit
50b897c015
@ -157,6 +157,13 @@ SUBDIRS += plugin_gcscontrol
|
|||||||
#plugin_antennatrack.depends = plugin_uavtalk
|
#plugin_antennatrack.depends = plugin_uavtalk
|
||||||
#SUBDIRS += plugin_antennatrack
|
#SUBDIRS += plugin_antennatrack
|
||||||
|
|
||||||
|
#PipXtreme Gadget
|
||||||
|
#plugin_pipxtreme.subdir = pipxtreme
|
||||||
|
#plugin_pipxtreme.depends = plugin_coreplugin
|
||||||
|
#plugin_modelview.depends = plugin_uavobjects
|
||||||
|
#plugin_modelview.depends = plugin_rawhid
|
||||||
|
#SUBDIRS += plugin_pipxtreme
|
||||||
|
|
||||||
# Empty UAVGadget - Default for new splits
|
# Empty UAVGadget - Default for new splits
|
||||||
plugin_magicwaypoint.subdir = magicwaypoint
|
plugin_magicwaypoint.subdir = magicwaypoint
|
||||||
plugin_magicwaypoint.depends = plugin_coreplugin
|
plugin_magicwaypoint.depends = plugin_coreplugin
|
||||||
|
13
ground/src/plugins/uploader/pipxtreme.pluginspec
Normal file
13
ground/src/plugins/uploader/pipxtreme.pluginspec
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<plugin name="PipXtreme" version="1.0.0" compatVersion="1.0.0">
|
||||||
|
<vendor>The OpenPilot Project</vendor>
|
||||||
|
<copyright>(C) 2011 Cathy Moss A.K.A. Pip</copyright>
|
||||||
|
<license>The GNU Public License (GPL) Version 3</license>
|
||||||
|
<description>A plugin to configure the PipXtreme OP modem via USB HID or Serial Port</description>
|
||||||
|
<url>http://www.openpilot.org</url>
|
||||||
|
<dependencyList>
|
||||||
|
<dependency name="Core" version="1.0.0"/>
|
||||||
|
<dependency name="UAVObjects" version="1.0.0"/>
|
||||||
|
<dependency name="UAVTalk" version="1.0.0"/>
|
||||||
|
<dependency name="RAWHid" version="1.0.0"/>
|
||||||
|
</dependencyList>
|
||||||
|
</plugin>
|
39
ground/src/plugins/uploader/pipxtreme.pro
Normal file
39
ground/src/plugins/uploader/pipxtreme.pro
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
TEMPLATE = lib
|
||||||
|
TARGET = PipXtreme
|
||||||
|
QT += svg
|
||||||
|
include(../../openpilotgcsplugin.pri)
|
||||||
|
include(../../plugins/coreplugin/coreplugin.pri)
|
||||||
|
include(../../plugins/uavobjects/uavobjects.pri)
|
||||||
|
include(../../plugins/uavtalk/uavtalk.pri)
|
||||||
|
include(../../plugins/rawhid/rawhid.pri)
|
||||||
|
INCLUDEPATH += ../../libs/qextserialport/src
|
||||||
|
|
||||||
|
HEADERS += pipxtremegadget.h \
|
||||||
|
pipxtremegadgetconfiguration.h \
|
||||||
|
pipxtremegadgetfactory.h \
|
||||||
|
pipxtremegadgetoptionspage.h \
|
||||||
|
pipxtremegadgetwidget.h \
|
||||||
|
plugin.h \
|
||||||
|
delay.h \
|
||||||
|
devicewidget.h \
|
||||||
|
SSP/port.h \
|
||||||
|
SSP/qssp.h \
|
||||||
|
SSP/qsspt.h \
|
||||||
|
SSP/common.h
|
||||||
|
SOURCES += pipxtremegadget.cpp \
|
||||||
|
pipxtremegadgetconfiguration.cpp \
|
||||||
|
pipxtremegadgetfactory.cpp \
|
||||||
|
pipxtremegadgetoptionspage.cpp \
|
||||||
|
pipxtremegadgetwidget.cpp \
|
||||||
|
pipxtremeplugin.cpp \
|
||||||
|
delay.cpp \
|
||||||
|
SSP/port.cpp \
|
||||||
|
SSP/qssp.cpp \
|
||||||
|
SSP/qsspt.cpp
|
||||||
|
OTHER_FILES += PipXtreme.pluginspec
|
||||||
|
|
||||||
|
FORMS += \
|
||||||
|
pipxtreme.ui
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
pipxtreme.qrc
|
5
ground/src/plugins/uploader/pipxtreme.qrc
Normal file
5
ground/src/plugins/uploader/pipxtreme.qrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/pipxtreme">
|
||||||
|
<file>images/view-refresh.svg</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
722
ground/src/plugins/uploader/pipxtreme.ui
Normal file
722
ground/src/plugins/uploader/pipxtreme.ui
Normal file
@ -0,0 +1,722 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>PipXtremeWidget</class>
|
||||||
|
<widget class="QWidget" name="PipXtremeWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>570</width>
|
||||||
|
<height>381</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="connectButton">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="mouseTracking">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Tells the mainboard to go down
|
||||||
|
to bootloader mode.
|
||||||
|
(Only enabled if telemetry link is established, either
|
||||||
|
through serial or USB)</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string> Connect </string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="telemetryLink">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>When telemetry is not connected, select the communication
|
||||||
|
method using this combo box.
|
||||||
|
|
||||||
|
You can use this to force a communication channel when doing
|
||||||
|
a "Boot" (button on the left). It is updated automatically when
|
||||||
|
halting a running board.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="refreshPorts">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Refresh the list of serial ports</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>8</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Serial Number</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_SerialNumber">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<italic>false</italic>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="acceptDrops">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Paired Serial Number</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_PairedSerialNumber">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frequency Band</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_FrequencyBand">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Min Frequency (MHz)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_MinFrequency">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max Frequency (MHz)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_MaxFrequency">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_12">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frequency Step Size (Hz)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_FrequencyStepSize">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_11">
|
||||||
|
<property name="text">
|
||||||
|
<string>State</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_State">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLineEdit {
|
||||||
|
border: none;
|
||||||
|
border-radius: 1px;
|
||||||
|
padding: 0 8px;
|
||||||
|
background: rgba(0, 0, 0, 16);
|
||||||
|
/* background: transparent; */
|
||||||
|
/* selection-background-color: darkgray;*/
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="3">
|
||||||
|
<widget class="QComboBox" name="comboBox_SerialPortSpeed">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="3">
|
||||||
|
<widget class="QComboBox" name="comboBox_MaxRFTxPower">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<property name="modelColumn">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="3">
|
||||||
|
<widget class="QComboBox" name="comboBox_MaxRFBandwidth">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="3">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_Frequency">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="accelerated">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>8</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>0.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>1000.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.000001000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<widget class="QSpinBox" name="spinBox_FrequencyCalibration">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="accelerated">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>255</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>Serial Port Speed</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="2">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max RF Tx Power</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="2">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max RF Datarate (bits/s)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frequency (MHz)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QLabel" name="label_13">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frequency Calibration</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QLabel" name="label_14">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mode</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QComboBox" name="comboBox_Mode">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>AES Encryption Key</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="lineEdit_AESKey">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The AES encryption key</string>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_AESKeyRandom">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Radomise the AES encryption key</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string> Rand</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_AESEnable">
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>8</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_ScanSpectrum">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Scan whole band</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string> Scan Spectrum </string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_8">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="graphicsView_Spectrum">
|
||||||
|
<property name="backgroundBrush">
|
||||||
|
<brush brushstyle="NoBrush">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</property>
|
||||||
|
<property name="foregroundBrush">
|
||||||
|
<brush brushstyle="NoBrush">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</property>
|
||||||
|
<property name="interactive">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
49
ground/src/plugins/uploader/pipxtremegadget.cpp
Normal file
49
ground/src/plugins/uploader/pipxtremegadget.cpp
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadget.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
#include "pipxtremegadget.h"
|
||||||
|
#include "pipxtremegadgetwidget.h"
|
||||||
|
#include "pipxtremegadgetconfiguration.h"
|
||||||
|
|
||||||
|
PipXtremeGadget::PipXtremeGadget(QString classId, PipXtremeGadgetWidget *widget, QWidget *parent) :
|
||||||
|
IUAVGadget(classId, parent),
|
||||||
|
m_widget(widget)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
PipXtremeGadget::~PipXtremeGadget()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Loads a configuration.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PipXtremeGadget::loadConfiguration(IUAVGadgetConfiguration* config)
|
||||||
|
{
|
||||||
|
Q_UNUSED(config);
|
||||||
|
/* PipXtremeGadgetConfiguration *m = qobject_cast< PipXtremeGadgetConfiguration*>(config);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
55
ground/src/plugins/uploader/pipxtremegadget.h
Normal file
55
ground/src/plugins/uploader/pipxtremegadget.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadget.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
* @brief The YModem protocol serial uploader plugin
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEGADGET_H
|
||||||
|
#define PIPXTREMEGADGET_H
|
||||||
|
|
||||||
|
#include <coreplugin/iuavgadget.h>
|
||||||
|
#include "pipxtremegadgetwidget.h"
|
||||||
|
|
||||||
|
class IUAVGadget;
|
||||||
|
class QWidget;
|
||||||
|
class QString;
|
||||||
|
class PipXtremeGadgetWidget;
|
||||||
|
|
||||||
|
using namespace Core;
|
||||||
|
|
||||||
|
class PipXtremeGadget : public Core::IUAVGadget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
PipXtremeGadget(QString classId, PipXtremeGadgetWidget *widget, QWidget *parent = 0);
|
||||||
|
~PipXtremeGadget();
|
||||||
|
|
||||||
|
QWidget *widget() { return m_widget; }
|
||||||
|
void loadConfiguration(IUAVGadgetConfiguration* config);
|
||||||
|
|
||||||
|
private:
|
||||||
|
PipXtremeGadgetWidget *m_widget;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
105
ground/src/plugins/uploader/pipxtremegadgetconfiguration.cpp
Normal file
105
ground/src/plugins/uploader/pipxtremegadgetconfiguration.cpp
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetconfiguration.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pipxtremegadgetconfiguration.h"
|
||||||
|
#include <qextserialport/src/qextserialport.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a saved configuration or defaults if non exist.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
PipXtremeGadgetConfiguration::PipXtremeGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) :
|
||||||
|
IUAVGadgetConfiguration(classId, parent),
|
||||||
|
m_defaultPort("Unknown"),
|
||||||
|
m_defaultSpeed(BAUD57600),
|
||||||
|
m_defaultDataBits(DATA_8),
|
||||||
|
m_defaultFlow(FLOW_OFF),
|
||||||
|
m_defaultParity(PAR_NONE),
|
||||||
|
m_defaultStopBits(STOP_1),
|
||||||
|
m_defaultTimeOut(5000)
|
||||||
|
|
||||||
|
{
|
||||||
|
//if a saved configuration exists load it
|
||||||
|
if (qSettings != 0)
|
||||||
|
{
|
||||||
|
BaudRateType speed;
|
||||||
|
DataBitsType databits;
|
||||||
|
FlowType flow;
|
||||||
|
ParityType parity;
|
||||||
|
StopBitsType stopbits;
|
||||||
|
|
||||||
|
int ispeed = qSettings->value("defaultSpeed").toInt();
|
||||||
|
int idatabits = qSettings->value("defaultDataBits").toInt();
|
||||||
|
int iflow = qSettings->value("defaultFlow").toInt();
|
||||||
|
int iparity = qSettings->value("defaultParity").toInt();
|
||||||
|
int istopbits = qSettings->value("defaultStopBits").toInt();
|
||||||
|
QString port = qSettings->value("defaultPort").toString();
|
||||||
|
|
||||||
|
databits=(DataBitsType) idatabits;
|
||||||
|
flow=(FlowType)iflow;
|
||||||
|
parity=(ParityType)iparity;
|
||||||
|
stopbits=(StopBitsType)istopbits;
|
||||||
|
speed=(BaudRateType)ispeed;
|
||||||
|
|
||||||
|
m_defaultPort=port;
|
||||||
|
m_defaultSpeed=speed;
|
||||||
|
m_defaultDataBits=databits;
|
||||||
|
m_defaultFlow=flow;
|
||||||
|
m_defaultParity=parity;
|
||||||
|
m_defaultStopBits=stopbits;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clones a configuration.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
IUAVGadgetConfiguration *PipXtremeGadgetConfiguration::clone()
|
||||||
|
{
|
||||||
|
PipXtremeGadgetConfiguration *m = new PipXtremeGadgetConfiguration(this->classId());
|
||||||
|
|
||||||
|
m->m_defaultSpeed = m_defaultSpeed;
|
||||||
|
m->m_defaultDataBits = m_defaultDataBits;
|
||||||
|
m->m_defaultFlow = m_defaultFlow;
|
||||||
|
m->m_defaultParity = m_defaultParity;
|
||||||
|
m->m_defaultStopBits = m_defaultStopBits;
|
||||||
|
m->m_defaultPort = m_defaultPort;
|
||||||
|
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves a configuration.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PipXtremeGadgetConfiguration::saveConfig(QSettings* qSettings) const
|
||||||
|
{
|
||||||
|
qSettings->setValue("defaultSpeed", m_defaultSpeed);
|
||||||
|
qSettings->setValue("defaultDataBits", m_defaultDataBits);
|
||||||
|
qSettings->setValue("defaultFlow", m_defaultFlow);
|
||||||
|
qSettings->setValue("defaultParity", m_defaultParity);
|
||||||
|
qSettings->setValue("defaultStopBits", m_defaultStopBits);
|
||||||
|
qSettings->setValue("defaultPort", m_defaultPort);
|
||||||
|
}
|
72
ground/src/plugins/uploader/pipxtremegadgetconfiguration.h
Normal file
72
ground/src/plugins/uploader/pipxtremegadgetconfiguration.h
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetconfiguration.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
* @brief The YModem protocol serial uploader plugin
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEGADGETCONFIGURATION_H
|
||||||
|
#define PIPXTREMEGADGETCONFIGURATION_H
|
||||||
|
|
||||||
|
#include <coreplugin/iuavgadgetconfiguration.h>
|
||||||
|
#include <qextserialport/src/qextserialport.h>
|
||||||
|
|
||||||
|
using namespace Core;
|
||||||
|
|
||||||
|
class PipXtremeGadgetConfiguration : public IUAVGadgetConfiguration
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit PipXtremeGadgetConfiguration(QString classId, QSettings* qSettings = 0, QObject *parent = 0);
|
||||||
|
|
||||||
|
//set port configuration functions
|
||||||
|
void setSpeed(BaudRateType speed) {m_defaultSpeed=speed;}
|
||||||
|
void setDataBits(DataBitsType databits) {m_defaultDataBits=databits;}
|
||||||
|
void setFlow(FlowType flow) {m_defaultFlow=flow;}
|
||||||
|
void setParity(ParityType parity) {m_defaultParity=parity;}
|
||||||
|
void setStopBits(StopBitsType stopbits) {m_defaultStopBits=stopbits;}
|
||||||
|
void setPort(QString port){m_defaultPort=port;}
|
||||||
|
void setTimeOut(long timeout){m_defaultTimeOut=timeout;}
|
||||||
|
|
||||||
|
//get port configuration functions
|
||||||
|
BaudRateType Speed() {return m_defaultSpeed;}
|
||||||
|
DataBitsType DataBits() {return m_defaultDataBits;}
|
||||||
|
FlowType Flow() {return m_defaultFlow;}
|
||||||
|
ParityType Parity() {return m_defaultParity;}
|
||||||
|
StopBitsType StopBits() {return m_defaultStopBits;}
|
||||||
|
QString Port(){return m_defaultPort;}
|
||||||
|
long TimeOut(){return m_defaultTimeOut;}
|
||||||
|
|
||||||
|
void saveConfig(QSettings* settings) const;
|
||||||
|
IUAVGadgetConfiguration *clone();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_defaultPort;
|
||||||
|
BaudRateType m_defaultSpeed;
|
||||||
|
DataBitsType m_defaultDataBits;
|
||||||
|
FlowType m_defaultFlow;
|
||||||
|
ParityType m_defaultParity;
|
||||||
|
StopBitsType m_defaultStopBits;
|
||||||
|
long m_defaultTimeOut;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
57
ground/src/plugins/uploader/pipxtremegadgetfactory.cpp
Normal file
57
ground/src/plugins/uploader/pipxtremegadgetfactory.cpp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetfactory.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pipxtremegadgetfactory.h"
|
||||||
|
#include "pipxtremegadgetwidget.h"
|
||||||
|
#include "pipxtremegadget.h"
|
||||||
|
#include "pipxtremegadgetconfiguration.h"
|
||||||
|
#include "pipxtremegadgetoptionspage.h"
|
||||||
|
#include <coreplugin/iuavgadget.h>
|
||||||
|
|
||||||
|
PipXtremeGadgetFactory::PipXtremeGadgetFactory(QObject *parent) :
|
||||||
|
IUAVGadgetFactory(QString("PipXtreme"), tr("PipXtreme Gadget"), parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
PipXtremeGadgetFactory::~PipXtremeGadgetFactory()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Core::IUAVGadget* PipXtremeGadgetFactory::createGadget(QWidget *parent)
|
||||||
|
{
|
||||||
|
PipXtremeGadgetWidget* gadgetWidget = new PipXtremeGadgetWidget(parent);
|
||||||
|
return new PipXtremeGadget(QString("PipXtreme"), gadgetWidget, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
IUAVGadgetConfiguration *PipXtremeGadgetFactory::createConfiguration(QSettings* qSettings)
|
||||||
|
{
|
||||||
|
return new PipXtremeGadgetConfiguration(QString("PipXtreme"), qSettings);
|
||||||
|
}
|
||||||
|
|
||||||
|
IOptionsPage *PipXtremeGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config)
|
||||||
|
{
|
||||||
|
return new PipXtremeGadgetOptionsPage(qobject_cast<PipXtremeGadgetConfiguration*>(config));
|
||||||
|
}
|
||||||
|
|
50
ground/src/plugins/uploader/pipxtremegadgetfactory.h
Normal file
50
ground/src/plugins/uploader/pipxtremegadgetfactory.h
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetfactory.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEGADGETFACTORY_H
|
||||||
|
#define PIPXTREMEGADGETFACTORY_H
|
||||||
|
|
||||||
|
#include <coreplugin/iuavgadgetfactory.h>
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
class IUAVGadget;
|
||||||
|
class IUAVGadgetFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace Core;
|
||||||
|
|
||||||
|
class PipXtremeGadgetFactory : public Core::IUAVGadgetFactory
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
PipXtremeGadgetFactory(QObject *parent = 0);
|
||||||
|
~PipXtremeGadgetFactory();
|
||||||
|
|
||||||
|
Core::IUAVGadget *createGadget(QWidget *parent);
|
||||||
|
IUAVGadgetConfiguration *createConfiguration(QSettings* qSettings);
|
||||||
|
IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
69
ground/src/plugins/uploader/pipxtremegadgetoptionspage.cpp
Normal file
69
ground/src/plugins/uploader/pipxtremegadgetoptionspage.cpp
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetoptionspage.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pipxtremegadgetoptionspage.h"
|
||||||
|
#include "pipxtremegadgetconfiguration.h"
|
||||||
|
#include <QtGui/QLabel>
|
||||||
|
#include <QtGui/QSpinBox>
|
||||||
|
#include <QtGui/QDoubleSpinBox>
|
||||||
|
#include <QtGui/QHBoxLayout>
|
||||||
|
#include <QtGui/QVBoxLayout>
|
||||||
|
#include <QtGui/QTextEdit>
|
||||||
|
#include <QtGui/QComboBox>
|
||||||
|
#include <QtAlgorithms>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
|
|
||||||
|
PipXtremeGadgetOptionsPage::PipXtremeGadgetOptionsPage(PipXtremeGadgetConfiguration *config, QObject *parent) :
|
||||||
|
IOptionsPage(parent),
|
||||||
|
m_config(config)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//creates options page widget
|
||||||
|
QWidget *PipXtremeGadgetOptionsPage::createPage(QWidget *parent)
|
||||||
|
{
|
||||||
|
//main widget
|
||||||
|
QWidget *widget = new QWidget;
|
||||||
|
|
||||||
|
return widget;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Called when the user presses apply or OK.
|
||||||
|
*
|
||||||
|
* Saves the current values
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PipXtremeGadgetOptionsPage::apply()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremeGadgetOptionsPage::finish()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
74
ground/src/plugins/uploader/pipxtremegadgetoptionspage.h
Normal file
74
ground/src/plugins/uploader/pipxtremegadgetoptionspage.h
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetoptionspage.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEGADGETOPTIONSPAGE_H
|
||||||
|
#define PIPXTREMEGADGETOPTIONSPAGE_H
|
||||||
|
#include <qextserialport/src/qextserialenumerator.h>
|
||||||
|
#include "coreplugin/dialogs/ioptionspage.h"
|
||||||
|
#include "QString"
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
class IUAVGadgetConfiguration;
|
||||||
|
}
|
||||||
|
class PipXtremeGadgetConfiguration;
|
||||||
|
class QTextEdit;
|
||||||
|
class QComboBox;
|
||||||
|
class QSpinBox;
|
||||||
|
|
||||||
|
using namespace Core;
|
||||||
|
|
||||||
|
class PipXtremeGadgetOptionsPage : public IOptionsPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit PipXtremeGadgetOptionsPage(PipXtremeGadgetConfiguration *config, QObject *parent = 0);
|
||||||
|
|
||||||
|
QWidget *createPage(QWidget *parent);
|
||||||
|
void apply();
|
||||||
|
void finish();
|
||||||
|
|
||||||
|
private:
|
||||||
|
PipXtremeGadgetConfiguration *m_config;
|
||||||
|
QComboBox *m_portCB;
|
||||||
|
QComboBox *m_speedCB;
|
||||||
|
QComboBox *m_databitsCB;
|
||||||
|
QComboBox *m_flowCB;
|
||||||
|
QComboBox *m_parityCB;
|
||||||
|
QComboBox *m_stopbitsCB;
|
||||||
|
QSpinBox *m_timeoutSpin;
|
||||||
|
QStringList BaudRateTypeString;
|
||||||
|
QStringList BaudRateTypeStringALL;
|
||||||
|
QStringList DataBitsTypeStringALL;
|
||||||
|
QStringList ParityTypeStringALL;
|
||||||
|
QStringList StopBitsTypeStringALL;
|
||||||
|
QStringList DataBitsTypeString;
|
||||||
|
QStringList ParityTypeString;
|
||||||
|
QStringList StopBitsTypeString;
|
||||||
|
QStringList FlowTypeString;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
290
ground/src/plugins/uploader/pipxtremegadgetwidget.cpp
Normal file
290
ground/src/plugins/uploader/pipxtremegadgetwidget.cpp
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetwidget.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
#include "pipxtremegadgetwidget.h"
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
PipXtremeGadgetWidget::PipXtremeGadgetWidget(QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
m_config = new Ui_PipXtremeWidget();
|
||||||
|
m_config->setupUi(this);
|
||||||
|
|
||||||
|
currentStep = IAP_STATE_READY;
|
||||||
|
rescueStep = RESCUE_STEP0;
|
||||||
|
resetOnly = false;
|
||||||
|
|
||||||
|
m_config->comboBox_Mode->clear();
|
||||||
|
m_config->comboBox_Mode->addItem("Normal", 0);
|
||||||
|
m_config->comboBox_Mode->addItem("Scan Spectrum", 1);
|
||||||
|
m_config->comboBox_Mode->addItem("Tx Carrier Calibrate", 2);
|
||||||
|
m_config->comboBox_Mode->addItem("Tx Spectrum Test", 3);
|
||||||
|
|
||||||
|
m_config->comboBox_SerialPortSpeed->clear();
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("1200", 1200);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("2400", 2400);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("4800", 4800);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("9600", 9600);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("19200", 19200);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("38400", 38400);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("57600", 57600);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("115200", 115200);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("230400", 230400);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("460800", 460800);
|
||||||
|
m_config->comboBox_SerialPortSpeed->addItem("921600", 921600);
|
||||||
|
|
||||||
|
m_config->doubleSpinBox_Frequency->setSingleStep(0.00015625);
|
||||||
|
|
||||||
|
m_config->graphicsView_Spectrum->setScene(new QGraphicsScene(this));
|
||||||
|
QGraphicsScene *spec_scene = m_config->graphicsView_Spectrum->scene();
|
||||||
|
if (spec_scene)
|
||||||
|
{
|
||||||
|
spec_scene->setBackgroundBrush(Qt::black);
|
||||||
|
spec_scene->clear();
|
||||||
|
// spec_scene->addItem(m_background);
|
||||||
|
// spec_scene->addItem(m_joystickEnd);
|
||||||
|
// spec_scene->setSceneRect(m_background->boundingRect());
|
||||||
|
}
|
||||||
|
|
||||||
|
m_config->pushButton_ScanSpectrum->setEnabled(false);
|
||||||
|
|
||||||
|
// Listen to autopilot connection events
|
||||||
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
|
TelemetryManager *telMngr = pm->getObject<TelemetryManager>();
|
||||||
|
connect(telMngr, SIGNAL(connected()), this, SLOT(onModemConnect()));
|
||||||
|
connect(telMngr, SIGNAL(disconnected()), this, SLOT(onModemDisconnect()));
|
||||||
|
|
||||||
|
// Note: remove listening to the connection manager, it overlaps with
|
||||||
|
// listening to the telemetry manager, we should only listen to one, not both.
|
||||||
|
|
||||||
|
// Also listen to disconnect actions from the user:
|
||||||
|
// Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager();
|
||||||
|
// connect(cm, SIGNAL(deviceDisconnected()), this, SLOT(onModemDisconnect()));
|
||||||
|
|
||||||
|
connect(m_config->connectButton, SIGNAL(clicked()), this, SLOT(goToAPIMode()));
|
||||||
|
|
||||||
|
getSerialPorts();
|
||||||
|
|
||||||
|
QIcon rbi;
|
||||||
|
rbi.addFile(QString(":pipxtreme/images/view-refresh.svg"));
|
||||||
|
m_config->refreshPorts->setIcon(rbi);
|
||||||
|
|
||||||
|
connect(m_config->refreshPorts, SIGNAL(clicked()), this, SLOT(getSerialPorts()));
|
||||||
|
|
||||||
|
// delay::msleep(600); // just for pips reference
|
||||||
|
}
|
||||||
|
|
||||||
|
// destructor
|
||||||
|
PipXtremeGadgetWidget::~PipXtremeGadgetWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremeGadgetWidget::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
if (m_config)
|
||||||
|
{
|
||||||
|
if (m_config->graphicsView_Spectrum)
|
||||||
|
{
|
||||||
|
QGraphicsScene *spec_scene = m_config->graphicsView_Spectrum->scene();
|
||||||
|
if (spec_scene)
|
||||||
|
{
|
||||||
|
// spec_scene->setSceneRect(QRect(QPoint(0, 0), event->size()));
|
||||||
|
// spec_scene->setBackgroundBrush(Qt::black);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PipXtremeGadgetWidget::resizeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool sortPorts(const QextPortInfo &s1,const QextPortInfo &s2)
|
||||||
|
{
|
||||||
|
return (s1.portName < s2.portName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the list of serial ports
|
||||||
|
void PipXtremeGadgetWidget::getSerialPorts()
|
||||||
|
{
|
||||||
|
QStringList list;
|
||||||
|
|
||||||
|
m_config->refreshPorts->setEnabled(false);
|
||||||
|
m_config->telemetryLink->setEnabled(false);
|
||||||
|
|
||||||
|
// Populate the telemetry combo box:
|
||||||
|
m_config->telemetryLink->clear();
|
||||||
|
|
||||||
|
// list.append(QString("USB"));
|
||||||
|
|
||||||
|
QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
|
||||||
|
|
||||||
|
// sort the list by port number (nice idea from PT_Dreamer :))
|
||||||
|
qSort(ports.begin(), ports.end(),sortPorts);
|
||||||
|
foreach (QextPortInfo port, ports)
|
||||||
|
{
|
||||||
|
list.append(port.friendName);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_config->telemetryLink->addItems(list);
|
||||||
|
|
||||||
|
m_config->refreshPorts->setEnabled(true);
|
||||||
|
m_config->telemetryLink->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString PipXtremeGadgetWidget::getPortDevice(const QString &friendName)
|
||||||
|
{
|
||||||
|
QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
|
||||||
|
|
||||||
|
foreach (QextPortInfo port, ports)
|
||||||
|
{
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
if (port.friendName == friendName)
|
||||||
|
return port.portName;
|
||||||
|
#else
|
||||||
|
if (port.friendName == friendName)
|
||||||
|
return port.physName;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremeGadgetWidget::onModemConnect()
|
||||||
|
{
|
||||||
|
m_config->connectButton->setText(tr(" Disconnect "));
|
||||||
|
m_config->telemetryLink->setEnabled(false);
|
||||||
|
m_config->pushButton_ScanSpectrum->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremeGadgetWidget::onModemDisconnect()
|
||||||
|
{
|
||||||
|
m_config->connectButton->setText(tr(" Connect "));
|
||||||
|
m_config->telemetryLink->setEnabled(true);
|
||||||
|
m_config->pushButton_ScanSpectrum->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ask the modem to go into API mode
|
||||||
|
void PipXtremeGadgetWidget::goToAPIMode(UAVObject* callerObj, bool success)
|
||||||
|
{
|
||||||
|
Q_UNUSED(callerObj);
|
||||||
|
/*
|
||||||
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
|
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
||||||
|
UAVObject *fwIAP = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("FirmwareIAPObj")));
|
||||||
|
|
||||||
|
switch (currentStep)
|
||||||
|
{
|
||||||
|
case IAP_STATE_READY:
|
||||||
|
getSerialPorts(); // Useful in case a new serial port appeared since the initial list,
|
||||||
|
// otherwise we won't find it when we stop the board.
|
||||||
|
|
||||||
|
// The board is running, send the 1st IAP Reset order:
|
||||||
|
fwIAP->getField("Command")->setValue("1122");
|
||||||
|
connect(fwIAP,SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(goToAPIMode(UAVObject*, bool)));
|
||||||
|
currentStep = IAP_STATE_STEP_1;
|
||||||
|
fwIAP->updated();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IAP_STATE_STEP_1:
|
||||||
|
if (!success)
|
||||||
|
{
|
||||||
|
currentStep = IAP_STATE_READY;
|
||||||
|
disconnect(fwIAP, SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(goToAPIMode(UAVObject*, bool)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
delay::msleep(600);
|
||||||
|
|
||||||
|
fwIAP->getField("Command")->setValue("2233");
|
||||||
|
currentStep = IAP_STATE_READY;
|
||||||
|
fwIAP->updated();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tell the modem to reset
|
||||||
|
void PipXtremeGadgetWidget::systemReset()
|
||||||
|
{
|
||||||
|
resetOnly = true;
|
||||||
|
/*
|
||||||
|
if (dfu)
|
||||||
|
{
|
||||||
|
delete dfu;
|
||||||
|
dfu = NULL;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
goToAPIMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tells the system to boot (from Bootloader state)
|
||||||
|
void PipXtremeGadgetWidget::systemBoot()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
// Suspend telemety & polling in case it is not done yet
|
||||||
|
Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager();
|
||||||
|
cm->disconnectDevice();
|
||||||
|
cm->suspendPolling();
|
||||||
|
|
||||||
|
QString devName = m_config->telemetryLink->currentText();
|
||||||
|
repaint();
|
||||||
|
|
||||||
|
if (!dfu)
|
||||||
|
{
|
||||||
|
if (devName == "USB")
|
||||||
|
dfu = new DFUObject(DFU_DEBUG, false, QString());
|
||||||
|
else
|
||||||
|
dfu = new DFUObject(DFU_DEBUG,true,getPortDevice(devName));
|
||||||
|
}
|
||||||
|
dfu->AbortOperation();
|
||||||
|
if (!dfu->enterDFU(0))
|
||||||
|
{
|
||||||
|
delete dfu;
|
||||||
|
dfu = NULL;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dfu->JumpToApp();
|
||||||
|
// Restart the polling thread
|
||||||
|
cm->resumePolling();
|
||||||
|
|
||||||
|
m_config->telemetryLink->setEnabled(true);
|
||||||
|
if (currentStep == IAP_STATE_BOOTLOADER )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
currentStep = IAP_STATE_READY;
|
||||||
|
delete dfu; // Frees up the USB/Serial port too
|
||||||
|
dfu = NULL;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shows a message box with an error string.
|
||||||
|
void PipXtremeGadgetWidget::error(QString errorString, int errorNumber)
|
||||||
|
{
|
||||||
|
Q_UNUSED(errorNumber);
|
||||||
|
QMessageBox msgBox;
|
||||||
|
msgBox.setIcon(QMessageBox::Critical);
|
||||||
|
msgBox.setText(errorString + " [" + QString::number(errorNumber) + "]");
|
||||||
|
msgBox.exec();
|
||||||
|
}
|
86
ground/src/plugins/uploader/pipxtremegadgetwidget.h
Normal file
86
ground/src/plugins/uploader/pipxtremegadgetwidget.h
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremegadgetwidget.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEGADGETWIDGET_H
|
||||||
|
#define PIPXTREMEGADGETWIDGET_H
|
||||||
|
|
||||||
|
#include "ui_pipxtreme.h"
|
||||||
|
#include "delay.h"
|
||||||
|
//#include "op_dfu.h"
|
||||||
|
|
||||||
|
#include <qextserialport.h>
|
||||||
|
#include <qextserialenumerator.h>
|
||||||
|
|
||||||
|
#include "uavtalk/telemetrymanager.h"
|
||||||
|
#include "extensionsystem/pluginmanager.h"
|
||||||
|
#include "uavobjects/uavobjectmanager.h"
|
||||||
|
#include "uavobjects/uavobject.h"
|
||||||
|
#include "rawhid/rawhidplugin.h"
|
||||||
|
|
||||||
|
#include <QtGui/QWidget>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QThread>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
//using namespace OP_DFU;
|
||||||
|
|
||||||
|
class PipXtremeGadgetWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
PipXtremeGadgetWidget(QWidget *parent = 0);
|
||||||
|
~PipXtremeGadgetWidget();
|
||||||
|
|
||||||
|
typedef enum { IAP_STATE_READY, IAP_STATE_STEP_1} IAPStep;
|
||||||
|
typedef enum { RESCUE_STEP0, RESCUE_STEP1, RESCUE_STEP2, RESCUE_STEP3, RESCUE_POWER1, RESCUE_POWER2, RESCUE_DETECT } RescueStep;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void onModemConnect();
|
||||||
|
void onModemDisconnect();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void resizeEvent(QResizeEvent *event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui_PipXtremeWidget *m_config;
|
||||||
|
// DFUObject *dfu;
|
||||||
|
IAPStep currentStep;
|
||||||
|
RescueStep rescueStep;
|
||||||
|
bool resetOnly;
|
||||||
|
|
||||||
|
QString getPortDevice(const QString &friendName);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void error(QString errorString,int errorNumber);
|
||||||
|
void goToAPIMode(UAVObject* = NULL, bool = false);
|
||||||
|
void systemReset();
|
||||||
|
void systemBoot();
|
||||||
|
void getSerialPorts();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
61
ground/src/plugins/uploader/pipxtremeplugin.cpp
Normal file
61
ground/src/plugins/uploader/pipxtremeplugin.cpp
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremeplugin.cpp
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
#include "pipxtremeplugin.h"
|
||||||
|
#include "pipxtremegadgetfactory.h"
|
||||||
|
#include <QtPlugin>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
|
||||||
|
PipXtremePlugin::PipXtremePlugin()
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
PipXtremePlugin::~PipXtremePlugin()
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PipXtremePlugin::initialize(const QStringList& args, QString *errMsg)
|
||||||
|
{
|
||||||
|
Q_UNUSED(args);
|
||||||
|
Q_UNUSED(errMsg);
|
||||||
|
mf = new PipXtremeGadgetFactory(this);
|
||||||
|
addAutoReleasedObject(mf);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremePlugin::extensionsInitialized()
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
void PipXtremePlugin::shutdown()
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
Q_EXPORT_PLUGIN(PipXtremePlugin)
|
||||||
|
|
45
ground/src/plugins/uploader/pipxtremeplugin.h
Normal file
45
ground/src/plugins/uploader/pipxtremeplugin.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
*
|
||||||
|
* @file pipxtremeplugin.h
|
||||||
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||||
|
* @addtogroup GCSPlugins GCS Plugins
|
||||||
|
* @{
|
||||||
|
* @{
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PIPXTREMEPLUGIN_H
|
||||||
|
#define PIPXTREMEPLUGIN_H
|
||||||
|
|
||||||
|
#include <extensionsystem/iplugin.h>
|
||||||
|
|
||||||
|
class PipXtremeGadgetFactory;
|
||||||
|
|
||||||
|
class PipXtremePlugin : public ExtensionSystem::IPlugin
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PipXtremePlugin();
|
||||||
|
~PipXtremePlugin();
|
||||||
|
|
||||||
|
void extensionsInitialized();
|
||||||
|
bool initialize(const QStringList & arguments, QString * errorString);
|
||||||
|
void shutdown();
|
||||||
|
private:
|
||||||
|
PipXtremeGadgetFactory *mf;
|
||||||
|
};
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user