summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Fedosyeyev <nick.ut2uz@gmail.com>2016-06-30 17:00:30 +0300
committerNick Fedosyeyev <nick.ut2uz@gmail.com>2016-06-30 17:00:30 +0300
commit1dac45a5419509a0c7e2e750b53a4a9c05caba33 (patch)
treebb95d47d589a8c7a5e2c1b9f3fcb04c20c4fff19
parentd6753bab4b5c8532dfb866cb6af08f512cc2faf2 (diff)
parent22e5a784aa8ce6fe462981dc91eeee03f20706d5 (diff)
Added Sync and Cancel buttons are added to sllewDilaog. StellariumScope support is added.scope-uz
-rw-r--r--plugins/TelescopeControl/src/gui/SlewDialog.cpp87
-rw-r--r--plugins/TelescopeControl/src/gui/SlewDialog.hpp4
-rw-r--r--plugins/TelescopeControl/src/gui/slewDialog.ui88
-rw-r--r--plugins/TelescopeControl/src/servers/Lx200Command.cpp2
4 files changed, 152 insertions, 29 deletions
diff --git a/plugins/TelescopeControl/src/gui/SlewDialog.cpp b/plugins/TelescopeControl/src/gui/SlewDialog.cpp
index abe2cc6390..f68846f63c 100644
--- a/plugins/TelescopeControl/src/gui/SlewDialog.cpp
+++ b/plugins/TelescopeControl/src/gui/SlewDialog.cpp
@@ -18,6 +18,9 @@
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
*/
+// with changes regarding sync/cancel support
+// made by Nick Fedosyeyev (nick-ut2uz) nick.ut2uz@gmail.com
+
#include "Dialog.hpp"
#include "AngleSpinBox.hpp"
#include "StelApp.hpp"
@@ -50,6 +53,7 @@ SlewDialog::~SlewDialog()
storedPointsDialog = NULL;
}
+
void SlewDialog::retranslate()
{
if (dialog)
@@ -70,7 +74,9 @@ void SlewDialog::createDialogContent()
connect(ui->radioButtonDecimal, SIGNAL(toggled(bool)), this, SLOT(setFormatDecimal(bool)));
connect(ui->pushButtonSlew, SIGNAL(clicked()), this, SLOT(slew()));
- connect(ui->pushButtonConfigure, SIGNAL(clicked()), this, SLOT(showConfiguration()));
+ connect(ui->pushButtonSync, SIGNAL(clicked()), this, SLOT(sync()));
+ connect(ui->pushButtonCancelSlew, SIGNAL(clicked()), this, SLOT(cancelSlew()));
+ connect(ui->pushButtonConfigure, SIGNAL(clicked()), this, SLOT(showConfiguration()));
connect(telescopeManager, SIGNAL(clientConnected(int, QString)), this, SLOT(addTelescope(int, QString)));
connect(telescopeManager, SIGNAL(clientDisconnected(int)), this, SLOT(removeTelescope(int)));
@@ -81,6 +87,9 @@ void SlewDialog::createDialogContent()
connect(ui->pushButtonCurrent, SIGNAL(clicked()), this, SLOT(getCurrentObjectInfo()));
connect(ui->pushButtonCenter, SIGNAL(clicked()), this, SLOT(getCenterInfo()));
+ connect(GETSTELMODULE(StelObjectMgr), SIGNAL(selectedObjectChanged(StelModule::StelModuleSelectAction)), this, SLOT(getCurrentObjectInfo()));
+
+
//Coordinates are in HMS by default:
ui->radioButtonHMS->setChecked(true);
@@ -144,9 +153,10 @@ void SlewDialog::updateTelescopeList()
QHash<int, QString> connectedSlotsByNumber = telescopeManager->getConnectedClientsNames();
foreach(const int slot, connectedSlotsByNumber.keys())
{
- QString telescopeName = connectedSlotsByNumber.value(slot);
- connectedSlotsByName.insert(telescopeName, slot);
- ui->comboBoxTelescope->addItem(telescopeName);
+ QString telescopeName = connectedSlotsByNumber.value(slot);
+ //connectedSlotsByName.insert(telescopeName, slot);
+ //ui->comboBoxTelescope->addItem(telescopeName);
+ addTelescope(slot, telescopeName);
}
updateTelescopeControls();
@@ -167,7 +177,22 @@ void SlewDialog::addTelescope(int slot, QString name)
return;
connectedSlotsByName.insert(name, slot);
- ui->comboBoxTelescope->addItem(name);
+
+ bool insert = true;
+ if (name.compare("Sync")==0)
+ {
+ ui->pushButtonSync->setEnabled(true);
+ insert = false;
+ }
+ if (name.compare("Cancel")==0)
+ {
+ ui->pushButtonCancelSlew->setEnabled(true);
+ insert = false;
+ }
+
+ if (insert)
+ ui->comboBoxTelescope->addItem(name);
+
updateTelescopeControls();
}
@@ -198,23 +223,51 @@ void SlewDialog::removeTelescope(int slot)
updateTelescopeControls();
}
+void SlewDialog::slew(int slot)
+{
+ double radiansRA = ui->spinBoxRA->valueRadians();
+ double radiansDec = ui->spinBoxDec->valueRadians();
+
+ Vec3d targetPosition;
+ StelUtils::spheToRect(radiansRA, radiansDec, targetPosition);
+
+ telescopeManager->telescopeGoto(slot, targetPosition);
+}
+
+
void SlewDialog::slew()
{
- double radiansRA = ui->spinBoxRA->valueRadians();
- double radiansDec = ui->spinBoxDec->valueRadians();
int slot = connectedSlotsByName.value(ui->comboBoxTelescope->currentText());
+ slew(slot);
- Vec3d targetPosition;
- StelUtils::spheToRect(radiansRA, radiansDec, targetPosition);
+}
- telescopeManager->telescopeGoto(slot, targetPosition);
+void SlewDialog::sync()
+{
+ int slot = connectedSlotsByName.value("Sync");
+ slew(slot);
+}
+
+void SlewDialog::cancelSlew()
+{
+ int slot = connectedSlotsByName.value("Cancel");
+ slew(slot);
}
void SlewDialog::getCurrentObjectInfo()
{
const QList<StelObjectP>& selected = GETSTELMODULE(StelObjectMgr)->getSelectedObject();
if (!selected.isEmpty()) {
- double dec_j2000 = 0;
+
+ if (ui->comboBoxStoredPoints->count()==0)
+ ui->comboBoxStoredPoints->addItem(selected[0]->getEnglishName());
+ else
+ ui->comboBoxStoredPoints->setCurrentIndex(0);
+
+ ui->comboBoxStoredPoints->setItemText(0,selected[0]->getEnglishName());
+
+
+ double dec_j2000 = 0;
double ra_j2000 = 0;
StelUtils::rectToSphe(&ra_j2000,&dec_j2000,selected[0]->getJ2000EquatorialPos(StelApp::getInstance().getCore()));
ui->spinBoxRA->setRadians(ra_j2000);
@@ -224,7 +277,16 @@ void SlewDialog::getCurrentObjectInfo()
void SlewDialog::getCenterInfo()
{
- StelCore *core = StelApp::getInstance().getCore();
+ QString txt = ui->pushButtonCenter->text();
+ if (ui->comboBoxStoredPoints->count()==0)
+ ui->comboBoxStoredPoints->addItem(txt);
+ else
+ ui->comboBoxStoredPoints->setCurrentIndex(0);
+
+ ui->comboBoxStoredPoints->setItemText(0,txt);
+
+
+ StelCore *core = StelApp::getInstance().getCore();
const StelProjectorP projector = core->getProjection(StelCore::FrameEquinoxEqu);
Vec3d centerPosition;
Vec2f center = projector->getViewportCenter();
@@ -300,6 +362,7 @@ void SlewDialog::getStoredPointInfo()
ui->spinBoxRA->setRadians(sp.radiansRA);
ui->spinBoxDec->setRadians(sp.radiansDec);
+
}
void SlewDialog::savePointsToFile()
diff --git a/plugins/TelescopeControl/src/gui/SlewDialog.hpp b/plugins/TelescopeControl/src/gui/SlewDialog.hpp
index 204701401b..462f60f369 100644
--- a/plugins/TelescopeControl/src/gui/SlewDialog.hpp
+++ b/plugins/TelescopeControl/src/gui/SlewDialog.hpp
@@ -57,6 +57,8 @@ private slots:
//! reads the fields and slews a telescope
void slew();
+ void sync();
+ void cancelSlew();
void addTelescope(int slot, QString name);
void removeTelescope(int slot);
@@ -103,6 +105,8 @@ private:
void savePointsToFile();
void loadPointsFromFile();
+
+ void slew(int slot);
};
#endif // _SLEWDIALOG_
diff --git a/plugins/TelescopeControl/src/gui/slewDialog.ui b/plugins/TelescopeControl/src/gui/slewDialog.ui
index 514d5dc895..5f85c8e082 100644
--- a/plugins/TelescopeControl/src/gui/slewDialog.ui
+++ b/plugins/TelescopeControl/src/gui/slewDialog.ui
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>400</width>
+ <width>430</width>
<height>399</height>
</rect>
</property>
@@ -385,20 +385,77 @@
</widget>
</item>
<item>
- <widget class="QPushButton" name="pushButtonSlew">
- <property name="minimumSize">
- <size>
- <width>50</width>
- <height>48</height>
- </size>
- </property>
- <property name="text">
- <string>&amp;Slew</string>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- </widget>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QPushButton" name="pushButtonSlew">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>48</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&amp;Slew</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonSync">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>48</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Sync</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonCancelSlew">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>48</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
</layout>
</widget>
@@ -452,7 +509,6 @@ margin-bottom:10px;</string>
<tabstop>radioButtonDMS</tabstop>
<tabstop>radioButtonDecimal</tabstop>
<tabstop>comboBoxTelescope</tabstop>
- <tabstop>pushButtonSlew</tabstop>
<tabstop>pushButtonConfigure</tabstop>
</tabstops>
<resources/>
diff --git a/plugins/TelescopeControl/src/servers/Lx200Command.cpp b/plugins/TelescopeControl/src/servers/Lx200Command.cpp
index a872679b32..2da1053f97 100644
--- a/plugins/TelescopeControl/src/servers/Lx200Command.cpp
+++ b/plugins/TelescopeControl/src/servers/Lx200Command.cpp
@@ -174,7 +174,7 @@ bool Lx200CommandSetSelectedDec::writeCommandToBuffer(char *&p, char *end)
p[-3] = ':';
p[-4] = '0' + (x % 10); x /= 10;
p[-5] = '0' + (x % 6); x /= 6;
- p[-6] = 223; // degree symbol
+ p[-6] = '\xDF'; // = 223, degree symbol
p[-7] = '0' + (x % 10); x /= 10;
p[-8] = '0' + x;
*p++ = '#';