Ekos::Scheduler

Search for usage in LXR

#include <scheduler.h>

Inheritance diagram for Ekos::Scheduler:

Public Types

enum  SchedulerColumns {
  SCHEDCOL_NAME = 0, SCHEDCOL_STATUS, SCHEDCOL_CAPTURES, SCHEDCOL_ALTITUDE,
  SCHEDCOL_STARTTIME, SCHEDCOL_ENDTIME
}
 
- Public Types inherited from QWidget
enum  RenderFlag
 
- Public Types inherited from QPaintDevice
enum  PaintDeviceMetric
 

Properties

QStringList logText
 
QString profile
 
Ekos::SchedulerState status
 
- Properties inherited from QWidget
 acceptDrops
 
 accessibleDescription
 
 accessibleName
 
 autoFillBackground
 
 baseSize
 
 childrenRect
 
 childrenRegion
 
 contextMenuPolicy
 
 cursor
 
 enabled
 
 focus
 
 focusPolicy
 
 font
 
 frameGeometry
 
 frameSize
 
 fullScreen
 
 geometry
 
 height
 
 inputMethodHints
 
 isActiveWindow
 
 layoutDirection
 
 locale
 
 maximized
 
 maximumHeight
 
 maximumSize
 
 maximumWidth
 
 minimized
 
 minimumHeight
 
 minimumSize
 
 minimumSizeHint
 
 minimumWidth
 
 modal
 
 mouseTracking
 
 normalGeometry
 
 palette
 
 pos
 
 rect
 
 size
 
 sizeHint
 
 sizeIncrement
 
 sizePolicy
 
 statusTip
 
 styleSheet
 
 tabletTracking
 
 toolTip
 
 toolTipDuration
 
 updatesEnabled
 
 visible
 
 whatsThis
 
 width
 
 windowFilePath
 
 windowFlags
 
 windowIcon
 
 windowIconText
 
 windowModality
 
 windowModified
 
 windowOpacity
 
 windowTitle
 
 x
 
 y
 
- Properties inherited from QObject
 objectName
 

Signals

void jobEnded (const QString &jobName, const QString &endReason)
 
void jobStarted (const QString &jobName)
 
void jobsUpdated (QJsonArray jobsList)
 
void newLog (const QString &text)
 
void newStatus (Ekos::SchedulerState state)
 
void newTarget (const QString &)
 
void targetDistance (double distance)
 
void weatherChanged (ISD::Weather::Status state)
 

Public Member Functions

 Scheduler ()
 
 Scheduler (const QString path, const QString interface, const QString &ekosPathStr, const QString &ekosInterfaceStr)
 
SchedulerJob * activeJob ()
 
void addJob ()
 
void addObject (SkyObject *object)
 
void appendLogText (const QString &)
 
void applyConfig ()
 
void clearLog ()
 
bool createJobSequence (XMLEle *root, const QString &prefix, const QString &outputDir)
 
QString getCurrentJobName ()
 
ErrorHandlingStrategy getErrorHandlingStrategy ()
 
QJsonArray getJSONJobs ()
 
QString getLogText ()
 
void getNextAction ()
 
QJsonObject getSchedulerSettings ()
 
XMLEle * getSequenceJobRoot (const QString &filename) const
 
bool importMosaic (const QJsonObject &payload)
 
Q_SCRIPTABLE bool loadScheduler (const QString &fileURL)
 
QStringList logText ()
 
QSharedPointer< SchedulerModuleState > moduleState () const
 
QString profile ()
 
Q_SCRIPTABLE Q_NOREPLY void removeAllJobs ()
 
void removeJob ()
 
void removeOneJob (int index)
 
Q_SCRIPTABLE void resetAllJobs ()
 
void saveJob ()
 
Q_SCRIPTABLE bool saveScheduler (const QUrl &fileURL)
 
void setAbortedJobManagementSettings (const QJsonObject &settings)
 
void setErrorHandlingStrategy (ErrorHandlingStrategy strategy)
 
void setJobCompletionConditions (const QJsonObject &settings)
 
void setJobConstraints (const QJsonObject &settings)
 
void setJobStartupConditions (const QJsonObject &settings)
 
void setObservatoryShutdownProcedure (const QJsonObject &settings)
 
void setObservatoryStartupProcedure (const QJsonObject &settings)
 
void setPrimarySettings (const QJsonObject &settings)
 
void setProfile (const QString &profile)
 
Q_SCRIPTABLE void setSequence (const QString &sequenceFileURL)
 
void setSettings (const QJsonObject &settings)
 
Q_SCRIPTABLE void sortJobsPerAltitude ()
 
Q_SCRIPTABLE Q_NOREPLY void start ()
 
void startCapture (bool restart=false)
 
Ekos::SchedulerState status ()
 
Q_SCRIPTABLE Q_NOREPLY void stop ()
 
void toggleScheduler ()
 
