Kstars

mount.h
1/*
2 SPDX-FileCopyrightText: 2015 Jasem Mutlaq <mutlaqja@ikarustech.com>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#ifndef MOUNT_H
8#define MOUNT_H
9
10#include <QQmlContext>
11#include "ui_mount.h"
12
13#include "indi/indistd.h"
14#include "indi/indifocuser.h"
15#include "indi/indimount.h"
16
17class QQuickView;
18class QQuickItem;
19
20namespace Ekos
21{
22/**
23 *@class Mount
24 *@short Supports controlling INDI telescope devices including setting/retrieving mount properties, slewing, motion and speed controls, in addition to enforcing altitude limits and parking/unparking.
25 *@author Jasem Mutlaq
26 *@version 1.5
27 */
28
29class OpticalTrainManager;
30class MeridianFlipState;
31
32class Mount : public QWidget, public Ui::Mount
33{
35 Q_CLASSINFO("D-Bus Interface", "org.kde.kstars.Ekos.Mount")
36 Q_PROPERTY(QString opticalTrain READ opticalTrain WRITE setOpticalTrain)
37 Q_PROPERTY(ISD::Mount::Status status READ status NOTIFY newStatus)
38 Q_PROPERTY(ISD::ParkStatus parkStatus READ parkStatus NOTIFY newParkStatus)
39 Q_PROPERTY(QStringList logText READ logText NOTIFY newLog)
40 Q_PROPERTY(QList<double> altitudeLimits READ altitudeLimits WRITE setAltitudeLimits)
41 Q_PROPERTY(bool altitudeLimitsEnabled READ altitudeLimitsEnabled WRITE setAltitudeLimitsEnabled)
42 Q_PROPERTY(double hourAngleLimit READ hourAngleLimit WRITE setHourAngleLimit)
43 Q_PROPERTY(bool hourAngleLimitEnabled READ hourAngleLimitEnabled WRITE setHourAngleLimitEnabled)
44 Q_PROPERTY(bool autoParkEnabled READ autoParkEnabled WRITE setAutoParkEnabled)
45 Q_PROPERTY(QList<double> equatorialCoords READ equatorialCoords)
46 Q_PROPERTY(QList<double> horizontalCoords READ horizontalCoords)
48 Q_PROPERTY(int slewRate READ slewRate WRITE setSlewRate)
49 Q_PROPERTY(int slewStatus READ slewStatus)
50 Q_PROPERTY(bool canPark READ canPark)
51 Q_PROPERTY(ISD::Mount::PierSide pierSide READ pierSide NOTIFY pierSideChanged)
52 Q_PROPERTY(QStringList timeSources READ timeSources)
53 Q_PROPERTY(QStringList locationSources READ locationSources)
54
55 public:
56 Mount();
57 ~Mount() override;
58
59 //typedef enum { PARKING_IDLE, PARKING_OK, UNPARKING_OK, PARKING_BUSY, UNPARKING_BUSY, PARKING_ERROR } ParkingStatus;
60
61 /**
62 * @brief addMount Add a new Mount device
63 * @param device pointer to mount device
64 * @return True if added successfully, false if duplicate or failed to add.
65 */
66 bool setMount(ISD::Mount *device);
67
68 /**
69 * @brief addTimeSource Add an INDI driver that can be used for a master time source
70 * @param device INDI driver containing a TIME_UTC property
71 * @return true if adding is successful, false otherwise.
72 */
73 bool addTimeSource(const QSharedPointer<ISD::GenericDevice> &device);
74
75 /**
76 * @brief addLocationSource Add an INDI driver that can be used for a master location source
77 * @param device INDI driver containing a GEOGRAPHIC_COORD property
78 * @return true if adding is successful, false otherwise.
79 */
80 bool addLocationSource(const QSharedPointer<ISD::GenericDevice> &device);
81
82 void removeDevice(const QSharedPointer<ISD::GenericDevice> &device);
83
84 void setupOpticalTrainManager();
85 void refreshOpticalTrain();
86 QString opticalTrain() const
87 {
88 return opticalTrainCombo->currentText();
89 }
90 void setOpticalTrain(const QString &value)
91 {
92 opticalTrainCombo->setCurrentText(value);
93 }
94
95 // Log functions
96 void appendLogText(const QString &);
97 void clearLog();
98 QStringList logText()
99 {
100 return m_LogText;
101 }
102 QString getLogText() const
103 {
104 return m_LogText.join("\n");
105 }
106
107 ISD::Mount::Status status() const
108 {
109 return m_Status;
110 }
111 ISD::Mount *activeMount() const
112 {
113 return m_Mount;
114 }
115 QString statusString(bool translated = true) const
116 {
117 if (m_Mount)
118 return m_Mount->statusString(m_Status, translated);
119 else
120 return "NA";
121 }
122 ISD::Mount::PierSide pierSide() const
123 {
124 if (m_Mount)
125 return m_Mount->pierSide();
126 else
127 return ISD::Mount::PIER_UNKNOWN;
128 }
129 ISD::ParkStatus parkStatus() const
130 {
131 return m_ParkStatus;
132 }
133
134 /**
135 * @brief getMeridianFlipState
136 * @return
137 */
139 {
140 return mf_state;
141 }
142
143 /** @defgroup MountDBusInterface Ekos Mount DBus Interface
144 * Mount interface provides advanced scripting capabilities to control INDI mounts.
145 */
146
147 /*@{*/
148
149 /** DBUS interface function.
150 * Returns the mount altitude limits.
151 * @return Returns array of doubles. First item is minimum altitude in degrees. Second item is maximum altitude limit in degrees.
152 */
154
155 /** DBUS interface function.
156 * Sets the mount altitude limits, and whether they are enabled or disabled.
157 * @param limits is a list of double values. 2 values are expected: minAltitude & maxAltitude
158 */
160
161 /** DBUS interface function.
162 * Enable or disable mount altitude limits.
163 */
164 Q_SCRIPTABLE void setAltitudeLimitsEnabled(bool enable);
165
166 /** DBUS interface function.
167 * Returns whether the mount limits are enabled or disabled.
168 * @return True if enabled, false otherwise.
169 */
171
172 /** DBUS interface function.
173 * Returns the mount hour angle limit.
174 * @return Returns hour angle limit in hours.
175 */
177
178 /** DBUS interface function.
179 * Sets the mount altitude limits, and whether they are enabled or disabled.
180 * @param limits is a list of double values. 2 values are expected: minAltitude & maxAltitude
181 */
182 Q_SCRIPTABLE Q_NOREPLY void setHourAngleLimit(double limit);
183
184 /** DBUS interface function.
185 * Enable or disable mount hour angle limit. Mount cannot slew and/or track past this
186 * hour angle distance.
187 */
188 Q_SCRIPTABLE void setHourAngleLimitEnabled(bool enable);
189
190 /** DBUS interface function.
191 * Returns whether the mount limits are enabled or disabled.
192 * @return True if enabled, false otherwise.
193 */
195
196 /**
197 * @brief autoParkEnabled Check if auto-park is enabled.
198 * @return True if enabled.
199 */
201
202 /**
203 * @brief setAutoParkEnabled Toggle Auto Park
204 * @param enable True to start, false to stop
205 */
206 Q_SCRIPTABLE void setAutoParkEnabled(bool enable);
207
208 /**
209 * @brief setAutoParkDailyEnabled toggles everyday Auto Park
210 * @param enable true to activate, false to deactivate
211 */
213
214 /**
215 * @brief setAutoParkStartup Set time when automatic parking is activated.
216 * @param startup Startup time. should not be more than 12 hours away.
217 */
219
220 Q_SCRIPTABLE bool meridianFlipEnabled();
221 Q_SCRIPTABLE double meridianFlipValue();
222
223 /** DBUS interface function.
224 * Slew the mount to the RA/DEC (JNow).
225 * @param RA Right ascention is hours.
226 * @param DEC Declination in degrees.
227 * @return true if the command is sent successfully, false otherwise.
228 */
229 Q_INVOKABLE Q_SCRIPTABLE bool slew(double RA, double DEC);
230
231 /**
232 @brief Like above but RA and DEC are strings HH:MM:SS and DD:MM:SS
233 */
234 Q_INVOKABLE bool slew(const QString &RA, const QString &DEC);
235
236 /** DBUS interface function.
237 * Slew the mount to the target. Target name must be valid in KStars.
238 * @param target name
239 * @return true if the command is sent successfully, false otherwise.
240 */
241 Q_INVOKABLE Q_SCRIPTABLE bool gotoTarget(const QString &target);
242
243 /** DBUS interface function.
244 * Sync the mount to the RA/DEC (JNow).
245 * @param RA Right ascention is hours.
246 * @param DEC Declination in degrees.
247 * @return true if the command is sent successfully, false otherwise.
248 */
249 Q_INVOKABLE Q_SCRIPTABLE bool sync(double RA, double DEC);
250
251 /** DBUS interface function.
252 * Sync the mount to the target. Target name must be valid in KStars.
253 * @param target name
254 * @return true if the command is sent successfully, false otherwise.
255 */
256 Q_INVOKABLE Q_SCRIPTABLE bool syncTarget(const QString &target);
257
258 /**
259 @brief Like above but RA and DEC are strings HH:MM:SS and DD:MM:SS
260 */
261 Q_INVOKABLE bool sync(const QString &RA, const QString &DEC);
262
263 /** DBUS interface function.
264 * Get equatorial coords (JNow). An array of doubles is returned. First element is RA in hours. Second elements is DEC in degrees.
265 */
267
268 /** DBUS interface function.
269 * Get Horizontal coords. An array of doubles is returned. First element is Azimuth in degrees. Second elements is Altitude in degrees.
270 */
272
273 /** DBUS interface function.
274 * Get Horizontal coords.
275 */
277
278 /** DBUS interface function.
279 * Get mount hour angle in hours (-12 to +12).
280 */
282
283 /** DBUS interface function.
284 * Get the hour angle of that time the mount has slewed to the current position.
285 * This is used to manage the meridian flip for mounts which do not report pier side.
286 * only one attempt to flip is done.
287 */
288 Q_SCRIPTABLE double initialHA();
289
290 /** DBUS interface function.
291 * Aborts the mount motion
292 * @return true if the command is sent successfully, false otherwise.
293 */
295
296 /** DBUS interface function.
297 * Get the mount slew status ("Idle","Complete", "Busy", "Error")
298 */
300
301
302 /** DBUS interface function.
303 * Get the mount slew rate index 0 to N-1, or -1 if slew rates are not supported.
304 */
306
307 Q_INVOKABLE Q_SCRIPTABLE bool setSlewRate(int index);
308
309 /** DBUS interface function.
310 * Reset mount model if supported by the mount.
311 * @return true if the command is executed successfully, false otherwise.
312 */
314
315 /** DBUS interface function.
316 * Can mount park?
317 */
319
320 /** DBUS interface function.
321 * Park mount
322 */
324
325 /** DBUS interface function.
326 * Unpark mount
327 */
329
330 /** DBUS interface function.
331 * Return parking status of the mount.
332 */
333 //Q_INVOKABLE Q_SCRIPTABLE ParkingStatus getParkingStatus();
334
336
337 Q_INVOKABLE void setJ2000Enabled(bool enabled);
338
339 /** @}*/
340
341 Q_INVOKABLE void findTarget();
342
343 // target coord conversions for displaying
344 Q_INVOKABLE bool raDecToAzAlt(QString qsRA, QString qsDec);
345 Q_INVOKABLE bool raDecToHaDec(QString qsRA);
346 Q_INVOKABLE bool azAltToRaDec(QString qsAz, QString qsAlt);
347 Q_INVOKABLE bool azAltToHaDec(QString qsAz, QString qsAlt);
348 Q_INVOKABLE bool haDecToRaDec(QString qsHA);
349 Q_INVOKABLE bool haDecToAzAlt(QString qsHA, QString qsDec);
350
351 // Center mount in Sky Map
352 Q_INVOKABLE void centerMount();
353
354 Q_INVOKABLE void setUpDownReversed(bool enabled);
355 Q_INVOKABLE void setLeftRightReversed(bool enabled);
356
357 Q_INVOKABLE QStringList timeSources()
358 {
359 return m_TimeSourcesList;
360 }
361 Q_INVOKABLE QStringList locationSources()
362 {
363 return m_LocationSourcesList;
364 }
365
366 QString meridianFlipStatusDescription()
367 {
368 return meridianFlipStatusWidget->getStatus();
369 }
370
371 // Settings
372 QVariantMap getAllSettings() const;
373 void setAllSettings(const QVariantMap &settings);
374
375 public slots:
376
377 /**
378 * @brief syncTelescopeInfo Update telescope information to reflect any property changes
379 */
380 void syncTelescopeInfo();
381 /**
382 * @brief updateProperty Update properties under watch in the mount module
383 * @param prop INDI property
384 */
385 void updateProperty(INDI::Property prop);
386
387 /**
388 * @brief updateLog Update mount module log to include any messages arriving for the telescope driver
389 * @param messageID ID of the new message
390 */
391 void updateLog(int messageID);
392
393 /**
394 * @brief updateTelescopeCoords is triggered by the ISD::Mount::newCoord() event and updates the displayed
395 * coordinates of the mount and to ensure mount is within altitude limits if the altitude limits are enabled.
396 * The frequency of this update depends on the REFRESH parameter of the INDI mount device.
397 * @param position latest coordinates the mount reports it is pointing to
398 * @param pierSide pierSide
399 * @param ha hour angle of the latest coordinates
400 */
401 void updateTelescopeCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha);
402
403 /**
404 * @brief move Issues motion command to the mount to move in a particular direction based the request NS and WE values
405 * @param command Either ISD::Mount::MOTION_START (0) or ISD::Mount::MOTION_STOP (1)
406 * @param NS is either -1 for no direction, or ISD::Mount::MOTION_NORTH (0), or ISD::Mount::MOTION_SOUTH (1)
407 * @param WE is either -1 for no direction, or ISD::Mount::MOTION_WEST (0), or ISD::Mount::MOTION_EAST (1)
408 */
409 void motionCommand(int command, int NS, int WE);
410
411 /**
412 * @brief Send a guide pulse to the telescope.
413 * @param ra_dir RA guide direction
414 * @param ra_msecs duration of the RA guiding pulse in milliseconds
415 * @param dec_dir dec guide direction
416 * @param dec_msecs duration of the DEC guiding pulse in milliseconds
417 */
418 void doPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs);
419
420 /**
421 * @brief saveLimits Saves altitude limit to the user options and updates the INDI telescope driver limits
422 */
423 void saveLimits();
424
425 /**
426 * @brief Enable or disable altitude limits
427 * @param enable True to enable, false to disable.
428 */
429 void setAltitudeLimits(bool enable);
430
431 /**
432 * @brief resumeAltLimits calls enableAltitudeLimits(true). This function is mostly used to enable altitude limit after a meridian flip is complete.
433 */
434 void resumeAltLimits();
435
436 /**
437 * @brief suspendAltLimits calls enableAltitudeLimits(false). This function is mostly used to disable altitude limit once a meridial flip process is started.
438 */
439 void suspendAltLimits();
440
441 /**
442 * @brief enableHourAngleLimits Enable or disable hour angle limits
443 * @param enable True to enable, false to disable.
444 */
445 void enableHourAngleLimits(bool enable);
446
447 /**
448 * @brief enableHaLimits calls enableHourAngleLimits(true). This function is mostly used to enable hour angle limit after a meridian flip is complete.
449 */
450 void enableHaLimits();
451
452 /**
453 * @brief disableAltLimits calls enableHourAngleLimits(false). This function is mostly used to disable altitude limit once a meridial flip process is started.
454 */
455 void disableHaLimits();
456
457 void toggleMountToolBox();
458
459 /**
460 * @brief set meridian flip activation and hours
461 * @param activate true iff the meridian flip should be executed
462 * @param degrees angle past the meridian when the flip should be delayed
463 */
464 void setMeridianFlipValues(bool activate, double degrees);
465
466 /**
467 * @brief React upon status changes of the polar alignment - mainly to
468 * avoid meridian flips happening during polar alignment.
469 */
470 void paaStageChanged(int stage);
471
472 /**
473 * @brief registerNewModule Register an Ekos module as it arrives via DBus
474 * and create the appropriate DBus interface to communicate with it.
475 * @param name of module
476 */
477 void registerNewModule(const QString &name);
478
479 /**
480 * @brief gotoTarget Slew to target coordinates.
481 * @param target Target
482 * @return True if slew successful, false otherwise.
483 */
484 bool gotoTarget(const SkyPoint &target);
485
486 /**
487 * @brief syncAxisReversed Update Mount Control GUI on the reverse motion toggled state.
488 * @param axis RA (left/right) or DE (up/down)
489 * @param reversed True if reversed, false otherwise.
490 */
491 void syncAxisReversed(INDI_EQ_AXIS axis, bool reversed);
492
493 /**
494 * @brief stopTimers Need to stop update timers when profile is disconnected
495 * but due to timing and race conditions, the timers can trigger an invalid access
496 * to INDI device.
497 */
498 void stopTimers();
499
500 /**
501 * @brief syncTimeSource When time source changes, update all INDI drivers to this time source
502 */
503 void syncTimeSource();
504
505 /**
506 * @brief syncLocationSource When location source changes, update all INDI drivers to this location source
507 */
508 void syncLocationSource();
509
510 private slots:
511 void startParkTimer();
512 void stopParkTimer();
513 void startAutoPark();
514
515 signals:
516 void newLog(const QString &text);
517 /**
518 * @brief Update event with the current telescope position
519 * @param position mount position. Independent from the mount type,
520 * the EQ coordinates(both JNow and J2000) as well as the alt/az values are filled.
521 * @param pierside for GEMs report the pier side the scope is currently (PierSide::PIER_WEST means
522 * the mount is on the western side of the pier pointing east of the meridian).
523 * @param ha current hour angle
524 */
525 void newCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha);
526 /**
527 * @brief The mount has finished the slew to a new target.
528 * @param currentCoords exact position where the mount is positioned
529 */
530 void newTarget(SkyPoint &currentCoord);
531
532 /**
533 * @brief The mount has finished the slew to a new target.
534 * @param Name Name of object, if any, the mount is positioned at.
535 */
536 void newTargetName(const QString &name);
537 /**
538 * @brief Change in the mount status.
539 */
540 void newStatus(ISD::Mount::Status status);
541 void newParkStatus(ISD::ParkStatus status);
542 void pierSideChanged(ISD::Mount::PierSide side);
543 void slewRateChanged(int index);
544 void ready();
545 void newMeridianFlipText(const QString &text);
546 void autoParkCountdownUpdated(const QString &text);
547
548 void settingsUpdated(const QVariantMap &settings);
549 void trainChanged();
550
551 private:
552 ////////////////////////////////////////////////////////////////////
553 /// Settings
554 ////////////////////////////////////////////////////////////////////
555
556 /**
557 * @brief Connect GUI elements to sync settings once updated.
558 */
559 void connectSettings();
560 /**
561 * @brief Stop updating settings when GUI elements are updated.
562 */
563 void disconnectSettings();
564 /**
565 * @brief loadSettings Load setting from Options and set them accordingly.
566 */
567 void loadGlobalSettings();
568
569 void connectSyncSettings();
570 void disconnectSyncSettings();
571
572 /**
573 * @brief syncSettings When checkboxes, comboboxes, or spin boxes are updated, save their values in the
574 * global and per-train settings.
575 */
576 void syncSettings();
577
578 /**
579 * @brief syncControl Sync setting to widget. The value depends on the widget type.
580 * @param settings Map of all settings
581 * @param key name of widget to sync
582 * @param widget pointer of widget to set
583 * @return True if sync successful, false otherwise
584 */
585 bool syncControl(const QVariantMap &settings, const QString &key, QWidget * widget);
586
587 /**
588 * @brief settleSettings Run this function after timeout from debounce timer to update database
589 * and emit settingsChanged signal. This is required so we don't overload output.
590 */
591 void settleSettings();
592
593 void setScopeStatus(ISD::Mount::Status status);
594 /* Meridian flip state handling */
596 void setupParkUI();
597
598 bool hasCaptureInterface { false };
599
600 ISD::Mount *m_Mount {nullptr};
603 QStringList m_TimeSourcesList, m_LocationSourcesList;
604
605 QStringList m_LogText;
606 SkyPoint telescopeCoord;
607 SkyPoint *targetPosition {nullptr};
608 QString lastNotificationMessage;
609
610 // Auto Park
611 QTimer autoParkTimer;
612
613 // Debounce Timer
614 QTimer m_DebounceTimer;
615
616 // Limits
617 int m_AbortAltDispatch {-1}, m_AbortHADispatch {-1};
618 bool m_AltitudeLimitEnabled {false};
619 double m_LastAltitude {0};
620 bool m_HourAngleLimitEnabled {false};
621 double m_LastHourAngle {0};
622
623 ISD::Mount::Status m_Status = ISD::Mount::MOUNT_IDLE;
624 ISD::ParkStatus m_ParkStatus = ISD::PARK_UNKNOWN;
625
626 // Settings
627 QVariantMap m_Settings;
628 QVariantMap m_GlobalSettings;
629
630 QQuickView *m_BaseView = nullptr;
631 QQuickItem *m_BaseObj = nullptr;
632 QQmlContext *m_Ctxt = nullptr;
633
634 QQuickItem *m_SpeedSlider = nullptr, *m_SpeedLabel = nullptr,
635 *m_raValue = nullptr, *m_deValue = nullptr, *m_azValue = nullptr,
636 *m_altValue = nullptr, *m_haValue = nullptr, *m_zaValue = nullptr,
637 *m_targetText = nullptr, *m_targetRAText = nullptr,
638 *m_targetDEText = nullptr, *m_Park = nullptr, *m_Unpark = nullptr,
639 *m_statusText = nullptr, *m_J2000Check = nullptr,
640 *m_JNowCheck = nullptr, *m_equatorialCheck = nullptr,
641 *m_horizontalCheck = nullptr, *m_haEquatorialCheck = nullptr,
642 *m_leftRightCheck = nullptr, *m_upDownCheck = nullptr;
643};
644}
645
646
647#endif // Mount
Supports controlling INDI telescope devices including setting/retrieving mount properties,...
Definition mount.h:33
Q_SCRIPTABLE QList< double > horizontalCoords()
DBUS interface function.
void newTarget(SkyPoint &currentCoord)
The mount has finished the slew to a new target.
Q_INVOKABLE Q_SCRIPTABLE bool canPark()
DBUS interface function.
void saveLimits()
saveLimits Saves altitude limit to the user options and updates the INDI telescope driver limits
Definition mount.cpp:882
Q_SCRIPTABLE double hourAngleLimit()
DBUS interface function.
Q_SCRIPTABLE void setAutoParkDailyEnabled(bool enabled)
setAutoParkDailyEnabled toggles everyday Auto Park
Definition mount.cpp:1522
Q_SCRIPTABLE void setAltitudeLimitsEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:967
void enableHaLimits()
enableHaLimits calls enableHourAngleLimits(true).
Definition mount.cpp:937
Q_SCRIPTABLE bool altitudeLimitsEnabled()
DBUS interface function.
Q_INVOKABLE Q_SCRIPTABLE bool park()
DBUS interface function.
Definition mount.cpp:1228
Q_INVOKABLE Q_SCRIPTABLE bool sync(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:1162
bool addLocationSource(const QSharedPointer< ISD::GenericDevice > &device)
addLocationSource Add an INDI driver that can be used for a master location source
Definition mount.cpp:394
void syncLocationSource()
syncLocationSource When location source changes, update all INDI drivers to this location source
Definition mount.cpp:2126
void updateProperty(INDI::Property prop)
updateProperty Update properties under watch in the mount module
Definition mount.cpp:731
Q_SCRIPTABLE bool autoParkEnabled()
autoParkEnabled Check if auto-park is enabled.
void doPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs)
Send a guide pulse to the telescope.
Definition mount.cpp:874
Q_INVOKABLE Q_SCRIPTABLE bool resetModel()
DBUS interface function.
Definition mount.cpp:1432
Q_INVOKABLE Q_SCRIPTABLE bool gotoTarget(const QString &target)
DBUS interface function.
Definition mount.cpp:1002
void syncTimeSource()
syncTimeSource When time source changes, update all INDI drivers to this time source
Definition mount.cpp:2118
Q_INVOKABLE void setTrackEnabled(bool enabled)
DBUS interface function.
Definition mount.cpp:1464
void disableHaLimits()
disableAltLimits calls enableHourAngleLimits(false).
Definition mount.cpp:944
Q_SCRIPTABLE double initialHA()
DBUS interface function.
Definition mount.cpp:2110
Q_SCRIPTABLE void setAutoParkStartup(QTime startup)
setAutoParkStartup Set time when automatic parking is activated.
Definition mount.cpp:1527
void paaStageChanged(int stage)
React upon status changes of the polar alignment - mainly to avoid meridian flips happening during po...
Definition mount.cpp:789
void setMeridianFlipValues(bool activate, double degrees)
set meridian flip activation and hours
Definition mount.cpp:783
Q_SCRIPTABLE QList< double > equatorialCoords()
DBUS interface function.
void syncTelescopeInfo()
syncTelescopeInfo Update telescope information to reflect any property changes
Definition mount.cpp:455
void syncAxisReversed(INDI_EQ_AXIS axis, bool reversed)
syncAxisReversed Update Mount Control GUI on the reverse motion toggled state.
Definition mount.cpp:1633
void motionCommand(int command, int NS, int WE)
move Issues motion command to the mount to move in a particular direction based the request NS and WE...
Definition mount.cpp:855
void registerNewModule(const QString &name)
registerNewModule Register an Ekos module as it arrives via DBus and create the appropriate DBus inte...
Definition mount.cpp:532
Q_INVOKABLE Q_SCRIPTABLE bool unpark()
DBUS interface function.
Definition mount.cpp:1236
double hourAngle
Mount::hourAngle.
Definition mount.h:47
bool addTimeSource(const QSharedPointer< ISD::GenericDevice > &device)
addTimeSource Add an INDI driver that can be used for a master time source
Definition mount.cpp:351
void newTargetName(const QString &name)
The mount has finished the slew to a new target.
Q_SCRIPTABLE bool hourAngleLimitEnabled()
DBUS interface function.
Q_INVOKABLE Q_SCRIPTABLE bool syncTarget(const QString &target)
DBUS interface function.
Definition mount.cpp:1020
void stopTimers()
stopTimers Need to stop update timers when profile is disconnected but due to timing and race conditi...
Definition mount.cpp:1542
Q_SCRIPTABLE Q_NOREPLY void setHourAngleLimit(double limit)
DBUS interface function.
Definition mount.cpp:982
void newStatus(ISD::Mount::Status status)
Change in the mount status.
Q_INVOKABLE Q_SCRIPTABLE bool abort()
DBUS interface function.
Definition mount.cpp:1170
Q_SCRIPTABLE QList< double > altitudeLimits()
DBUS interface function.
Q_SCRIPTABLE SkyPoint currentTarget()
DBUS interface function.
Definition mount.cpp:1106
void updateLog(int messageID)
updateLog Update mount module log to include any messages arriving for the telescope driver
Definition mount.cpp:838
Q_SCRIPTABLE double hourAngle()
DBUS interface function.
bool setMount(ISD::Mount *device)
addMount Add a new Mount device
Definition mount.cpp:249
QSharedPointer< MeridianFlipState > getMeridianFlipState() const
getMeridianFlipState
Definition mount.h:138
Q_SCRIPTABLE Q_NOREPLY void setAltitudeLimits(QList< double > limits)
DBUS interface function.
Definition mount.cpp:961
Q_SCRIPTABLE void setHourAngleLimitEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:987
void enableHourAngleLimits(bool enable)
enableHourAngleLimits Enable or disable hour angle limits
Definition mount.cpp:931
Q_INVOKABLE Q_SCRIPTABLE int slewRate()
DBUS interface function.
void suspendAltLimits()
suspendAltLimits calls enableAltitudeLimits(false).
Definition mount.cpp:925
void updateTelescopeCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha)
updateTelescopeCoords is triggered by the ISD::Mount::newCoord() event and updates the displayed coor...
Definition mount.cpp:542
Q_INVOKABLE Q_SCRIPTABLE bool slew(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:1080
void newCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha)
Update event with the current telescope position.
Q_INVOKABLE Q_SCRIPTABLE IPState slewStatus()
DBUS interface function.
void resumeAltLimits()
resumeAltLimits calls enableAltitudeLimits(true).
Definition mount.cpp:917
Q_SCRIPTABLE void setAutoParkEnabled(bool enable)
setAutoParkEnabled Toggle Auto Park
Definition mount.cpp:1514
device handle controlling Mounts.
Definition indimount.h:27
The sky coordinates of a point in the sky.
Definition skypoint.h:45
An angle, stored as degrees, but expressible in many ways.
Definition dms.h:38
Ekos is an advanced Astrophotography tool for Linux.
Definition align.cpp:79
ISD is a collection of INDI Standard Devices.
Q_CLASSINFO(Name, Value)
Q_INVOKABLEQ_INVOKABLE
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
QString join(QChar separator) const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 17 2024 11:48:26 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.