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
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 */
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 */
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 */
162
163 /** DBUS interface function.
164 * Returns the mount hour angle limit.
165 * @return Returns hour angle limit in hours.
166 */
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 */
186
187 /**
188 * @brief autoParkEnabled Check if auto-park is enabled.
189 * @return True if enabled.
190 */
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 */
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 */
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 */
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 */
263
264 /** DBUS interface function.
265 * Get Horizontal coords.
266 */
268
269 /** DBUS interface function.
270 * Get mount hour angle in hours (-12 to +12).
271 */
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 */
286
287 /** DBUS interface function.
288 * Get the mount slew status ("Idle","Complete", "Busy", "Error")
289 */
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 */
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 */
305
306 /** DBUS interface function.
307 * Can mount park?
308 */
310
311 /** DBUS interface function.
312 * Park mount
313 */
315
316 /** DBUS interface function.
317 * Unpark mount
318 */
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 /**
560 * @brief settleSettings Run this function after timeout from debounce timer to update database
561 * and emit settingsChanged signal. This is required so we don't overload output.
562 */
563 void settleSettings();
564
565 void syncGPS();
566 void setScopeStatus(ISD::Mount::Status status);
567 /* Meridian flip state handling */
569 void setupParkUI();
570
571 bool hasCaptureInterface { false };
572
573 ISD::Mount *m_Mount {nullptr};
574 ISD::GPS *m_GPS {nullptr};
575 QList<ISD::GPS*> m_GPSes;
576
577 QStringList m_LogText;
578 SkyPoint telescopeCoord;
579 SkyPoint *targetPosition {nullptr};
580 QString lastNotificationMessage;
581
582 // Auto Park
583 QTimer autoParkTimer;
584
585 // Debounce Timer
586 QTimer m_DebounceTimer;
587
588 // Limits
589 int m_AbortAltDispatch {-1}, m_AbortHADispatch {-1};
590 bool m_AltitudeLimitEnabled {false};
591 double m_LastAltitude {0};
592 bool m_HourAngleLimitEnabled {false};
593 double m_LastHourAngle {0};
594
595 // GPS
596 bool GPSInitialized = {false};
597
598 ISD::Mount::Status m_Status = ISD::Mount::MOUNT_IDLE;
599 ISD::ParkStatus m_ParkStatus = ISD::PARK_UNKNOWN;
600
601 // Settings
602 QVariantMap m_Settings;
603 QVariantMap m_GlobalSettings;
604
605 QQuickView *m_BaseView = nullptr;
606 QQuickItem *m_BaseObj = nullptr;
607 QQmlContext *m_Ctxt = nullptr;
608
609 QQuickItem *m_SpeedSlider = nullptr, *m_SpeedLabel = nullptr,
610 *m_raValue = nullptr, *m_deValue = nullptr, *m_azValue = nullptr,
611 *m_altValue = nullptr, *m_haValue = nullptr, *m_zaValue = nullptr,
612 *m_targetText = nullptr, *m_targetRAText = nullptr,
613 *m_targetDEText = nullptr, *m_Park = nullptr, *m_Unpark = nullptr,
614 *m_statusText = nullptr, *m_J2000Check = nullptr,
615 *m_JNowCheck = nullptr, *m_equatorialCheck = nullptr,
616 *m_horizontalCheck = nullptr, *m_haEquatorialCheck = nullptr,
617 *m_leftRightCheck = nullptr, *m_upDownCheck = nullptr;
618};
619}
620
621
622#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:886
Q_SCRIPTABLE double hourAngleLimit()
DBUS interface function.
Q_SCRIPTABLE void setAutoParkDailyEnabled(bool enabled)
setAutoParkDailyEnabled toggles everyday Auto Park
Definition mount.cpp:1526
Q_SCRIPTABLE void setAltitudeLimitsEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:971
void enableHaLimits()
enableHaLimits calls enableHourAngleLimits(true).
Definition mount.cpp:941
Q_SCRIPTABLE bool altitudeLimitsEnabled()
DBUS interface function.
Q_INVOKABLE Q_SCRIPTABLE bool park()
DBUS interface function.
Definition mount.cpp:1232
Q_INVOKABLE Q_SCRIPTABLE bool sync(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:1166
void updateProperty(INDI::Property prop)
updateProperty Update properties under watch in the mount module
Definition mount.cpp:728
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:878
Q_INVOKABLE Q_SCRIPTABLE bool resetModel()
DBUS interface function.
Definition mount.cpp:1436
Q_INVOKABLE Q_SCRIPTABLE bool gotoTarget(const QString &target)
DBUS interface function.
Definition mount.cpp:1006
Q_INVOKABLE void setTrackEnabled(bool enabled)
DBUS interface function.
Definition mount.cpp:1468
void disableHaLimits()
disableAltLimits calls enableHourAngleLimits(false).
Definition mount.cpp:948
Q_SCRIPTABLE double initialHA()
DBUS interface function.
Definition mount.cpp:2101
Q_SCRIPTABLE void setAutoParkStartup(QTime startup)
setAutoParkStartup Set time when automatic parking is activated.
Definition mount.cpp:1531
void paaStageChanged(int stage)
React upon status changes of the polar alignment - mainly to avoid meridian flips happening during po...
Definition mount.cpp:793
void setMeridianFlipValues(bool activate, double degrees)
set meridian flip activation and hours
Definition mount.cpp:787
Q_SCRIPTABLE QList< double > equatorialCoords()
DBUS interface function.
void syncTelescopeInfo()
syncTelescopeInfo Update telescope information to reflect any property changes
Definition mount.cpp:452
void syncAxisReversed(INDI_EQ_AXIS axis, bool reversed)
syncAxisReversed Update Mount Control GUI on the reverse motion toggled state.
Definition mount.cpp:1637
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:859
void registerNewModule(const QString &name)
registerNewModule Register an Ekos module as it arrives via DBus and create the appropriate DBus inte...
Definition mount.cpp:529
Q_INVOKABLE Q_SCRIPTABLE bool unpark()
DBUS interface function.
Definition mount.cpp:1240
double hourAngle
Mount::hourAngle.
Definition mount.h:47
void newTargetName(const QString &name)
The mount has finished the slew to a new target.
Q_SCRIPTABLE bool hourAngleLimitEnabled()
DBUS interface function.
bool addGPS(ISD::GPS *device)
addGPS Add a new GPS device
Definition mount.cpp:350
Q_INVOKABLE Q_SCRIPTABLE bool syncTarget(const QString &target)
DBUS interface function.
Definition mount.cpp:1024
void stopTimers()
stopTimers Need to stop update timers when profile is disconnected but due to timing and race conditi...
Definition mount.cpp:1546
Q_SCRIPTABLE Q_NOREPLY void setHourAngleLimit(double limit)
DBUS interface function.
Definition mount.cpp:986
void newStatus(ISD::Mount::Status status)
Change in the mount status.
Q_INVOKABLE Q_SCRIPTABLE bool abort()
DBUS interface function.
Definition mount.cpp:1174
Q_SCRIPTABLE QList< double > altitudeLimits()
DBUS interface function.
Q_SCRIPTABLE SkyPoint currentTarget()
DBUS interface function.
Definition mount.cpp:1110
void updateLog(int messageID)
updateLog Update mount module log to include any messages arriving for the telescope driver
Definition mount.cpp:842
Q_SCRIPTABLE double hourAngle()
DBUS interface function.
bool setMount(ISD::Mount *device)
addMount Add a new Mount device
Definition mount.cpp:245
QSharedPointer< MeridianFlipState > getMeridianFlipState() const
getMeridianFlipState
Definition mount.h:129
Q_SCRIPTABLE Q_NOREPLY void setAltitudeLimits(QList< double > limits)
DBUS interface function.
Definition mount.cpp:965
Q_SCRIPTABLE void setHourAngleLimitEnabled(bool enable)
DBUS interface function.
Definition mount.cpp:991
void enableHourAngleLimits(bool enable)
enableHourAngleLimits Enable or disable hour angle limits
Definition mount.cpp:935
Q_INVOKABLE Q_SCRIPTABLE int slewRate()
DBUS interface function.
void suspendAltLimits()
suspendAltLimits calls enableAltitudeLimits(false).
Definition mount.cpp:929
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:539
Q_INVOKABLE Q_SCRIPTABLE bool slew(double RA, double DEC)
DBUS interface function.
Definition mount.cpp:1084
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:921
Q_SCRIPTABLE void setAutoParkEnabled(bool enable)
setAutoParkEnabled Toggle Auto Park
Definition mount.cpp:1518
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:78
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 Tue Mar 26 2024 11:19:03 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.