void updateTable ()
 
- Public Member Functions inherited from QWidget
 QWidget (QWidget *parent, Qt::WindowFlags f)
 
bool acceptDrops () const const
 
QString accessibleDescription () const const
 
QString accessibleName () const const
 
QList< QAction * > actions () const const
 
void activateWindow ()
 
void addAction (QAction *action)
 
void addActions (QList< QAction * > actions)
 
void adjustSize ()
 
bool autoFillBackground () const const
 
QPalette::ColorRole backgroundRole () const const
 
QBackingStorebackingStore () const const
 
QSize baseSize () const const
 
QWidgetchildAt (const QPoint &p) const const
 
QWidgetchildAt (int x, int y) const const
 
QRect childrenRect () const const
 
QRegion childrenRegion () const const
 
void clearFocus ()
 
void clearMask ()
 
bool close ()
 
QMargins contentsMargins () const const
 
QRect contentsRect () const const
 
Qt::ContextMenuPolicy contextMenuPolicy () const const
 
QCursor cursor () const const
 
void customContextMenuRequested (const QPoint &pos)
 
WId effectiveWinId () const const
 
void ensurePolished () const const
 
Qt::FocusPolicy focusPolicy () const const
 
QWidgetfocusProxy () const const
 
QWidgetfocusWidget () const const
 
const QFontfont () const const
 
QFontInfo fontInfo () const const
 
QFontMetrics fontMetrics () const const
 
QPalette::ColorRole foregroundRole () const const
 
QRect frameGeometry () const const
 
QSize frameSize () const const
 
const QRectgeometry () const const
 
void getContentsMargins (int *left, int *top, int *right, int *bottom) const const
 
QPixmap grab (const QRect &rectangle)
 
void grabGesture (Qt::GestureType gesture, Qt::GestureFlags flags)
 
void grabKeyboard ()
 
void grabMouse ()
 
void grabMouse (const QCursor &cursor)
 
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context)
 
QGraphicsEffectgraphicsEffect () const const
 
QGraphicsProxyWidgetgraphicsProxyWidget () const const
 
bool hasEditFocus () const const
 
bool hasFocus () const const
 
virtual bool hasHeightForWidth () const const
 
bool hasMouseTracking () const const
 
bool hasTabletTracking () const const
 
int height () const const
 
virtual int heightForWidth (int w) const const
 
void hide ()
 
Qt::InputMethodHints inputMethodHints () const const
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query) const const
 
void insertAction (QAction *before, QAction *action)
 
void insertActions (QAction *before, QList< QAction * > actions)
 
bool isActiveWindow () const const
 
bool isAncestorOf (const QWidget *child) const const
 
bool isEnabled () const const
 
bool isEnabledTo (const QWidget *ancestor) const const
 
bool isEnabledToTLW () const const
 
bool isFullScreen () const const
 
bool isHidden () const const
 
bool isMaximized () const const
 
bool isMinimized () const const
 
bool isModal () const const
 
bool isTopLevel () const const
 
bool isVisible () const const
 
bool isVisibleTo (const QWidget *ancestor) const const
 
bool isWindow () const const
 
bool isWindowModified () const const
 
QLayoutlayout () const const
 
Qt::LayoutDirection layoutDirection () const const
 
QLocale locale () const const
 
void lower ()
 
QPoint mapFrom (const QWidget *parent, const QPoint &pos) const const
 
QPoint mapFromGlobal (const QPoint &pos) const const
 
QPoint mapFromParent (const QPoint &pos) const const
 
QPoint mapTo (const QWidget *parent, const QPoint &pos) const const
 
QPoint mapToGlobal (const QPoint &pos) const const
 
QPoint mapToParent (const QPoint &pos) const const
 
QRegion mask () const const
 
int maximumHeight () const const
 
QSize maximumSize () const const
 
int maximumWidth () const const
 
int minimumHeight () const const
 
QSize minimumSize () const const
 
virtual QSize minimumSizeHint () const const
 
int minimumWidth () const const
 
void move (const QPoint &)
 
void move (int x, int y)
 
QWidgetnativeParentWidget () const const
 
QWidgetnextInFocusChain () const const
 
QRect normalGeometry () const const
 
void overrideWindowFlags (Qt::WindowFlags flags)
 
virtual QPaintEnginepaintEngine () const const override
 
const QPalettepalette () const const
 
QWidgetparentWidget () const const
 
QPoint pos () const const
 
QWidgetpreviousInFocusChain () const const
 
 QWIDGETSIZE_MAX QWIDGETSIZE_MAX
 
void raise ()
 
QRect rect () const const
 
void releaseKeyboard ()
 
void releaseMouse ()
 
void releaseShortcut (int id)
 
void removeAction (QAction *action)
 
void render (QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags)
 
void render (QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags)
 
void repaint ()
 
void repaint (const QRect &rect)
 
