Kstars

guide.h
1 /*
2  SPDX-FileCopyrightText: 2012 Jasem Mutlaq <[email protected]>
3 
4  SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "ui_guide.h"
10 #include "guideinterface.h"
11 #include "guidestatewidget.h"
12 #include "ekos/ekos.h"
13 #include "indi/indicamera.h"
14 #include "indi/indimount.h"
15 #include "ekos/auxiliary/darkprocessor.h"
16 
17 #include <QTime>
18 #include <QTimer>
19 #include <QtDBus>
20 
21 #include <random>
22 
23 class QProgressIndicator;
24 class QTabWidget;
25 
26 class FITSView;
27 class FITSViewer;
28 class ScrollGraph;
29 class GuideView;
30 
31 namespace Ekos
32 {
33 class OpsCalibration;
34 class OpsGuide;
35 class OpsDither;
36 class OpsGPG;
37 class InternalGuider;
38 class PHD2;
39 class LinGuider;
40 
41 /**
42  * @class Guide
43  * @short Performs calibration and autoguiding using an ST4 port or directly via the INDI driver. Can be used with the following external guiding applications:
44  * PHD2
45  * LinGuider
46  *
47  * @author Jasem Mutlaq
48  * @version 1.4
49  */
50 class Guide : public QWidget, public Ui::Guide
51 {
52  Q_OBJECT
53  Q_CLASSINFO("D-Bus Interface", "org.kde.kstars.Ekos.Guide")
54  Q_PROPERTY(Ekos::GuideState status READ status NOTIFY newStatus)
55  Q_PROPERTY(QStringList logText READ logText NOTIFY newLog)
56  Q_PROPERTY(QString camera READ camera WRITE setCamera)
57  Q_PROPERTY(QString guider READ guider WRITE setGuider)
58  Q_PROPERTY(double exposure READ exposure WRITE setExposure)
59  Q_PROPERTY(QList<double> axisDelta READ axisDelta NOTIFY newAxisDelta)
60  Q_PROPERTY(QList<double> axisSigma READ axisSigma NOTIFY newAxisSigma)
61 
62  public:
63  Guide();
64  ~Guide();
65 
66  enum GuiderStage
67  {
68  CALIBRATION_STAGE,
69  GUIDE_STAGE
70  };
71  enum GuiderType
72  {
73  GUIDE_INTERNAL,
74  GUIDE_PHD2,
75  GUIDE_LINGUIDER
76  };
77 
78  /** @defgroup GuideDBusInterface Ekos DBus Interface - Capture Module
79  * Ekos::Guide interface provides advanced scripting capabilities to calibrate and guide a mount via a CCD camera.
80  */
81 
82  /*@{*/
83 
84  /** DBUS interface function.
85  * select the CCD device from the available CCD drivers.
86  * @param device The CCD device name
87  * @return Returns true if CCD device is found and set, false otherwise.
88  */
89  Q_SCRIPTABLE bool setCamera(const QString &device);
90  Q_SCRIPTABLE QString camera();
91 
92  /** DBUS interface function.
93  * select the ST4 device from the available ST4 drivers.
94  * @param device The ST4 device name
95  * @return Returns true if ST4 device is found and set, false otherwise.
96  */
97  Q_SCRIPTABLE bool setGuider(const QString &device);
98  Q_SCRIPTABLE QString guider();
99 
100  /** DBUS interface function.
101  * @return Returns List of registered ST4 devices.
102  */
103  Q_SCRIPTABLE QStringList getGuiders();
104 
105  /** DBUS interface function.
106  * @brief connectGuider Establish connection to guider application. For internal guider, this always returns true.
107  * @return True if successfully connected, false otherwise.
108  */
109  Q_SCRIPTABLE bool connectGuider();
110 
111  /** DBUS interface function.
112  * @brief disconnectGuider Disconnect from guider application. For internal guider, this always returns true.
113  * @return True if successfully disconnected, false otherwise.
114  */
115  Q_SCRIPTABLE bool disconnectGuider();
116 
117  /**
118  * @brief getStatus Return guide module status
119  * @return state of guide module from Ekos::GuideState
120  */
121  Q_SCRIPTABLE Ekos::GuideState status()
122  {
123  return m_State;
124  }
125 
126  /** DBUS interface function.
127  * Set CCD exposure value
128  * @param value exposure value in seconds.
129  */
130  Q_SCRIPTABLE Q_NOREPLY void setExposure(double value);
131  double exposure()
132  {
133  return exposureIN->value();
134  }
135 
136  /** DBUS interface function.
137  * Set calibration Use Two Axis option. The options must be set before starting the calibration operation. If no options are set, the options loaded from the user configuration are used.
138  * @param enable if true, calibration will be performed in both RA and DEC axis. Otherwise, only RA axis will be calibrated.
139  */
140  Q_SCRIPTABLE Q_NOREPLY void setCalibrationTwoAxis(bool enable);
141 
142  /** DBUS interface function.
143  * Set auto star calibration option. The options must be set before starting the calibration operation. If no options are set, the options loaded from the user configuration are used.
144  * @param enable if true, Ekos will attempt to automatically select the best guide star and proceed with the calibration procedure.
145  */
146  Q_SCRIPTABLE Q_NOREPLY void setCalibrationAutoStar(bool enable);
147 
148  /** DBUS interface function.
149  * In case of automatic star selection, calculate the appropriate square size given the selected star width. The options must be set before starting the calibration operation. If no options are set, the options loaded from the user configuration are used.
150  * @param enable if true, Ekos will attempt to automatically select the best square size for calibration and guiding phases.
151  */
152  Q_SCRIPTABLE Q_NOREPLY void setCalibrationAutoSquareSize(bool enable);
153 
154  /** DBUS interface function.
155  * Set calibration dark frame option. The options must be set before starting the calibration operation. If no options are set, the options loaded from the user configuration are used.
156  * @param enable if true, a dark frame will be captured to subtract from the light frame.
157  */
158  Q_SCRIPTABLE Q_NOREPLY void setDarkFrameEnabled(bool enable);
159 
160  /** DBUS interface function.
161  * Set calibration parameters.
162  * @param pulseDuration Pulse duration in milliseconds to use in the calibration steps.
163  */
164  Q_SCRIPTABLE Q_NOREPLY void setCalibrationPulseDuration(int pulseDuration);
165 
166  /** DBUS interface function.
167  * Set guiding box size. The options must be set before starting the guiding operation. If no options are set, the options loaded from the user configuration are used.
168  * @param index box size index (0 to 4) for box size from 8 to 128 pixels. The box size should be suitable for the size of the guide star selected. The boxSize is also used to select the subframe size around the guide star. Default is 16 pixels
169  */
170  Q_SCRIPTABLE Q_NOREPLY void setGuideBoxSizeIndex(int index);
171 
172  /** DBUS interface function.
173  * Set guiding algorithm. The options must be set before starting the guiding operation. If no options are set, the options loaded from the user configuration are used.
174  * @param index Select the algorithm used to calculate the centroid of the guide star (0 --> Smart, 1 --> Fast, 2 --> Auto, 3 --> No thresh).
175  */
176  Q_SCRIPTABLE Q_NOREPLY void setGuideAlgorithmIndex(int index);
177 
178  /** DBUS interface function.
179  * Enable or disables dithering. Set dither range
180  * @param enable if true, dithering is enabled and is performed after each exposure is complete. Otherwise, dithering is disabled.
181  * @param value dithering range in pixels. Ekos will move the guide star in a random direction for the specified dithering value in pixels.
182  */
183  Q_SCRIPTABLE Q_NOREPLY void setDitherSettings(bool enable, double value);
184 
185  /** @}*/
186 
187  /**
188  * @brief Add new Camera
189  * @param device pointer to camera device.
190  * @return True if added successfully, false if duplicate or failed to add.
191  */
192  bool addCamera(ISD::Camera *device);
193 
194  /**
195  * @brief Add new Camera
196  * @param device pointer to camera device.
197  * @return True if added successfully, false if duplicate or failed to add.
198  */
199  bool addGuideHead(ISD::Camera *device);
200 
201 
202  /**
203  * @brief Add new Mount
204  * @param device pointer to Mount device.
205  * @return True if added successfully, false if duplicate or failed to add.
206  */
207  bool addMount(ISD::Mount *device);
208 
209  /**
210  * @brief Add new Guider
211  * @param device pointer to Guider device.
212  * @return True if added successfully, false if duplicate or failed to add.
213  */
214  bool addGuider(ISD::Guider *device);
215 
216  /**
217  * @brief Add new Adaptive Optics
218  * @param device pointer to AO device.
219  * @return True if added successfully, false if duplicate or failed to add.
220  */
222 
223  void removeDevice(ISD::GenericDevice *device);
224  void configurePHD2Camera();
225 
226  bool isDithering();
227  void syncTelescopeInfo();
228  void syncCameraInfo();
229 
230  /**
231  * @brief clearLog As the name suggests
232  */
233  void clearLog();
234  QStringList logText()
235  {
236  return m_LogText;
237  }
238 
239  /**
240  * @return Return current log text of guide module
241  */
243  {
244  return m_LogText.join("\n");
245  }
246 
247  /**
248  * @brief getStarPosition Return star center as selected by the user or auto-detected by KStars
249  * @return QVector3D of starCenter. The 3rd parameter is used to store current bin settings and in unrelated to the star position.
250  */
252  {
253  return starCenter;
254  }
255 
256  // Tracking Box
257  int getTrackingBoxSize()
258  {
259  return boxSizeCombo->currentText().toInt();
260  }
261 
262  GuideInterface *getGuiderInstance()
263  {
264  return m_GuiderInstance;
265  }
266 
267  QJsonObject getSettings() const;
268  void setSettings(const QJsonObject &settings);
269 
270  public slots:
271 
272  /** DBUS interface function.
273  * Start the autoguiding operation.
274  * @return Returns true if guiding started successfully, false otherwise.
275  */
276  Q_SCRIPTABLE bool guide();
277 
278  /** DBUS interface function.
279  * Stop any active calibration, guiding, or dithering operation
280  * @return Returns true if operation is stopped successfully, false otherwise.
281  */
282  Q_SCRIPTABLE bool abort();
283 
284  /** DBUS interface function.
285  * Start the calibration operation. Note that this will not start guiding automatically.
286  * @return Returns true if calibration started successfully, false otherwise.
287  */
288  Q_SCRIPTABLE bool calibrate();
289 
290  /** DBUS interface function.
291  * Clear calibration data. Next time any guide operation is performed, a calibration is first started.
292  */
293  Q_SCRIPTABLE Q_NOREPLY void clearCalibration();
294 
295  /** DBUS interface function.
296  * @brief dither Starts dithering process in a random direction restricted by the number of pixels specified in dither options
297  * @return True if dither started successfully, false otherwise.
298  */
299  Q_SCRIPTABLE bool dither();
300 
301  /** DBUS interface function.
302  * @brief suspend Suspend autoguiding
303  * @return True if successful, false otherwise.
304  */
305  Q_SCRIPTABLE bool suspend();
306 
307  /** DBUS interface function.
308  * @brief resume Resume autoguiding
309  * @return True if successful, false otherwise.
310  */
311  Q_SCRIPTABLE bool resume();
312 
313  /** DBUS interface function.
314  * Capture a guide frame
315  * @return Returns true if capture command is sent successfully to INDI server.
316  */
317  Q_SCRIPTABLE bool capture();
318 
319  /** DBUS interface function.
320  * Loop frames specified by the exposure control continuously until stopped.
321  */
322  Q_SCRIPTABLE Q_NOREPLY void loop();
323 
324  /** DBUS interface function.
325  * Set guiding options. The options must be set before starting the guiding operation. If no options are set, the options loaded from the user configuration are used.
326  * @param enable if true, it will select a subframe around the guide star depending on the boxSize size.
327  */
328  Q_SCRIPTABLE Q_NOREPLY void setSubFrameEnabled(bool enable);
329 
330  /** DBUS interface function.
331  * Selects which guiding process to utilize for calibration & guiding.
332  * @param type Type of guider process to use. 0 for internal guider, 1 for external PHD2, 2 for external lin_guider. Pass -1 to select default guider in options.
333  * @return True if guiding is switched to the new requested type. False otherwise.
334  */
335  Q_SCRIPTABLE bool setGuiderType(int type);
336 
337  /** DBUS interface function.
338  * @brief axisDelta returns the last immediate axis delta deviation in arcseconds. This is the deviation of locked star position when guiding started.
339  * @return List of doubles. First member is RA deviation. Second member is DE deviation.
340  */
341  Q_SCRIPTABLE QList<double> axisDelta();
342 
343  /** DBUS interface function.
344  * @brief axisSigma return axis sigma deviation in arcseconds RMS. This is the RMS deviation of locked star position when guiding started.
345  * @return List of doubles. First member is RA deviation. Second member is DE deviation.
346  */
347  Q_SCRIPTABLE QList<double> axisSigma();
348 
349  /**
350  * @brief checkCamera Check all CCD parameters and ensure all variables are updated to reflect the selected CCD
351  * @param ccdNum CCD index number in the CCD selection combo box
352  */
353  void checkCamera(int ccdNum = -1);
354 
355  /**
356  * @brief checkExposureValue This function is called by the INDI framework whenever there is a new exposure value. We use it to know if there is a problem with the exposure
357  * @param targetChip Chip for which the exposure is undergoing
358  * @param exposure numbers of seconds left in the exposure
359  * @param expState State of the exposure property
360  */
361  void checkExposureValue(ISD::CameraChip *targetChip, double exposure, IPState expState);
362 
363  /**
364  * @brief newFITS is called by the INDI framework whenever there is a new BLOB arriving
365  */
366  void processData(const QSharedPointer<FITSData> &data);
367 
368  /**
369  * @brief setST4 Sets a new ST4 device from the combobox index
370  * @param index Index of selected ST4 in the combobox
371  */
372  void setGuider(int index);
373 
374  /**
375  * @brief Set telescope and guide scope info. All measurements is in millimeters.
376  * @param primaryFocalLength Primary Telescope Focal Length. Set to 0 to skip setting this value.
377  * @param primaryAperture Primary Telescope Aperture. Set to 0 to skip setting this value.
378  * @param guideFocalLength Guide Telescope Focal Length. Set to 0 to skip setting this value.
379  * @param guideAperture Guide Telescope Aperture. Set to 0 to skip setting this value.
380  */
381  void setTelescopeInfo(double primaryFocalLength, double primaryAperture, double guideFocalLength, double guideAperture);
382 
383  // This Function will allow PHD2 to update the exposure values to the recommended ones.
384  QString setRecommendedExposureValues(QList<double> values);
385 
386  // Append Log entry
387  void appendLogText(const QString &);
388 
389  // Update Guide module status
390  void setStatus(Ekos::GuideState newState);
391 
392  // Update Capture Module status
393  void setCaptureStatus(Ekos::CaptureState newState);
394  // Update Mount module status
395  void setMountStatus(ISD::Mount::Status newState);
396  void setMountCoords(const SkyPoint &position, ISD::Mount::PierSide pierSide, const dms &ha);
397 
398  // Update Pier Side
399  void setPierSide(ISD::Mount::PierSide newSide);
400 
401  // Star Position
402  void setStarPosition(const QVector3D &newCenter, bool updateNow);
403 
404  // Capture
405  void setCaptureComplete();
406 
407  // Send pulse to ST4 driver
408  bool sendMultiPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs);
409  bool sendSinglePulse(GuideDirection dir, int msecs);
410 
411  /**
412  * @brief setDECSwap Change ST4 declination pulse direction. +DEC pulses increase DEC if swap is OFF. When on +DEC pulses result in decreasing DEC.
413  * @param enable True to enable DEC swap. Off to disable it.
414  */
415  void setDECSwap(bool enable);
416 
417  //plot slots
418  void handleVerticalPlotSizeChange();
419  void handleHorizontalPlotSizeChange();
420  void clearGuideGraphs();
421  void clearCalibrationGraphs();
422  void slotAutoScaleGraphs();
423  void buildTarget();
424  void guideHistory();
425  void setLatestGuidePoint(bool isChecked);
426 
427  void updateDirectionsFromPHD2(const QString &mode);
428 
429  void guideAfterMeridianFlip();
430 
431  protected slots:
432  void updateTelescopeType(int index);
433  void updateCCDBin(int index);
434 
435  /**
436  * @brief processCCDNumber Process number properties arriving from CCD. Currently, binning changes are processed.
437  * @param nvp pointer to number property.
438  */
439  void processCCDNumber(INumberVectorProperty *nvp);
440 
441  /**
442  * @brief setTrackingStar Gets called when the user select a star in the guide frame
443  * @param x X coordinate of star
444  * @param y Y coordinate of star
445  */
446  void setTrackingStar(int x, int y);
447 
448  void saveDefaultGuideExposure();
449 
450  void updateTrackingBoxSize(int currentIndex);
451 
452  //void onXscaleChanged( int i );
453  //void onYscaleChanged( int i );
454  void onThresholdChanged(int i);
455  void onEnableDirRA(bool enable);
456  void onEnableDirDEC(bool enable);
457  void syncSettings();
458 
459  void setAxisDelta(double ra, double de);
460  void setAxisSigma(double ra, double de);
461  void setAxisPulse(double ra, double de);
462  void setSNR(double snr);
463  void calibrationUpdate(GuideInterface::CalibrationUpdateType type, const QString &message = QString(""), double dx = 0,
464  double dy = 0);
465 
466  void processGuideOptions();
467  void configSEPMultistarOptions();
468 
469  void onControlDirectionChanged(bool enable);
470  void updatePHD2Directions();
471 
472  void showFITSViewer();
473 
474  void processCaptureTimeout();
475 
476  void nonGuidedDither();
477 
478  signals:
479  void newLog(const QString &text);
480  void newStatus(Ekos::GuideState status);
481 
482  void newImage(const QSharedPointer<FITSView> &view);
483  void newStarPixmap(QPixmap &);
484 
485  // Immediate deviations in arcsecs
486  void newAxisDelta(double ra, double de);
487  // Sigma deviations in arcsecs RMS
488  void newAxisSigma(double ra, double de);
489 
490  void guideStats(double raError, double decError, int raPulse, int decPulse,
491  double snr, double skyBg, int numStars);
492 
493  void guideChipUpdated(ISD::CameraChip *);
494  void settingsUpdated(const QJsonObject &settings);
495  void driverTimedout(const QString &deviceName);
496 
497  private slots:
498  void setDefaultGuider(const QString &driver);
499  void setDefaultCCD(const QString &ccd);
500 
501  private:
502 
503  void resizeEvent(QResizeEvent *event) override;
504 
505  /**
506  * @brief updateGuideParams Update the guider and frame parameters due to any changes in the mount and/or ccd frame
507  */
508  void updateGuideParams();
509 
510  /**
511  * @brief syncTrackingBoxPosition Sync the tracking box to the current selected star center
512  */
513  void syncTrackingBoxPosition();
514 
515  /**
516  * @brief loadSettings Loads and applies all settings from KStars options
517  */
518  void loadSettings();
519 
520  /**
521  * @brief saveSettings Saves all current settings into KStars options
522  */
523  void saveSettings();
524 
525  /**
526  * @brief setBusy Indicate busy status within the module visually
527  * @param enable True if module is busy, false otherwise
528  */
529  void setBusy(bool enable);
530 
531  /**
532  * @brief setBLOBEnabled Enable or disable BLOB reception from current CCD if using external guider
533  * @param enable True to enable BLOB reception, false to disable BLOB reception
534  * @param name CCD to enable to disable. If empty (default), then action is applied to all CCDs.
535  */
536  void setExternalGuiderBLOBEnabled(bool enable);
537 
538  /**
539  * @brief prepareCapture Set common settings for capture for guide module
540  * @param targetChip target Chip
541  */
542  void prepareCapture(ISD::CameraChip *targetChip);
543 
544 
545  void handleManualDither();
546 
547  // Operation stack
548  void buildOperationStack(GuideState operation);
549  bool executeOperationStack();
550  bool executeOneOperation(GuideState operation);
551 
552  // Init Functions
553  void initPlots();
554  void initDriftGraph();
555  void initCalibrationPlot();
556  void initView();
557  void initConnections();
558 
559  bool captureOneFrame();
560 
561  // Driver
562  void reconnectDriver(const QString &camera, const QString &via, const QVariantMap &settings);
563 
564  // Operation Stack
565  QStack<GuideState> operationStack;
566 
567  // Devices
568  ISD::Camera *m_Camera { nullptr };
569  //This is for the configure PHD2 camera method.
570  QString lastPHD2CameraName;
571  ISD::Mount *m_Mount { nullptr };
572  ISD::Guider *m_Guider { nullptr };
573  ISD::AdaptiveOptics *m_AO { nullptr };
574 
575  // Device Containers
576  QList<ISD::Camera *> m_Cameras;
577  QList<ISD::Mount *> m_Mounts;
578  QList<ISD::Guider *> m_Guiders;
579  QList<ISD::AdaptiveOptics *> m_AdaptiveOptics;
580 
581  // Guider process
582  GuideInterface *m_GuiderInstance { nullptr };
583  GuiderType guiderType { GUIDE_INTERNAL };
584 
585  // Star
586  QVector3D starCenter;
587 
588  // Guide Params
589  int guideBinIndex { 0 }; // Selected or saved binning for guiding
590  double ccdPixelSizeX { -1 };
591  double ccdPixelSizeY { -1 };
592  double aperture { -1 };
593  double focal_length { -1 };
594  double guideDeviationRA { 0 };
595  double guideDeviationDEC { 0 };
596  double pixScaleX { -1 };
597  double pixScaleY { -1 };
598 
599  // State
600  GuideState m_State { GUIDE_IDLE };
601  GuideStateWidget *guideStateWidget { nullptr };
602 
603  // Guide timer
604  QElapsedTimer guideTimer;
605 
606  // Capture timeout timer
607  QTimer captureTimeout;
608  uint8_t m_CaptureTimeoutCounter { 0 };
609  uint8_t m_DeviceRestartCounter { 0 };
610 
611  // Pulse Timer
612  QTimer m_PulseTimer;
613 
614  // Log
615  QStringList m_LogText;
616 
617  // Misc
618  bool useGuideHead { false };
619 
620  // Progress Activity Indicator
621  QProgressIndicator *pi { nullptr };
622 
623  // Options
624  OpsCalibration *opsCalibration { nullptr };
625  OpsGuide *opsGuide { nullptr };
626  OpsDither *opsDither { nullptr };
627  OpsGPG *opsGPG { nullptr };
628 
629  // Guide Frame
630  QSharedPointer<GuideView> m_GuideView;
631 
632  // Calibration done already?
633  bool calibrationComplete { false };
634 
635  // Was the modified frame subFramed?
636  bool subFramed { false };
637 
638  // CCD Chip frame settings
640 
641  // Profile Pixmap
642  QPixmap profilePixmap;
643  // drift plot
644  QPixmap driftPlotPixmap;
645 
646  // Flag to start auto calibration followed immediately by guiding
647  //bool autoCalibrateGuide { false };
648 
649  // Pointers of guider processes
650  QPointer<InternalGuider> internalGuider;
651  QPointer<PHD2> phd2Guider;
652  QPointer<LinGuider> linGuider;
654  QSharedPointer<FITSData> m_ImageData;
655 
656  // Dark Processor
657  QPointer<DarkProcessor> m_DarkProcessor;
658 
659  double primaryFL = -1, primaryAperture = -1, guideFL = -1, guideAperture = -1;
660  ISD::Mount::Status m_MountStatus { ISD::Mount::MOUNT_IDLE };
661 
662  bool graphOnLatestPt = true;
663 
664  //This is for enforcing the PHD2 Star lock when Guide is pressed,
665  //autostar is not selected, and the user has chosen a star.
666  //This connection storage is so that the connection can be disconnected after enforcement
667  QMetaObject::Connection guideConnect;
668 
669  QCPItemText *calLabel { nullptr };
670 
671  // The scales of these zoom levels are defined in Guide::zoomX().
672  static constexpr int defaultXZoomLevel = 3;
673  int driftGraphZoomLevel {defaultXZoomLevel};
674 
675 
676  // The accumulated non-guided dither offsets (in milliseconds) in the RA and DEC directions.
677  int nonGuidedDitherRaOffsetMsec = 0, nonGuidedDitherDecOffsetMsec = 0;
678 
679  // Random generator for non guided dithering
680  std::mt19937 nonGuidedPulseGenerator;
681 
682  // Flag to check if random generator for non guided dithering is initialized.
683  bool isNonGuidedDitherInitialized = false;
684 
685  // Reset non guided dithering properties and initialize the random generator seed if not already done.
686  // Should be called in Guide::Guide() for initial seed initialization, and then in setCaptureStatus to reset accumulated drift
687  // every time a capture task is completed or aborted.
688  void resetNonGuidedDither();
689 };
690 }
Q_OBJECTQ_OBJECT
Q_SCRIPTABLE bool suspend()
DBUS interface function.
Definition: guide.cpp:1479
Q_SCRIPTABLE bool setGuider(const QString &device)
DBUS interface function.
Definition: guide.cpp:842
Q_PROPERTY(...)
Q_SCRIPTABLE bool connectGuider()
DBUS interface function.
Definition: guide.cpp:2943
void processData(const QSharedPointer< FITSData > &data)
newFITS is called by the INDI framework whenever there is a new BLOB arriving
Definition: guide.cpp:1126
Q_SCRIPTABLE bool setGuiderType(int type)
DBUS interface function.
Definition: guide.cpp:1972
Q_SCRIPTABLE Q_NOREPLY void setGuideAlgorithmIndex(int index)
DBUS interface function.
Definition: guide.cpp:1635
Q_SCRIPTABLE Q_NOREPLY void setDarkFrameEnabled(bool enable)
DBUS interface function.
Definition: guide.cpp:1890
Ekos is an advanced Astrophotography tool for Linux. It is based on a modular extensible framework to...
Definition: align.cpp:70
Stores dms coordinates for a point in the sky. for converting between coordinate systems.
Definition: skypoint.h:44
Q_CLASSINFO(Name, Value)
bool addGuider(ISD::Guider *device)
Add new Guider.
Definition: guide.cpp:798
virtual bool event(QEvent *event) override
bool addGuideHead(ISD::Camera *device)
Add new Camera.
Definition: guide.cpp:433
void checkCamera(int ccdNum=-1)
checkCamera Check all CCD parameters and ensure all variables are updated to reflect the selected CCD
Definition: guide.cpp:501
bool addMount(ISD::Mount *device)
Add new Mount.
Definition: guide.cpp:450
void setTrackingStar(int x, int y)
setTrackingStar Gets called when the user select a star in the guide frame
Definition: guide.cpp:2367
Q_SCRIPTABLE bool resume()
DBUS interface function.
Definition: guide.cpp:1489
Q_SCRIPTABLE bool dither()
DBUS interface function.
Definition: guide.cpp:1443
Q_SCRIPTABLE Ekos::GuideState status()
getStatus Return guide module status
Definition: guide.h:121
The QProgressIndicator class lets an application display a progress indicator to show that a long tas...
Q_SCRIPTABLE bool disconnectGuider()
DBUS interface function.
Definition: guide.cpp:2949
void processCCDNumber(INumberVectorProperty *nvp)
processCCDNumber Process number properties arriving from CCD.
Definition: guide.cpp:1831
Q_SCRIPTABLE Q_NOREPLY void loop()
DBUS interface function.
Definition: guide.cpp:3463
Q_SCRIPTABLE Q_NOREPLY void setCalibrationAutoStar(bool enable)
DBUS interface function.
Definition: guide.cpp:1615
void checkExposureValue(ISD::CameraChip *targetChip, double exposure, IPState expState)
checkExposureValue This function is called by the INDI framework whenever there is a new exposure val...
Definition: guide.cpp:1854
Q_SCRIPTABLE bool capture()
DBUS interface function.
Definition: guide.cpp:874
Performs calibration and autoguiding using an ST4 port or directly via the INDI driver....
Definition: guide.h:50
Primary window to view monochrome and color FITS images. The FITSviewer can open multiple images each...
Definition: fitsviewer.h:48
Q_SCRIPTABLE Q_NOREPLY void setDitherSettings(bool enable, double value)
DBUS interface function.
Definition: guide.cpp:1650
CaptureState
Capture states.
Definition: ekos.h:91
A text label.
Definition: qcustomplot.h:6571
bool addAdaptiveOptics(ISD::AdaptiveOptics *device)
Add new Adaptive Optics.
Definition: guide.cpp:821
Q_SCRIPTABLE bool calibrate()
DBUS interface function.
Definition: guide.cpp:1335
QString join(const QString &separator) const const
Q_SCRIPTABLE bool setCamera(const QString &device)
DBUS interface function.
Definition: guide.cpp:468
Q_SCRIPTABLE Q_NOREPLY void clearCalibration()
DBUS interface function.
Definition: guide.cpp:1657
Q_SCRIPTABLE QStringList getGuiders()
DBUS interface function.
Definition: guide.cpp:1324
An angle, stored as degrees, but expressible in many ways.
Definition: dms.h:37
Q_SCRIPTABLE Q_NOREPLY void setCalibrationPulseDuration(int pulseDuration)
DBUS interface function.
Definition: guide.cpp:1625
Q_SCRIPTABLE Q_NOREPLY void setCalibrationAutoSquareSize(bool enable)
DBUS interface function.
Definition: guide.cpp:1620
bool addCamera(ISD::Camera *device)
Add new Camera.
Definition: guide.cpp:306
void clearLog()
clearLog As the name suggests
Definition: guide.cpp:1276
QString getLogText()
Definition: guide.h:242
void setDECSwap(bool enable)
setDECSwap Change ST4 declination pulse direction.
Definition: guide.cpp:1282
Q_SCRIPTABLE Q_NOREPLY void setExposure(double value)
DBUS interface function.
Definition: guide.cpp:1605
The main change relative to fitsview is to add the capability of displaying the 'neighbor guide stars...
Definition: guideview.h:21
Q_SCRIPTABLE bool guide()
DBUS interface function.
Definition: guide.cpp:1373
Q_SCRIPTABLE Q_NOREPLY void setCalibrationTwoAxis(bool enable)
DBUS interface function.
Definition: guide.cpp:1610
void setTelescopeInfo(double primaryFocalLength, double primaryAperture, double guideFocalLength, double guideAperture)
Set telescope and guide scope info.
Definition: guide.cpp:606
Q_SCRIPTABLE Q_NOREPLY void setGuideBoxSizeIndex(int index)
DBUS interface function.
Definition: guide.cpp:1630
QString message
QVector3D getStarPosition()
getStarPosition Return star center as selected by the user or auto-detected by KStars
Definition: guide.h:251
Q_SCRIPTABLE bool abort()
DBUS interface function.
Definition: guide.cpp:947
Q_SCRIPTABLE Q_NOREPLY void setSubFrameEnabled(bool enable)
DBUS interface function.
Definition: guide.cpp:1640
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Fri Aug 12 2022 04:00:54 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.