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

KDE's Doxygen guidelines are available online.