void repaint (const QRegion &rgn)
 
void repaint (int x, int y, int w, int h)
 
void resize (const QSize &)
 
void resize (int w, int h)
 
bool restoreGeometry (const QByteArray &geometry)
 
QByteArray saveGeometry () const const
 
QScreenscreen () const const
 
void scroll (int dx, int dy)
 
void scroll (int dx, int dy, const QRect &r)
 
void setAcceptDrops (bool on)
 
void setAccessibleDescription (const QString &description)
 
void setAccessibleName (const QString &name)
 
void setAttribute (Qt::WidgetAttribute attribute, bool on)
 
void setAutoFillBackground (bool enabled)
 
void setBackgroundRole (QPalette::ColorRole role)
 
void setBaseSize (const QSize &)
 
void setBaseSize (int basew, int baseh)
 
void setContentsMargins (const QMargins &margins)
 
void setContentsMargins (int left, int top, int right, int bottom)
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 
void setCursor (const QCursor &)
 
void setDisabled (bool disable)
 
void setEditFocus (bool enable)
 
void setEnabled (bool)
 
void setFixedHeight (int h)
 
void setFixedSize (const QSize &s)
 
void setFixedSize (int w, int h)
 
void setFixedWidth (int w)
 
void setFocus ()
 
void setFocus (Qt::FocusReason reason)
 
void setFocusPolicy (Qt::FocusPolicy policy)
 
void setFocusProxy (QWidget *w)
 
void setFont (const QFont &)
 
void setForegroundRole (QPalette::ColorRole role)
 
void setGeometry (const QRect &)
 
void setGeometry (int x, int y, int w, int h)
 
void setGraphicsEffect (QGraphicsEffect *effect)
 
void setHidden (bool hidden)
 
void setInputMethodHints (Qt::InputMethodHints hints)
 
void setLayout (QLayout *layout)
 
void setLayoutDirection (Qt::LayoutDirection direction)
 
void setLocale (const QLocale &locale)
 
void setMask (const QBitmap &bitmap)
 
void setMask (const QRegion &region)
 
void setMaximumHeight (int maxh)
 
void setMaximumSize (const QSize &)
 
void setMaximumSize (int maxw, int maxh)
 
void setMaximumWidth (int maxw)
 
void setMinimumHeight (int minh)
 
void setMinimumSize (const QSize &)
 
void setMinimumSize (int minw, int minh)
 
void setMinimumWidth (int minw)
 
void setMouseTracking (bool enable)
 
void setPalette (const QPalette &)
 
void setParent (QWidget *parent)
 
void setParent (QWidget *parent, Qt::WindowFlags f)
 
void setShortcutAutoRepeat (int id, bool enable)
 
void setShortcutEnabled (int id, bool enable)
 
void setSizeIncrement (const QSize &)
 
void setSizeIncrement (int w, int h)
 
void setSizePolicy (QSizePolicy)
 
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 
void setStatusTip (const QString &)
 
void setStyle (QStyle *style)
 
void setStyleSheet (const QString &styleSheet)
 
void setTabletTracking (bool enable)
 
void setToolTip (const QString &)
 
void setToolTipDuration (int msec)
 
void setUpdatesEnabled (bool enable)
 
void setupUi (QWidget *widget)
 
virtual void setVisible (bool visible)
 
void setWhatsThis (const QString &)
 
void setWindowFilePath (const QString &filePath)
 
void setWindowFlag (Qt::WindowType flag, bool on)
 
void setWindowFlags (Qt::WindowFlags type)
 
void setWindowIcon (const QIcon &icon)
 
void setWindowIconText (const QString &)
 
void setWindowModality (Qt::WindowModality windowModality)
 
void setWindowModified (bool)
 
void setWindowOpacity (qreal level)
 
void setWindowRole (const QString &role)
 
void setWindowState (Qt::WindowStates windowState)
 
void setWindowTitle (const QString &)
 
void show ()
 
void showFullScreen ()
 
void showMaximized ()
 
void showMinimized ()
 
void showNormal ()
 
QSize size () const const
 
virtual QSize sizeHint () const const
 
QSize sizeIncrement () const const
 
QSizePolicy sizePolicy () const const
 
void stackUnder (QWidget *w)
 
QString statusTip () const const
 
QStylestyle () const const
 
QString styleSheet () const const
 
bool testAttribute (Qt::WidgetAttribute attribute) const const
 
QString toolTip () const const
 
int toolTipDuration () const const
 
QWidgettopLevelWidget () const const
 
bool underMouse () const const
 
void ungrabGesture (Qt::GestureType gesture)
 
void unsetCursor ()
 
void unsetLayoutDirection ()
 
void unsetLocale ()
 
void update ()
 
void update (const QRect &rect)
 
void update (const QRegion &rgn)
 
void update (int x, int y, int w, int h)
 
void updateGeometry ()
 
