Ekos::Scheduler
#include <scheduler.h>

Public Types | |
enum | EkosState { EKOS_IDLE, EKOS_STARTING, EKOS_STOPPING, EKOS_READY } |
enum | ErrorHandlingStrategy { ERROR_DONT_RESTART, ERROR_RESTART_AFTER_TERMINATION, ERROR_RESTART_IMMEDIATELY } |
enum | INDIState { INDI_IDLE, INDI_CONNECTING, INDI_DISCONNECTING, INDI_PROPERTY_CHECK, INDI_READY } |
enum | ParkWaitStatus { PARKWAIT_IDLE, PARKWAIT_PARK, PARKWAIT_PARKING, PARKWAIT_PARKED, PARKWAIT_UNPARK, PARKWAIT_UNPARKING, PARKWAIT_UNPARKED, PARKWAIT_ERROR } |
enum | SchedulerAlgorithm { ALGORITHM_CLASSIC, ALGORITHM_GREEDY } |
enum | SchedulerColumns { SCHEDCOL_NAME = 0, SCHEDCOL_STATUS, SCHEDCOL_CAPTURES, SCHEDCOL_ALTITUDE, SCHEDCOL_SCORE, SCHEDCOL_STARTTIME, SCHEDCOL_ENDTIME, SCHEDCOL_DURATION, SCHEDCOL_LEADTIME, SCHEDCOL_COUNT } |
enum | SchedulerTimerState { RUN_WAKEUP = 0, RUN_SCHEDULER, RUN_JOBCHECK, RUN_SHUTDOWN, RUN_NOTHING } |
enum | ShutdownState { SHUTDOWN_IDLE, SHUTDOWN_PARK_CAP, SHUTDOWN_PARKING_CAP, SHUTDOWN_PARK_MOUNT, SHUTDOWN_PARKING_MOUNT, SHUTDOWN_PARK_DOME, SHUTDOWN_PARKING_DOME, SHUTDOWN_SCRIPT, SHUTDOWN_SCRIPT_RUNNING, SHUTDOWN_ERROR, SHUTDOWN_COMPLETE } |
enum | StartupState { STARTUP_IDLE, STARTUP_SCRIPT, STARTUP_UNPARK_DOME, STARTUP_UNPARKING_DOME, STARTUP_UNPARK_MOUNT, STARTUP_UNPARKING_MOUNT, STARTUP_UNPARK_CAP, STARTUP_UNPARKING_CAP, STARTUP_ERROR, STARTUP_COMPLETE } |
![]() | |
enum | RenderFlag |
![]() | |
enum | PaintDeviceMetric |
Properties | |
QStringList | logText |
QString | profile |
Ekos::SchedulerState | status |
![]() | |
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 | |
![]() | |
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) | |
void | addJob () |
void | addObject (SkyObject *object) |
void | appendLogText (const QString &) |
void | applyConfig () |
void | clearLog () |
bool | createJobSequence (XMLEle *root, const QString &prefix, const QString &outputDir) |
void | disconnectINDI () |
SchedulerJob * | getCurrentJob () |
QString | getCurrentJobName () |
ErrorHandlingStrategy | getErrorHandlingStrategy () |
const QList< SchedulerJob * > & | getJobs () const |
QJsonArray | getJSONJobs () |
QString | getLogText () |
void | getNextAction () |
QJsonObject | getSchedulerSettings () |
XMLEle * | getSequenceJobRoot (const QString &filename) const |
int | getUpdateInterval () |
bool | importMosaic (const QJsonObject &payload) |
Q_SCRIPTABLE bool | loadScheduler (const QString &fileURL) |
QStringList | logText () |
QString | profile () |
Q_SCRIPTABLE Q_NOREPLY void | removeAllJobs () |
void | removeJob () |
void | removeOneJob (int index) |
Q_SCRIPTABLE void | resetAllJobs () |
void | saveJob () |
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) |
void | setSolverAction (Align::GotoMode mode) |
void | setUpdateInterval (int ms) |
Q_SCRIPTABLE void | sortJobsPerAltitude () |
Q_SCRIPTABLE Q_NOREPLY void | start () |
void | startAstrometry () |
void | startCapture (bool restart=false) |
void | startFocusing () |
void | startGuiding (bool resetCalibration=false) |
void | startSlew () |
Ekos::SchedulerState | status () |
Q_SCRIPTABLE Q_NOREPLY void | stop () |
void | stopEkos () |
void | stopGuiding () |
void | toggleScheduler () |
![]() | |
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 |
QBackingStore * | backingStore () const const |
QSize | baseSize () const const |
QWidget * | childAt (const QPoint &p) const const |
QWidget * | childAt (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 |
QWidget * | focusProxy () const const |
QWidget * | focusWidget () const const |
const QFont & | font () const const |
QFontInfo | fontInfo () const const |
QFontMetrics | fontMetrics () const const |
QPalette::ColorRole | foregroundRole () const const |
QRect | frameGeometry () const const |
QSize | frameSize () const const |
const QRect & | geometry () 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) |
QGraphicsEffect * | graphicsEffect () const const |
QGraphicsProxyWidget * | graphicsProxyWidget () 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 |
QLayout * | layout () 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) |
QWidget * | nativeParentWidget () const const |
QWidget * | nextInFocusChain () const const |
QRect | normalGeometry () const const |
void | overrideWindowFlags (Qt::WindowFlags flags) |
virtual QPaintEngine * | paintEngine () const const override |
const QPalette & | palette () const const |
QWidget * | parentWidget () const const |
QPoint | pos () const const |
QWidget * | previousInFocusChain () 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 |
QScreen * | screen () 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 ®ion) |
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 |
QStyle * | style () const const |
QString | styleSheet () const const |
bool | testAttribute (Qt::WidgetAttribute attribute) const const |
QString | toolTip () const const |
int | toolTipDuration () const const |
QWidget * | topLevelWidget () 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 |
QWidget * | window () const const |
QString | windowFilePath () const const |
Qt::WindowFlags | windowFlags () const const |
QWindow * | windowHandle () 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 |
![]() | |
QObject (QObject *parent) | |
bool | blockSignals (bool block) |
const QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const const |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, 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 QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () 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 | |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
T | qobject_cast (const QObject *object) |
T | 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) |
QThread * | thread () const const |
![]() | |
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 int16_t | calculateJobScore (SchedulerJob const *job, QDateTime const &dawn, QDateTime const &dusk, QDateTime const &when=QDateTime()) |
static bool | estimateJobTime (SchedulerJob *schedJob, const QMap< QString, uint16_t > &capturedFramesCount, Scheduler *scheduler) |
static QList< SchedulerJob * > | evaluateJobs (QList< SchedulerJob * > &jobs, const QMap< QString, uint16_t > &capturedFramesCount, QDateTime const &dawn, QDateTime const &dusk, Scheduler *scheduler) |
static int16_t | getDarkSkyScore (QDateTime const &dawn, QDateTime const &dusk, QDateTime const &when=QDateTime()) |
static bool | loadSequenceQueue (const QString &fileURL, SchedulerJob *schedJob, QList< SequenceJob * > &jobs, bool &hasAutoFocus, Scheduler *scheduler) |
static QList< SchedulerJob * > | prepareJobsForEvaluation (QList< SchedulerJob * > &jobs, SchedulerState state, const QMap< QString, uint16_t > &capturedFramesCount, bool rescheduleErrors, bool restartJobs, bool *possiblyDelay, Scheduler *scheduler) |
static void | setupJob (SchedulerJob &job, const QString &name, int priority, const dms &ra, const dms &dec, double djd, double rotation, const QUrl &sequenceUrl, const QUrl &fitsUrl, SchedulerJob::StartupCondition startup, const QDateTime &startupTime, int16_t startupOffset, SchedulerJob::CompletionCondition completion, const QDateTime &completionTime, int completionRepeats, double minimumAltitude, double minimumMoonSeparation, bool enforceWeather, bool enforceTwilight, bool enforceArtificialHorizon, bool track, bool focus, bool align, bool guide) |
static KStarsDateTime | getLocalTime () |
static void | setLocalTime (KStarsDateTime *time) |
static bool | hasLocalTime () |
![]() | |
QWidget * | createWindowContainer (QWindow *window, QWidget *parent, Qt::WindowFlags flags) |
QWidget * | find (WId id) |
QWidget * | keyboardGrabber () |
QWidget * | mouseGrabber () |
void | setTabOrder (QWidget *first, QWidget *second) |
![]() | |
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 () |
bool | checkJobStageClassic () |
void | checkJobStageEplogue () |
void | checkProcessExit (int exitCode) |
void | checkShutdownProcedure () |
void | checkStartupProcedure () |
bool | checkStatus () |
void | checkTwilightWarning (bool enabled) |
void | clickQueueTable (QModelIndex index) |
bool | completeShutdown () |
void | findNextJob () |
void | load (bool clearQueue, const QString &filename="") |
void | loadJob (QModelIndex i) |
bool | manageConnectionLoss () |
void | moveJobDown () |
void | moveJobUp () |
void | pause () |
void | queueTableSelectionChanged (QModelIndex current, QModelIndex previous) |
void | readProcessOutput () |
void | registerNewDevice (const QString &name, int interface) |
void | registerNewModule (const QString &name) |
bool | reorderJobs (QList< SchedulerJob * > reordered_sublist) |
void | resetJobEdit () |
void | resumeCheckStatus () |
void | runShutdownProcedure () |
void | runStartupProcedure () |
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 | startMosaicTool () |
void | stopCurrentJobAction () |
bool | syncControl (const QJsonObject &settings, const QString &key, QWidget *widget) |
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) |
![]() | |
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) |
![]() | |
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 |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
![]() | |
DrawChildren | |
DrawWindowBackground | |
IgnoreMask | |
typedef | RenderFlags |
![]() | |
typedef | QObjectList |
![]() | |
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.
- Version
- 1.2
Definition at line 49 of file scheduler.h.
Member Enumeration Documentation
◆ ErrorHandlingStrategy
options what should happen if an error or abort occurs
Definition at line 100 of file scheduler.h.
◆ SchedulerAlgorithm
Algorithms, in the same order as UI.
Definition at line 108 of file scheduler.h.
◆ SchedulerColumns
Columns, in the same order as UI.
Definition at line 115 of file scheduler.h.
◆ SchedulerTimerState
IterationTypes, the different types of scheduler iterations that are run.
Definition at line 130 of file scheduler.h.
Constructor & Destructor Documentation
◆ Scheduler() [1/2]
Ekos::Scheduler::Scheduler | ( | ) |
Constructor, the starndard scheduler constructor.
Definition at line 403 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 409 of file scheduler.cpp.
Member Function Documentation
◆ addJob()
void Ekos::Scheduler::addJob | ( | ) |
addJob Add a new job from form values
Definition at line 1106 of file scheduler.cpp.
◆ appendEkosScheduleList
|
protectedslot |
appendEkosScheduleList Append the contents of an ESL file to the queue.
- Parameters
-
fileURL File URL to load contents from.
- Returns
- True if contents were loaded successfully, else false.
Definition at line 4406 of file scheduler.cpp.
◆ calculateJobScore()
|
static |
calculateJobScore Calculate job dark sky score, altitude score, and moon separation scores and returns the sum.
- Parameters
-
job Target dawn next dawn, as a KStarsDateTime dusk next dusk, as a KStarsDateTime when date and time to evaluate constraints, now if omitted.
- Returns
- Total score
Definition at line 2981 of file scheduler.cpp.
◆ checkInterfaceReady
|
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
-
iface interface to test for readiness.
Definition at line 7730 of file scheduler.cpp.
◆ 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 3851 of file scheduler.cpp.
◆ checkProcessExit
|
protectedslot |
checkProcessExit Check script process exist status.
This is called when the process exists either normally or abnormally.
- Parameters
-
exitCode exit code from the script process. Depending on the exist code, the status of startup/shutdown procedure is set accordingly.
Definition at line 3685 of file scheduler.cpp.
◆ 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 3746 of file scheduler.cpp.
◆ checkTwilightWarning
|
protectedslot |
displayTwilightWarning Display twilight warning to user if it is unchecked.
Definition at line 7207 of file scheduler.cpp.
◆ clickQueueTable
|
protectedslot |
jobSelectionChanged Update UI state when the job list is clicked once.
Definition at line 1612 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
-
prefix Prefix to set for the job sequence outputDir Output dir to set for the job sequence
- Returns
- True if new file is saved, false otherwise
Definition at line 7147 of file scheduler.cpp.
◆ disconnectINDI()
void Ekos::Scheduler::disconnectINDI | ( | ) |
disconnectINDI disconnect all INDI devices from server.
Definition at line 5664 of file scheduler.cpp.
◆ estimateJobTime()
|
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
-
job target job capturedFramesCount a map of what's been captured already scheduler instance of the scheduler used for logging. Can be nullptr.
- Returns
- Estimated time in seconds.
Definition at line 5887 of file scheduler.cpp.
◆ evaluateJobs()
|
static |
evaluateJobs Computes estimated start and end times for the SchedulerJobs passed in.
Returns a proposed schedule.
- Parameters
-
jobs The input list of SchedulerJobs to evaluate. capturedFramesCount which parts of the schedulerJobs have already been completed. dawn next dawn, as a KStarsDateTime dusk next dusk, as a KStarsDateTime scheduler instance of the scheduler used for logging. Can be nullptr.
- Returns
- list of sorted jobs
Definition at line 2342 of file scheduler.cpp.
◆ 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 5114 of file scheduler.cpp.
◆ getDarkSkyScore()
|
static |
getDarkSkyScore Get the dark sky score of a date and time.
The further from dawn the better.
- Parameters
-
when date and time to check the dark sky score, now if omitted
- Returns
- Dark sky score. Daylight get bad score, as well as pre-dawn to dawn.
Definition at line 2935 of file scheduler.cpp.
◆ getErrorHandlingStrategy()
Scheduler::ErrorHandlingStrategy Ekos::Scheduler::getErrorHandlingStrategy | ( | ) |
retrieve the error handling strategy from the UI
Definition at line 6939 of file scheduler.cpp.
◆ getLocalTime()
|
static |
Setter used in testing to fix the local time.
Otherwise getter gets from KStars instance.
Definition at line 273 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 4161 of file scheduler.cpp.
◆ importMosaic()
bool Ekos::Scheduler::importMosaic | ( | const QJsonObject & | payload | ) |
importMosaic Import mosaic into planner and generate jobs for the scheduler.
- Parameters
-
payload metadata for the mosaic information.
- Note
- Only Telescopius.com mosaic format is now supported.
Definition at line 8778 of file scheduler.cpp.
◆ load
|
protectedslot |
load Open a file dialog to select an ESL file, and load its contents.
- Parameters
-
clearQueue Clear the queue before loading, or append ESL contents to queue. filename If not empty, this file will be used instead of poping up a dialog.
Definition at line 4358 of file scheduler.cpp.
◆ loadJob
|
protectedslot |
editJob Edit an observation job
- Parameters
-
i index model in queue table
Definition at line 1552 of file scheduler.cpp.
◆ loadScheduler()
bool Ekos::Scheduler::loadScheduler | ( | const QString & | fileURL | ) |
DBUS interface function.
Loads the Ekos Scheduler List (.esl) file.
- Parameters
-
fileURL path to a file
- Returns
- true if loading file is successful, false otherwise.
Definition at line 4400 of file scheduler.cpp.
◆ loadSequenceQueue()
|
static |
loadSequenceQueue Loads what's necessary to estimate job completion time from a capture sequence queue file
- Parameters
-
fileURL the filename schedJob the SchedulerJob is modified according to the contents of the sequence queue jobs the returned values read from the file hasAutoFocus a return value indicating whether autofocus can be triggered by the sequence. scheduler instance of the scheduler used for logging. Can be nullptr.
- Returns
- Estimated time in seconds.
Definition at line 7411 of file scheduler.cpp.
◆ manageConnectionLoss
|
protectedslot |
manageConnectionLoss Mitigate loss of connection with the INDI server.
- Returns
- true if connection to Ekos/INDI should be attempted again, false if not mitigation is available or needed.
Definition at line 4305 of file scheduler.cpp.
◆ moveJobDown
|
protectedslot |
moveJobDown Move the selected job down in the list.
Definition at line 1717 of file scheduler.cpp.
◆ moveJobUp
|
protectedslot |
moveJobUp Move the selected job up in the job list.
Definition at line 1683 of file scheduler.cpp.
◆ prepareJobsForEvaluation()
|
static |
prepareJobsForEvaluation Start of job evaluation
- Parameters
-
jobs The input list of SchedulerJobs to evaluate. state The current scheduler state. capturedFramesCount which parts of the schedulerJobs have already been completed. rescheduleErrors whether jobs that failed with errors should be rescheduled. restartJobs whether jobs that failed for one reason or another shoulc be rescheduled. possiblyDelay a return value indicating whether the timer should try scheduling again after a delay. scheduler instance of the scheduler used for logging. Can be nullptr.
- Returns
- Total score
Definition at line 2180 of file scheduler.cpp.
◆ queueTableSelectionChanged
|
protectedslot |
Update scheduler parameters to the currently selected scheduler job.
- Parameters
-
current table position previous table position
Definition at line 1591 of file scheduler.cpp.
◆ readProcessOutput
|
protectedslot |
readProcessOutput read running script process output and display it in Ekos
Definition at line 3680 of file scheduler.cpp.
◆ registerNewDevice
|
protectedslot |
registerNewDevice register interfaces associated with devices
- Parameters
-
name Device name interface Device driver interface
Definition at line 7546 of file scheduler.cpp.
◆ registerNewModule
|
protectedslot |
registerNewModule Register an Ekos module as it arrives via DBus and create the appropriate DBus interface to communicate with it.
- Parameters
-
name of module
Definition at line 7603 of file scheduler.cpp.
◆ removeAllJobs()
void Ekos::Scheduler::removeAllJobs | ( | ) |
◆ removeJob()
void Ekos::Scheduler::removeJob | ( | ) |
Remove a job from current table row.
- Parameters
-
index
Definition at line 1799 of file scheduler.cpp.
◆ removeOneJob()
void Ekos::Scheduler::removeOneJob | ( | int | index | ) |
Remove a job by selecting a table row.
- Parameters
-
index
Definition at line 1848 of file scheduler.cpp.
◆ reorderJobs
|
protectedslot |
reorderJobs Change the order of jobs in the UI based on a subset of its jobs.
Definition at line 1654 of file scheduler.cpp.
◆ resetAllJobs()
void Ekos::Scheduler::resetAllJobs | ( | ) |
◆ resumeCheckStatus
|
protectedslot |
resumeCheckStatus If the scheduler primary loop was suspended due to weather or sleep event, resume it again.
Definition at line 6932 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 1200 of file scheduler.cpp.
◆ saveScheduler()
bool Ekos::Scheduler::saveScheduler | ( | const QUrl & | fileURL | ) |
saveScheduler Save scheduler jobs to a file
- Parameters
-
path path of a file
- Returns
- true on success, false on failure.
Definition at line 4752 of file scheduler.cpp.
◆ selectFITS
|
protectedslot |
Selects FITS file for solving.
Definition at line 946 of file scheduler.cpp.
◆ selectObject
|
protectedslot |
select object from KStars's find dialog.
Definition at line 912 of file scheduler.cpp.
◆ selectSequence
|
protectedslot |
Selects sequence queue.
Definition at line 1069 of file scheduler.cpp.
◆ selectShutdownScript
|
protectedslot |
Selects sequence queue.
Definition at line 1092 of file scheduler.cpp.
◆ selectStartupScript
|
protectedslot |
Selects sequence queue.
Definition at line 1078 of file scheduler.cpp.
◆ setCaptureComplete
|
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
-
metadata Metadata for image including filename, exposure, filter, hfr..etc.
Definition at line 8382 of file scheduler.cpp.
◆ 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 5682 of file scheduler.cpp.
◆ setErrorHandlingStrategy()
void Ekos::Scheduler::setErrorHandlingStrategy | ( | Scheduler::ErrorHandlingStrategy | strategy | ) |
select the error handling strategy (no restart, restart after all terminated, restart immediately)
Definition at line 6951 of file scheduler.cpp.
◆ setJobAddApply
|
protectedslot |
setJobAddApply Set first button state to add new job or apply changes.
Definition at line 1617 of file scheduler.cpp.
◆ setJobManipulation
|
protectedslot |
setJobManipulation Enable or disable job manipulation buttons.
Definition at line 1635 of file scheduler.cpp.
◆ setJobStatusCells()
|
protected |
Associate job table cells on a row to the corresponding SchedulerJob.
- Parameters
-
row is an integer indexing the row to associate cells from, and also the index of the job in the job list..
Definition at line 1751 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
-
sequenceFileURL URL of the capture sequence file
Definition at line 1047 of file scheduler.cpp.
◆ setSolverAction()
void Ekos::Scheduler::setSolverAction | ( | Align::GotoMode | mode | ) |
setSolverAction set the GOTO mode for the solver
- Parameters
-
mode 0 For Sync, 1 for SlewToTarget, 2 for Nothing
Definition at line 5657 of file scheduler.cpp.
◆ setupJob()
|
static |
setupJob Massive initialization of a SchedulerJob for testing and exectution
- Parameters
-
job Target
Definition at line 1124 of file scheduler.cpp.
◆ shouldSchedulerSleep
|
protectedslot |
shouldSchedulerSleep Check if the scheduler needs to sleep until the job is ready
- Parameters
-
currentJob Job 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 8237 of file scheduler.cpp.
◆ solverDone
|
protectedslot |
solverDone Process solver solution after it is done.
- Parameters
-
timedOut True if the process timed out. success True if successful, false otherwise. solution The solver solution if successful. elapsedSeconds How many seconds elapsed to solve the image.
Definition at line 8434 of file scheduler.cpp.
◆ sortJobsPerAltitude()
void Ekos::Scheduler::sortJobsPerAltitude | ( | ) |
◆ start()
void Ekos::Scheduler::start | ( | ) |
DBUS interface function.
Start the scheduler main loop and evaluate jobs and execute them accordingly.
Definition at line 293 of file scheduler.cpp.
◆ startAstrometry()
void Ekos::Scheduler::startAstrometry | ( | ) |
startAstrometry initiation of the capture and solve operation.
We change the job state after solver is started
Definition at line 5384 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
-
restart Set 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.
Definition at line 5549 of file scheduler.cpp.
◆ startFocusing()
void Ekos::Scheduler::startFocusing | ( | ) |
startFocusing DBus call for feeding ekos the specified settings and initiating focus operation
Definition at line 4968 of file scheduler.cpp.
◆ startGuiding()
void Ekos::Scheduler::startGuiding | ( | bool | resetCalibration = false | ) |
startGuiding After ekos is fed the calibration options, we start the guiding process
- Parameters
-
resetCalibration By default calibration is not reset until it is explicitly requested
Definition at line 5509 of file scheduler.cpp.
◆ startJobEvaluation
|
protectedslot |
startJobEvaluation Start job evaluation only without starting the scheduler process itself.
Display the result to the user.
Definition at line 6886 of file scheduler.cpp.
◆ startMosaicTool
|
protectedslot |
startMosaicTool Start Mosaic tool and create jobs if necessary.
Definition at line 7005 of file scheduler.cpp.
◆ startSlew()
void Ekos::Scheduler::startSlew | ( | ) |
startSlew DBus call for initiating slew
Definition at line 4927 of file scheduler.cpp.
◆ stop()
void Ekos::Scheduler::stop | ( | ) |
◆ stopCurrentJobAction
|
protectedslot |
stopCurrentJobAction Stop whatever action taking place in the current job (eg.
capture, guiding...etc).
Definition at line 4259 of file scheduler.cpp.
◆ stopEkos()
void Ekos::Scheduler::stopEkos | ( | ) |
stopEkos shutdown Ekos completely
Definition at line 5672 of file scheduler.cpp.
◆ stopGuiding()
void Ekos::Scheduler::stopGuiding | ( | ) |
stopGuiding After guiding is done we need to stop the process
Definition at line 5638 of file scheduler.cpp.
◆ syncGUIToJob
|
protectedslot |
set all GUI fields to the values of the given scheduler job
Definition at line 1437 of file scheduler.cpp.
◆ 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 7658 of file scheduler.cpp.
◆ updateNightTime
|
protectedslot |
updateNightTime update the Twilight restriction with the argument job properties.
- Parameters
-
job SchedulerJob 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 1536 of file scheduler.cpp.
◆ 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 2900 of file scheduler.cpp.
◆ watchJobChanges()
|
protected |
Enables signal watch on SchedulerJob form values in order to apply changes to current job.
- Parameters
-
enable is the toggle flag, true to watch for changes, false to ignore them.
Definition at line 738 of file scheduler.cpp.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:57:40 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.