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 "ui_mount.h"
11
12#include "indi/indistd.h"
13#include "indi/indifocuser.h"
14#include "indi/indimount.h"
15
16class QQuickView;
17class QQuickItem;
18
19namespace Ekos
20{
21/**
22 *@class Mount
23 *@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.
24 *@author Jasem Mutlaq
25 *@version 1.5
26 */
27
28class OpticalTrainManager;
29class MeridianFlipState;
30class MountControlPanel;
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 */
159 Q_SCRIPTABLE Q_NOREPLY void setAltitudeLimits(QList<double> limits);
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 */
170 Q_SCRIPTABLE bool altitudeLimitsEnabled();
171
172 /** DBUS interface function.
173 * Returns the mount hour angle limit.
174 * @return Returns hour angle limit in hours.
175 */
176 Q_SCRIPTABLE double hourAngleLimit();
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 */
194 Q_SCRIPTABLE bool hourAngleLimitEnabled();
195
196 /**
197 * @brief autoParkEnabled Check if auto-park is enabled.
198 * @return True if enabled.
199 */
200 Q_SCRIPTABLE bool autoParkEnabled();
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 */
212 Q_SCRIPTABLE void setAutoParkDailyEnabled(bool enabled);
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 */
218 Q_SCRIPTABLE void setAutoParkStartup(QTime startup);
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 /** DBUS interface function.
232 * Slew the mount to the target. Target name must be valid in KStars.
233 * @param target name
234 * @return true if the command is sent successfully, false otherwise.
235 */
236 Q_INVOKABLE Q_SCRIPTABLE bool gotoTarget(const QString &target);
237
238 /** DBUS interface function.
239 * Sync the mount to the RA/DEC (JNow).
240 * @param RA Right ascention is hours.
241 * @param DEC Declination in degrees.
242 * @return true if the command is sent successfully, false otherwise.
243 */
244 Q_INVOKABLE Q_SCRIPTABLE bool sync(double RA, double DEC);
245
246 /** DBUS interface function.
247 * Sync the mount to the target. Target name must be valid in KStars.
248 * @param target name
249 * @return true if the command is sent successfully, false otherwise.
250 */
251 Q_INVOKABLE Q_SCRIPTABLE bool syncTarget(const QString &target);
252
253 /** DBUS interface function.
254 * Get equatorial coords (JNow). An array of doubles is returned. First element is RA in hours. Second elements is DEC in degrees.
255 */
257
258 /** DBUS interface function.
259 * Get Horizontal coords. An array of doubles is returned. First element is Azimuth in degrees. Second elements is Altitude in degrees.
260 */
262
263 /** DBUS interface function.
264 * Get Horizontal coords.
265 */
266 Q_SCRIPTABLE SkyPoint currentTarget();
267
268 /** DBUS interface function.
269 * Get mount hour angle in hours (-12 to +12).
270 */
271 Q_SCRIPTABLE double hourAngle();
272
273 /** DBUS interface function.
274 * Get the hour angle of that time the mount has slewed to the current position.
275 * This is used to manage the meridian flip for mounts which do not report pier side.
276 * only one attempt to flip is done.
277 */
278 Q_SCRIPTABLE double initialHA();
279
280 /** DBUS interface function.
281 * Aborts the mount motion
282 * @return true if the command is sent successfully, false otherwise.
283 */
284 Q_INVOKABLE Q_SCRIPTABLE bool abort();
285
286 /** DBUS interface function.
287 * Get the mount slew status ("Idle","Complete", "Busy", "Error")
288 */
289 Q_INVOKABLE Q_SCRIPTABLE IPState slewStatus();
290
291
292 /** DBUS interface function.
293 * Get the mount slew rate index 0 to N-1, or -1 if slew rates are not supported.
294 */
295 Q_INVOKABLE Q_SCRIPTABLE int slewRate();
296
297 Q_INVOKABLE Q_SCRIPTABLE bool setSlewRate(int index);
298
299 /** DBUS interface function.
300 * Reset mount model if supported by the mount.
301 * @return true if the command is executed successfully, false otherwise.
302 */
303 Q_INVOKABLE Q_SCRIPTABLE bool resetModel();
304
305 /** DBUS interface function.
306 * Can mount park?
307 */
308 Q_INVOKABLE Q_SCRIPTABLE bool canPark();
309
310 /** DBUS interface function.
311 * Park mount
312 */
313 Q_INVOKABLE Q_SCRIPTABLE bool park();
314
315 /** DBUS interface function.
316 * Unpark mount
317 */
318 Q_INVOKABLE Q_SCRIPTABLE bool unpark();
319
320 /** DBUS interface function.
321 * Return parking status of the mount.
322 */
323 //Q_INVOKABLE Q_SCRIPTABLE ParkingStatus getParkingStatus();
324
326
327 Q_INVOKABLE void setJ2000Enabled(bool enabled);
328
329 /** @}*/
330
331 // target coord conversions for displaying
332 Q_INVOKABLE bool raDecToAzAlt(QString qsRA, QString qsDec);
333 Q_INVOKABLE bool raDecToHaDec(QString qsRA);
334 Q_INVOKABLE bool azAltToRaDec(QString qsAz, QString qsAlt);
335 Q_INVOKABLE bool azAltToHaDec(QString qsAz, QString qsAlt);
336 Q_INVOKABLE bool haDecToRaDec(QString qsHA);
337 Q_INVOKABLE bool haDecToAzAlt(QString qsHA, QString qsDec);
338
339 // Center mount in Sky Map
340 Q_INVOKABLE void centerMount();
341
342 Q_INVOKABLE void setUpDownReversed(bool enabled);
343 Q_INVOKABLE void setLeftRightReversed(bool enabled);
344
345 Q_INVOKABLE QStringList timeSources()
346 {
347 return m_TimeSourcesList;
348 }
349 Q_INVOKABLE QStringList locationSources()
350 {
351 return m_LocationSourcesList;
352 }
353
354 QString meridianFlipStatusDescription()
355 {
356 return meridianFlipStatusWidget->getStatus();
357 }
358
359 // Settings
360 QVariantMap getAllSettings() const;
361 void setAllSettings(const QVariantMap &settings);
362
363 public slots:
364
365 /**
366 * @brief syncTelescopeInfo Update telescope information to reflect any property changes
367 */
368 void syncTelescopeInfo();
369 /**
370 * @brief updateProperty Update properties under watch in the mount module
371 * @param prop INDI property
372 */
373 void updateProperty(INDI::Property prop);
374
375 /**
376 * @brief updateLog Update mount module log to include any messages arriving for the telescope driver
377 * @param messageID ID of the new message
378 */
379 void updateLog(int messageID);
380
381 /**
382 * @brief updateTelescopeCoords is triggered by the ISD::Mount::newCoord() event and updates the displayed
383 * coordinates of the mount and to ensure mount is within altitude limits if the altitude limits are enabled.
384 * The frequency of this update depends on the REFRESH parameter of the INDI mount device.
385 * @param position latest coordinates the mount reports it is pointing to
386 * @param pierSide pierSide
387 * @param ha hour angle of the latest coordinates
388 */
389 void updateTelescopeCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha);
390
391 /**
392 * @brief move Issues motion command to the mount to move in a particular direction based the request NS and WE values
393 * @param command Either ISD::Mount::MOTION_START (0) or ISD::Mount::MOTION_STOP (1)
394 * @param NS is either -1 for no direction, or ISD::Mount::MOTION_NORTH (0), or ISD::Mount::MOTION_SOUTH (1)
395 * @param WE is either -1 for no direction, or ISD::Mount::MOTION_WEST (0), or ISD::Mount::MOTION_EAST (1)
396 */
397 void motionCommand(int command, int NS, int WE);
398
399 /**
400 * @brief Send a guide pulse to the telescope.
401 * @param ra_dir RA guide direction
402 * @param ra_msecs duration of the RA guiding pulse in milliseconds
403 * @param dec_dir dec guide direction
404 * @param dec_msecs duration of the DEC guiding pulse in milliseconds
405 */
406 void doPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs);
407
408 /**
409 * @brief saveLimits Saves altitude limit to the user options and updates the INDI telescope driver limits
410 */
411 void saveLimits();
412
413 /**
414 * @brief Enable or disable altitude limits
415 * @param enable True to enable, false to disable.
416 */
417 void setAltitudeLimits(bool enable);
418
419 /**
420 * @brief resumeAltLimits calls enableAltitudeLimits(true). This function is mostly used to enable altitude limit after a meridian flip is complete.
421 */
422 void resumeAltLimits();
423
424 /**
425 * @brief suspendAltLimits calls enableAltitudeLimits(false). This function is mostly used to disable altitude limit once a meridial flip process is started.
426 */
427 void suspendAltLimits();
428
429 /**
430 * @brief enableHourAngleLimits Enable or disable hour angle limits
431 * @param enable True to enable, false to disable.
432 */
433 void enableHourAngleLimits(bool enable);
434
435 /**
436 * @brief enableHaLimits calls enableHourAngleLimits(true). This function is mostly used to enable hour angle limit after a meridian flip is complete.
437 */
438 void enableHaLimits();
439
440 /**
441 * @brief disableAltLimits calls enableHourAngleLimits(false). This function is mostly used to disable altitude limit once a meridial flip process is started.
442 */
443 void disableHaLimits();
444
445 void toggleMountToolBox();
446
447 /**
448 * @brief set meridian flip activation and hours
449 * @param activate true iff the meridian flip should be executed
450 * @param degrees angle past the meridian when the flip should be delayed
451 */
452 void setMeridianFlipValues(bool activate, double degrees);
453
454 /**
455 * @brief React upon status changes of the polar alignment - mainly to
456 * avoid meridian flips happening during polar alignment.
457 */
458 void paaStageChanged(int stage);
459
460 /**
461 * @brief registerNewModule Register an Ekos module as it arrives via DBus
462 * and create the appropriate DBus interface to communicate with it.
463 * @param name of module
464 */
465 void registerNewModule(const QString &name);
466
467 /**
468 * @brief gotoTarget Slew to target coordinates.
469 * @param target Target
470 * @return True if slew successful, false otherwise.
471 */
472 bool gotoTarget(const SkyPoint &target);
473
474 /**
475 * @brief setTargetName Set the name of the current target
476 */
477 void setTargetName(const QString &name);
478
479 /**
480 * @brief syncAxisReversed Update Mount Control GUI on the reverse motion toggled state.
481 * @param axis RA (left/right) or DE (up/down)
482 * @param reversed True if reversed, false otherwise.
483 */
484 void syncAxisReversed(INDI_EQ_AXIS axis, bool reversed);
485
486 /**
487 * @brief stopTimers Need to stop update timers when profile is disconnected
488 * but due to timing and race conditions, the timers can trigger an invalid access
489 * to INDI device.
490 */
491 void stopTimers();
492
493 /**
494 * @brief syncTimeSource When time source changes, update all INDI drivers to this time source
495 */
496 void syncTimeSource();
497
498 /**
499 * @brief syncLocationSource When location source changes, update all INDI drivers to this location source
500 */
501 void syncLocationSource();
502
503 private slots:
504 void startParkTimer();
505 void stopParkTimer();
506 void startAutoPark();
507
508 signals:
509 void newLog(const QString &text);
510 /**
511 * @brief Update event with the current telescope position
512 * @param position mount position. Independent from the mount type,
513 * the EQ coordinates(both JNow and J2000) as well as the alt/az values are filled.
514 * @param pierside for GEMs report the pier side the scope is currently (PierSide::PIER_WEST means
515 * the mount is on the western side of the pier pointing east of the meridian).
516 * @param ha current hour angle
517 */
518 void newCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha);
519 /**
520 * @brief The mount has finished the slew to a new target.
521 * @param currentCoords exact position where the mount is positioned
522 */
523 void newTarget(SkyPoint &currentCoord);
524
525 /**
526 * @brief The mount has finished the slew to a new target.
527 * @param Name Name of object, if any, the mount is positioned at.
528 */
529 void newTargetName(const QString &name);
530 /**
531 * @brief Change in the mount status.
532 */
533 void newStatus(ISD::Mount::Status status);
534 void newParkStatus(ISD::ParkStatus status);
535 void pierSideChanged(ISD::Mount::PierSide side);
536 void slewRateChanged(int index);
537 void ready();
538 void newMeridianFlipText(const QString &text);
539 void autoParkCountdownUpdated(const QString &text);
540
541 void settingsUpdated(const QVariantMap &settings);
542 void trainChanged();
543
544 private:
545 ////////////////////////////////////////////////////////////////////
546 /// Settings
547 ////////////////////////////////////////////////////////////////////
548
549 /**
550 * @brief Connect GUI elements to sync settings once updated.
551 */
552 void connectSettings();
553 /**
554 * @brief Stop updating settings when GUI elements are updated.
555 */
556 void disconnectSettings();
557 /**
558 * @brief loadSettings Load setting from Options and set them accordingly.
559 */
560 void loadGlobalSettings();
561
562 void connectSyncSettings();
563 void disconnectSyncSettings();
564
565 /**
566 * @brief syncSettings When checkboxes, comboboxes, or spin boxes are updated, save their values in the
567 * global and per-train settings.
568 */
569 void syncSettings();
570
571 /**
572 * @brief syncControl Sync setting to widget. The value depends on the widget type.
573 * @param settings Map of all settings
574 * @param key name of widget to sync
575 * @param widget pointer of widget to set
576 * @return True if sync successful, false otherwise
577 */
578 bool syncControl(const QVariantMap &settings, const QString &key, QWidget * widget);
579
580 /**
581 * @brief settleSettings Run this function after timeout from debounce timer to update database
582 * and emit settingsChanged signal. This is required so we don't overload output.
583 */
584 void settleSettings();
585
586 void setScopeStatus(ISD::Mount::Status status);
587 /* Meridian flip state handling */
589 void setupParkUI();
590
591 bool hasCaptureInterface { false };
592
593 ISD::Mount *m_Mount {nullptr};
596 QStringList m_TimeSourcesList, m_LocationSourcesList;
597
598 QStringList m_LogText;
599 SkyPoint telescopeCoord;
600 SkyPoint *targetPosition {nullptr};
601 QString lastNotificationMessage;
602
604
605 // Auto Park
606 QTimer autoParkTimer;
607
608 // Debounce Timer
609 QTimer m_DebounceTimer;
610
611 // Limits
612 int m_AbortAltDispatch {-1}, m_AbortHADispatch {-1};
613 bool m_AltitudeLimitEnabled {false};
614 double m_LastAltitude {0};
615 bool m_HourAngleLimitEnabled {false};
616 double m_LastHourAngle {0};
617
618 ISD::Mount::Status m_Status = ISD::Mount::MOUNT_IDLE;
619 ISD::ParkStatus m_ParkStatus = ISD::PARK_UNKNOWN;
620
621 // Settings
622 QVariantMap m_Settings;
623 QVariantMap m_GlobalSettings;
624};
625}
626
627
628#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:817
Q_SCRIPTABLE double hourAngleLimit()
DBUS interface function.
Q_SCRIPTABLE void setAutoParkDailyEnabled(bool enabled)
setAutoParkDailyEnabled toggles everyday Auto Park
Definition mount.cpp:1238
Q_SCRIPTABLE void setAltitudeLimitsEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:895
void enableHaLimits()
enableHaLimits calls enableHourAngleLimits(true).
Definition mount.cpp:865
Q_SCRIPTABLE bool altitudeLimitsEnabled()
DBUS interface function.
Q_INVOKABLE Q_SCRIPTABLE bool park()
DBUS interface function.
Definition mount.cpp:1073
Q_INVOKABLE Q_SCRIPTABLE bool sync(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:1007
bool addLocationSource(const QSharedPointer< ISD::GenericDevice > &device)
addLocationSource Add an INDI driver that can be used for a master location source
Definition mount.cpp:372
void syncLocationSource()
syncLocationSource When location source changes, update all INDI drivers to this location source
Definition mount.cpp:1842
void updateProperty(INDI::Property prop)
updateProperty Update properties under watch in the mount module
Definition mount.cpp:667
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:809
Q_INVOKABLE Q_SCRIPTABLE bool resetModel()
DBUS interface function.
Definition mount.cpp:1148
Q_INVOKABLE Q_SCRIPTABLE bool gotoTarget(const QString &target)
DBUS interface function.
Definition mount.cpp:931
void syncTimeSource()
syncTimeSource When time source changes, update all INDI drivers to this time source
Definition mount.cpp:1834
void setTargetName(const QString &name)
setTargetName Set the name of the current target
Definition mount.cpp:949
Q_INVOKABLE void setTrackEnabled(bool enabled)
DBUS interface function.
Definition mount.cpp:1180
void disableHaLimits()
disableAltLimits calls enableHourAngleLimits(false).
Definition mount.cpp:872
Q_SCRIPTABLE double initialHA()
DBUS interface function.
Definition mount.cpp:1826
Q_SCRIPTABLE void setAutoParkStartup(QTime startup)
setAutoParkStartup Set time when automatic parking is activated.
Definition mount.cpp:1243
void paaStageChanged(int stage)
React upon status changes of the polar alignment - mainly to avoid meridian flips happening during po...
Definition mount.cpp:724
void setMeridianFlipValues(bool activate, double degrees)
set meridian flip activation and hours
Definition mount.cpp:718
Q_SCRIPTABLE QList< double > equatorialCoords()
DBUS interface function.
void syncTelescopeInfo()
syncTelescopeInfo Update telescope information to reflect any property changes
Definition mount.cpp:433
void syncAxisReversed(INDI_EQ_AXIS axis, bool reversed)
syncAxisReversed Update Mount Control GUI on the reverse motion toggled state.
Definition mount.cpp:1349
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:790
void registerNewModule(const QString &name)
registerNewModule Register an Ekos module as it arrives via DBus and create the appropriate DBus inte...
Definition mount.cpp:510
Q_INVOKABLE Q_SCRIPTABLE bool unpark()
DBUS interface function.
Definition mount.cpp:1081
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:329
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:955
void stopTimers()
stopTimers Need to stop update timers when profile is disconnected but due to timing and race conditi...
Definition mount.cpp:1258
Q_SCRIPTABLE Q_NOREPLY void setHourAngleLimit(double limit)
DBUS interface function.
Definition mount.cpp:910
void newStatus(ISD::Mount::Status status)
Change in the mount status.
Q_INVOKABLE Q_SCRIPTABLE bool abort()
DBUS interface function.
Definition mount.cpp:1015
Q_SCRIPTABLE QList< double > altitudeLimits()
DBUS interface function.
Q_SCRIPTABLE SkyPoint currentTarget()
DBUS interface function.
Definition mount.cpp:997
void updateLog(int messageID)
updateLog Update mount module log to include any messages arriving for the telescope driver
Definition mount.cpp:773
Q_SCRIPTABLE double hourAngle()
DBUS interface function.
bool setMount(ISD::Mount *device)
addMount Add a new Mount device
Definition mount.cpp:227
QSharedPointer< MeridianFlipState > getMeridianFlipState() const
getMeridianFlipState
Definition mount.h:138
Q_SCRIPTABLE Q_NOREPLY void setAltitudeLimits(QList< double > limits)
DBUS interface function.
Definition mount.cpp:889
Q_SCRIPTABLE void setHourAngleLimitEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:915
void enableHourAngleLimits(bool enable)
enableHourAngleLimits Enable or disable hour angle limits
Definition mount.cpp:859
Q_INVOKABLE Q_SCRIPTABLE int slewRate()
DBUS interface function.
void suspendAltLimits()
suspendAltLimits calls enableAltitudeLimits(false).
Definition mount.cpp:853
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:519
Q_INVOKABLE Q_SCRIPTABLE bool slew(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:968
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:845
Q_SCRIPTABLE void setAutoParkEnabled(bool enable)
setAutoParkEnabled Toggle Auto Park
Definition mount.cpp:1230
device handle controlling Mounts.
Definition indimount.h:29
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:83
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 Dec 6 2024 12:09:52 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.