bool updatesEnabled () const const
 
QRegion visibleRegion () const const
 
QString whatsThis () const const
 
int width () const const
 
QWidgetwindow () const const
 
QString windowFilePath () const const
 
Qt::WindowFlags windowFlags () const const
 
QWindowwindowHandle () const const
 
QIcon windowIcon () const const
 
void windowIconChanged (const QIcon &icon)
 
QString windowIconText () const const
 
void windowIconTextChanged (const QString &iconText)
 
Qt::WindowModality windowModality () const const
 
qreal windowOpacity () const const
 
QString windowRole () const const
 
Qt::WindowStates windowState () const const
 
QString windowTitle () const const
 
void windowTitleChanged (const QString &title)
 
Qt::WindowType windowType () const const
 
WId winId () const const
 
int x () const const
 
int y () const const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 
- Public Member Functions inherited from QPaintDevice
int colorCount () const const
 
int depth () const const
 
int devicePixelRatio () const const
 
qreal devicePixelRatioF () const const
 
int height () const const
 
int heightMM () const const
 
int logicalDpiX () const const
 
int logicalDpiY () const const
 
bool paintingActive () const const
 
int physicalDpiX () const const
 
int physicalDpiY () const const
 
int width () const const
 
int widthMM () const const
 

Static Public Member Functions

static bool estimateJobTime (SchedulerJob *schedJob, const QMap< QString, uint16_t > &capturedFramesCount, Scheduler *scheduler)
 
static bool loadSequenceQueue (const QString &fileURL, SchedulerJob *schedJob, QList< SequenceJob * > &jobs, bool &hasAutoFocus, Scheduler *scheduler)
 
- Static Public Member Functions inherited from QWidget
QWidgetcreateWindowContainer (QWindow *window, QWidget *parent, Qt::WindowFlags flags)
 
QWidgetfind (WId id)
 
QWidgetkeyboardGrabber ()
 
QWidgetmouseGrabber ()
 
void setTabOrder (QWidget *first, QWidget *second)
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Protected Slots

bool appendEkosScheduleList (const QString &fileURL)
 
void checkInterfaceReady (QDBusInterface *iface)
 
void checkJobStage ()
 
void checkJobStageEplogue ()
 
bool checkStatus ()
 
void checkTwilightWarning (bool enabled)
 
void clickQueueTable (QModelIndex index)
 
void findNextJob ()
 
void load (bool clearQueue, const QString &filename="")
 
void loadJob (QModelIndex i)
 
void moveJobDown ()
 
void moveJobUp ()
 
void pause ()
 
void queueTableSelectionChanged (QModelIndex current, QModelIndex previous)
 
void registerNewDevice (const QString &name, int interface)
 
void registerNewModule (const QString &name)
 
bool reorderJobs (QList< SchedulerJob * > reordered_sublist)
 
void resetJobEdit ()
 
void resumeCheckStatus ()
 
void save ()
 
void saveAs ()
 
void selectFITS ()
 
void selectObject ()
 
void selectSequence ()
 
void selectShutdownScript ()
 
void selectStartupScript ()
 
void setAlignStatus (Ekos::AlignState status)
 
void setCaptureComplete (const QVariantMap &metadata)
 
void setCaptureStatus (Ekos::CaptureState status)
 
void setEkosCommunicationStatus (Ekos::CommunicationStatus status)
 
void setFocusStatus (Ekos::FocusState status)
 
void setGuideStatus (Ekos::GuideState status)
 
void setINDICommunicationStatus (Ekos::CommunicationStatus status)
 
void setJobAddApply (bool add_mode)
 
void setJobManipulation (bool can_reorder, bool can_delete)
 
void setMountStatus (ISD::Mount::Status status)
 
void setPaused ()
 
void setWeatherStatus (ISD::Weather::Status status)
 
bool shouldSchedulerSleep (SchedulerJob *currentJob)
 
void simClockScaleChanged (float)
 
void simClockTimeChanged ()
 
void solverDone (bool timedOut, bool success, const FITSImage::Solution &solution, double elapsedSeconds)
 
void startJobEvaluation ()
 
void stopCurrentJobAction ()
 
bool syncControl (const QJsonObject &settings, const QString &key, QWidget *widget)
 
void syncGUIToGeneralSettings ()
 
void syncGUIToJob (SchedulerJob *job)
 
void syncProperties ()
 
void updateNightTime (SchedulerJob const *job=nullptr)
 
void wakeUpScheduler ()
 

Protected Member Functions

void setDirty ()
 
void setJobStatusCells (int row)
 
void watchJobChanges (bool enable)
 
- Protected Member Functions inherited from QWidget
virtual void actionEvent (QActionEvent *event)
 
virtual void changeEvent (QEvent *event)
 
virtual void closeEvent (QCloseEvent *event)
 
virtual void contextMenuEvent (QContextMenuEvent *event)
 
void create (WId window, bool initializeWindow, bool destroyOldWindow)
 
void destroy (bool destroyWindow, bool destroySubWindows)
 
virtual void dragEnterEvent (QDragEnterEvent *event)
 
virtual void dragLeaveEvent (QDragLeaveEvent *event)
 
virtual void dragMoveEvent (QDragMoveEvent *event)
 
virtual void dropEvent (QDropEvent *event)
 
virtual void enterEvent (QEvent *event)
 
virtual bool event (QEvent *event) override
 
virtual void focusInEvent (QFocusEvent *event)
 
bool focusNextChild ()
 
virtual bool focusNextPrevChild (bool next)
 
virtual void focusOutEvent (QFocusEvent *event)
 
bool focusPreviousChild ()
 
virtual void hideEvent (QHideEvent *event)
 
virtual void initPainter (QPainter *painter) const const override
 
virtual void inputMethodEvent (QInputMethodEvent *event)
 
virtual void keyPressEvent (QKeyEvent *event)
 
virtual void keyReleaseEvent (QKeyEvent *event)
 
virtual void leaveEvent (QEvent *event)
 
virtual int metric (QPaintDevice::PaintDeviceMetric m) const const override
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 
virtual void mouseMoveEvent (QMouseEvent *event)
 
virtual void mousePressEvent (QMouseEvent *event)
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 
virtual void moveEvent (QMoveEvent *event)
 
virtual bool nativeEvent (const QByteArray &eventType, void *message, long *result)
 
virtual void paintEvent (QPaintEvent *event)
 
virtual void resizeEvent (QResizeEvent *event)
 
virtual void showEvent (QShowEvent *event)
 
virtual void tabletEvent (QTabletEvent *event)
 
void updateMicroFocus ()
 
virtual void wheelEvent (QWheelEvent *event)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Public Attributes inherited from QWidget
 DrawChildren
 
 DrawWindowBackground
 
 IgnoreMask
 
typedef RenderFlags
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Public Attributes inherited from QPaintDevice
 PdmDepth
 
 PdmDevicePixelRatio
 
 PdmDevicePixelRatioScaled
 
 PdmDpiX
 
 PdmDpiY
 
 PdmHeight
 
 PdmHeightMM
 
 PdmNumColors
 
 PdmPhysicalDpiX
 
 PdmPhysicalDpiY
 
 PdmWidth
 
 PdmWidthMM
 

Detailed Description

The Ekos scheduler is a simple scheduler class to orchestrate automated multi object observation jobs.

Author
Jasem Mutlaq
Version
1.2

Definition at line 49 of file scheduler.h.

Member Enumeration Documentation

◆ SchedulerColumns

Columns, in the same order as UI.

Definition at line 60 of file scheduler.h.

Constructor & Destructor Documentation

◆ Scheduler() [1/2]

Ekos::Scheduler::Scheduler ( )

Constructor, the starndard scheduler constructor.

Definition at line 231 of file scheduler.cpp.

◆ Scheduler() [2/2]

Ekos::Scheduler::Scheduler ( const QString  path,
const QString  interface,
const QString ekosPathStr,
const QString ekosInterfaceStr 
)

DebugConstructor, a constructor used in testing with a mock ekos.

Definition at line 237 of file scheduler.cpp.

Member Function Documentation

◆ addJob()

void Ekos::Scheduler::addJob ( )

addJob Add a new job from form values

Definition at line 971 of file scheduler.cpp.

◆ appendEkosScheduleList

bool Ekos::Scheduler::appendEkosScheduleList ( const QString fileURL)
protectedslot

appendEkosScheduleList Append the contents of an ESL file to the queue.

Parameters
fileURLFile URL to load contents from.
Returns
True if contents were loaded successfully, else false.

Definition at line 2625 of file scheduler.cpp.

◆ checkInterfaceReady

void Ekos::Scheduler::checkInterfaceReady ( QDBusInterface iface)
protectedslot

checkInterfaceReady Sometimes syncProperties() is not sufficient since the ready signal could have fired already and cannot be relied on to know once a module interface is ready.

Therefore, we explicitly check if the module interface is ready.

Parameters
ifaceinterface to test for readiness.

Definition at line 4408 of file scheduler.cpp.

◆ checkJobStage

void Ekos::Scheduler::checkJobStage ( )
protectedslot

checkJobStage Check the progress of the job states and make DBUS call to start the next stage until the job is complete.

Definition at line 2221 of file scheduler.cpp.

◆ checkStatus

bool Ekos::Scheduler::checkStatus ( )
protectedslot

checkJobStatus Check the overall state of the scheduler, Ekos, and INDI.

When all is OK, it calls evaluateJobs() when no job is current or executeJob() if a job is selected.

Returns
False if this function needs to be called again later, true if situation is stable and operations may continue.

Definition at line 2095 of file scheduler.cpp.

◆ checkTwilightWarning

void Ekos::Scheduler::checkTwilightWarning ( bool  enabled)
protectedslot

displayTwilightWarning Display twilight warning to user if it is unchecked.

Definition at line 4027 of file scheduler.cpp.

◆ clickQueueTable

void Ekos::Scheduler::clickQueueTable ( QModelIndex  index)
protectedslot

jobSelectionChanged Update UI state when the job list is clicked once.

Definition at line 1397 of file scheduler.cpp.

◆ createJobSequence()

bool Ekos::Scheduler::createJobSequence ( XMLEle *  root,
const QString prefix,
const QString outputDir 
)

createJobSequence Creates a job sequence for the mosaic tool given the prefix and output dir.

The currently selected sequence file is modified and a new version given the supplied parameters are saved to the output directory

Parameters
prefixPrefix to set for the job sequence
outputDirOutput dir to set for the job sequence
Returns
True if new file is saved, false otherwise

Definition at line 3967 of file scheduler.cpp.

◆ estimateJobTime()

bool Ekos::Scheduler::estimateJobTime ( SchedulerJob *  schedJob,
const QMap< QString, uint16_t > &  capturedFramesCount,
Scheduler scheduler 
)
static

estimateJobTime Estimates the time the job takes to complete based on the sequence file and what modules to utilize during the observation run.

Parameters
jobtarget job
capturedFramesCounta map of what's been captured already
schedulerinstance of the scheduler used for logging. Can be nullptr.
Returns
Estimated time in seconds.

Definition at line 3517 of file scheduler.cpp.

◆ findNextJob

void Ekos::Scheduler::findNextJob ( )
protectedslot

findNextJob Check if the job met the completion criteria, and if it did, then it search for next job candidate.

If no jobs are found, it starts the shutdown stage.

Definition at line 2984 of file scheduler.cpp.

◆ getErrorHandlingStrategy()

ErrorHandlingStrategy Ekos::Scheduler::getErrorHandlingStrategy ( )

retrieve the error handling strategy from the UI

Definition at line 3889 of file scheduler.cpp.

◆ getNextAction()

void Ekos::Scheduler::getNextAction ( )

getNextAction Checking for the next appropriate action regarding the current state of the scheduler and execute it

Definition at line 2433 of file scheduler.cpp.

◆ importMosaic()

bool Ekos::Scheduler::importMosaic ( const QJsonObject payload)

importMosaic Import mosaic into planner and generate jobs for the scheduler.

Parameters
payloadmetadata for the mosaic information.
Note
Only Telescopius.com mosaic format is now supported.

Definition at line 5134 of file scheduler.cpp.

◆ load

void Ekos::Scheduler::load ( bool  clearQueue,
const QString filename = "" 
)
protectedslot

load Open a file dialog to select an ESL file, and load its contents.

Parameters
clearQueueClear the queue before loading, or append ESL contents to queue.
filenameIf not empty, this file will be used instead of poping up a dialog.

Definition at line 2577 of file scheduler.cpp.

◆ loadJob

void Ekos::Scheduler::loadJob ( QModelIndex  i)
protectedslot

editJob Edit an observation job

Parameters
iindex model in queue table

Definition at line 1337 of file scheduler.cpp.

◆ loadScheduler()

bool Ekos::Scheduler::loadScheduler ( const QString fileURL)

DBUS interface function.

Loads the Ekos Scheduler List (.esl) file.

Parameters
fileURLpath to a file
Returns
true if loading file is successful, false otherwise.

Definition at line 2619 of file scheduler.cpp.

◆ loadSequenceQueue()

bool Ekos::Scheduler::loadSequenceQueue ( const QString fileURL,
SchedulerJob *  schedJob,
QList< SequenceJob * > &  jobs,
bool &  hasAutoFocus,
Scheduler scheduler 
)
static

loadSequenceQueue Loads what's necessary to estimate job completion time from a capture sequence queue file

Parameters
fileURLthe filename
schedJobthe SchedulerJob is modified according to the contents of the sequence queue
jobsthe returned values read from the file
hasAutoFocusa return value indicating whether autofocus can be triggered by the sequence.
schedulerinstance of the scheduler used for logging. Can be nullptr.
Returns
Estimated time in seconds.

Definition at line 4053 of file scheduler.cpp.

◆ moveJobDown

void Ekos::Scheduler::moveJobDown ( )
protectedslot

moveJobDown Move the selected job down in the list.

Definition at line 1502 of file scheduler.cpp.

◆ moveJobUp

void Ekos::Scheduler::moveJobUp ( )
protectedslot

moveJobUp Move the selected job up in the job list.

Definition at line 1468 of file scheduler.cpp.

◆ queueTableSelectionChanged

void Ekos::Scheduler::queueTableSelectionChanged ( QModelIndex  current,
QModelIndex  previous 
)
protectedslot

Update scheduler parameters to the currently selected scheduler job.

Parameters
currenttable position
previoustable position

Definition at line 1376 of file scheduler.cpp.

◆ registerNewDevice

void Ekos::Scheduler::registerNewDevice ( const QString name,
int  interface 
)
protectedslot

registerNewDevice register interfaces associated with devices

Parameters
nameDevice name
interfaceDevice driver interface

Definition at line 4218 of file scheduler.cpp.

◆ registerNewModule

void Ekos::Scheduler::registerNewModule ( const QString name)
protectedslot

registerNewModule Register an Ekos module as it arrives via DBus and create the appropriate DBus interface to communicate with it.

Parameters
nameof module

Definition at line 4279 of file scheduler.cpp.

◆ removeAllJobs()

void Ekos::Scheduler::removeAllJobs ( )

DBUS interface function.

Remove all scheduler jobs

Definition at line 2607 of file scheduler.cpp.

◆ removeJob()

void Ekos::Scheduler::removeJob ( )

Remove a job from current table row.

Parameters
index

Definition at line 1587 of file scheduler.cpp.

◆ removeOneJob()

void Ekos::Scheduler::removeOneJob ( int  index)

Remove a job by selecting a table row.

Parameters
index

Definition at line 1637 of file scheduler.cpp.

◆ reorderJobs

bool Ekos::Scheduler::reorderJobs ( QList< SchedulerJob * >  reordered_sublist)
protectedslot

reorderJobs Change the order of jobs in the UI based on a subset of its jobs.

Definition at line 1439 of file scheduler.cpp.

◆ resetAllJobs()

void Ekos::Scheduler::resetAllJobs ( )

DBUS interface function.

Resets all jobs to IDLE

Definition at line 4014 of file scheduler.cpp.

◆ resumeCheckStatus

void Ekos::Scheduler::resumeCheckStatus ( )
protectedslot

resumeCheckStatus If the scheduler primary loop was suspended due to weather or sleep event, resume it again.

Definition at line 3882 of file scheduler.cpp.

◆ saveJob()

void Ekos::Scheduler::saveJob ( )

addToQueue Construct a SchedulerJob and add it to the queue or save job settings from current form values.

jobUnderEdit determines whether to add or edit

Definition at line 989 of file scheduler.cpp.

◆ saveScheduler()

bool Ekos::Scheduler::saveScheduler ( const QUrl fileURL)

saveScheduler Save scheduler jobs to a file

Parameters
pathpath of a file
Returns
true on success, false on failure.

Definition at line 5195 of file scheduler.cpp.

◆ selectFITS

void Ekos::Scheduler::selectFITS ( )
protectedslot

Selects FITS file for solving.

Definition at line 809 of file scheduler.cpp.

◆ selectObject

void Ekos::Scheduler::selectObject ( )
protectedslot

select object from KStars's find dialog.

Definition at line 775 of file scheduler.cpp.

◆ selectSequence

void Ekos::Scheduler::selectSequence ( )
protectedslot

Selects sequence queue.

Definition at line 932 of file scheduler.cpp.

◆ selectShutdownScript

void Ekos::Scheduler::selectShutdownScript ( )
protectedslot

Selects sequence queue.

Definition at line 956 of file scheduler.cpp.

◆ selectStartupScript

void Ekos::Scheduler::selectStartupScript ( )
protectedslot

Selects sequence queue.

Definition at line 941 of file scheduler.cpp.

◆ setCaptureComplete

void Ekos::Scheduler::setCaptureComplete ( const QVariantMap &  metadata)
protectedslot

setCaptureComplete Handle one sequence image completion.

This is used now only to run alignment check to ensure it does not deviation from current scheduler job target.

Parameters
metadataMetadata for image including filename, exposure, filter, hfr..etc.

Definition at line 4741 of file scheduler.cpp.

◆ setDirty()

void Ekos::Scheduler::setDirty ( )
protected

Marks the currently selected SchedulerJob as modified change.

This triggers job re-evaluation. Next time save button is invoked, the complete content is written to disk.

Definition at line 3285 of file scheduler.cpp.

◆ setErrorHandlingStrategy()

void Ekos::Scheduler::setErrorHandlingStrategy ( ErrorHandlingStrategy  strategy)

select the error handling strategy (no restart, restart after all terminated, restart immediately)

Definition at line 3900 of file scheduler.cpp.

◆ setJobAddApply

void Ekos::Scheduler::setJobAddApply ( bool  add_mode)
protectedslot

setJobAddApply Set first button state to add new job or apply changes.

Definition at line 1402 of file scheduler.cpp.

◆ setJobManipulation

void Ekos::Scheduler::setJobManipulation ( bool  can_reorder,
bool  can_delete 
)
protectedslot

setJobManipulation Enable or disable job manipulation buttons.

Definition at line 1420 of file scheduler.cpp.

◆ setJobStatusCells()

void Ekos::Scheduler::setJobStatusCells ( int  row)
protected

Associate job table cells on a row to the corresponding SchedulerJob.

Parameters
rowis an integer indexing the row to associate cells from, and also the index of the job in the job list..

Definition at line 1542 of file scheduler.cpp.

◆ setSequence()

void Ekos::Scheduler::setSequence ( const QString sequenceFileURL)

DBUS interface function.

Set the file URL pointing to the capture sequence file

Parameters
sequenceFileURLURL of the capture sequence file

Definition at line 910 of file scheduler.cpp.

◆ shouldSchedulerSleep

bool Ekos::Scheduler::shouldSchedulerSleep ( SchedulerJob *  currentJob)
protectedslot

shouldSchedulerSleep Check if the scheduler needs to sleep until the job is ready

Parameters
currentJobJob to check
Returns
True if we set the scheduler to sleep mode. False, if not required and we need to execute now

Definition at line 4661 of file scheduler.cpp.

◆ solverDone

void Ekos::Scheduler::solverDone ( bool  timedOut,
bool  success,
const FITSImage::Solution &  solution,
double  elapsedSeconds 
)
protectedslot

solverDone Process solver solution after it is done.

Parameters
timedOutTrue if the process timed out.
successTrue if successful, false otherwise.
solutionThe solver solution if successful.
elapsedSecondsHow many seconds elapsed to solve the image.

Definition at line 4793 of file scheduler.cpp.

◆ sortJobsPerAltitude()

void Ekos::Scheduler::sortJobsPerAltitude ( )

DBUS interface function.

Resets all jobs to IDLE

Definition at line 3855 of file scheduler.cpp.

◆ start()

void Ekos::Scheduler::start ( )

DBUS interface function.

Start the scheduler main loop and evaluate jobs and execute them accordingly.

Definition at line 147 of file scheduler.cpp.

◆ startCapture()

void Ekos::Scheduler::startCapture ( bool  restart = false)

startCapture The current job file name is solved to an url which is fed to ekos.

We then start the capture process

Parameters
restartSet to true if the goal to restart an existing sequence. The only difference is that when a sequence is restarted, sequence file is not loaded from disk again since that results in erasing all the history of the capture process.

◆ startJobEvaluation

void Ekos::Scheduler::startJobEvaluation ( )
protectedslot

startJobEvaluation Start job evaluation only without starting the scheduler process itself.

Display the result to the user.

Definition at line 3826 of file scheduler.cpp.

◆ stop()

void Ekos::Scheduler::stop ( )

DBUS interface function.

Stop the scheduler.

Definition at line 1653 of file scheduler.cpp.

◆ stopCurrentJobAction

void Ekos::Scheduler::stopCurrentJobAction ( )
protectedslot

stopCurrentJobAction Stop whatever action taking place in the current job (eg.

capture, guiding...etc).

Definition at line 2531 of file scheduler.cpp.

◆ syncGUIToGeneralSettings

void Ekos::Scheduler::syncGUIToGeneralSettings ( )
protectedslot

syncGUIToGeneralSettings set all UI fields that are not job specific

Definition at line 1295 of file scheduler.cpp.

◆ syncGUIToJob

void Ekos::Scheduler::syncGUIToJob ( SchedulerJob *  job)
protectedslot

set all GUI fields to the values of the given scheduler job

Definition at line 1204 of file scheduler.cpp.

◆ syncProperties

void Ekos::Scheduler::syncProperties ( )
protectedslot

syncProperties Sync startup properties from the various device to enable/disable features in the scheduler like the ability to park/unpark..etc

Definition at line 4336 of file scheduler.cpp.

◆ updateNightTime

void Ekos::Scheduler::updateNightTime ( SchedulerJob const *  job = nullptr)
protectedslot

updateNightTime update the Twilight restriction with the argument job properties.

Parameters
jobSchedulerJob for which to display the next dawn and dusk, or the job currently selected if null, or today's next dawn and dusk if no job is selected.

Definition at line 1321 of file scheduler.cpp.

◆ updateTable()

void Ekos::Scheduler::updateTable ( )

Update table cells for all jobs.

For framing assistant

Definition at line 1536 of file scheduler.cpp.

◆ wakeUpScheduler

void Ekos::Scheduler::wakeUpScheduler ( )
protectedslot

checkWeather Check weather status and act accordingly depending on the current status of the scheduler and running jobs.

wakeUpScheduler Wake up scheduler from sleep state

Definition at line 1982 of file scheduler.cpp.

◆ watchJobChanges()

void Ekos::Scheduler::watchJobChanges ( bool  enable)
protected

Enables signal watch on SchedulerJob form values in order to apply changes to current job.

Parameters
enableis the toggle flag, true to watch for changes, false to ignore them.

Definition at line 601 of file scheduler.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Fri Dec 1 2023 04:06:04 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.