9#include "indi/indicommon.h"
11#include "camerastate.h"
12#include "ekos/auxiliary/filtermanager.h"
13#include "fitsviewer/fitscommon.h"
31class SequenceJobState:
public QObject
35 friend class SequenceJob;
36 friend class CaptureDeviceAdaptor;
53 CAL_PRECAPTURE_COMPLETE,
55 CAL_CALIBRATION_COMPLETE,
70 CAL_CHECK_CONFIRMATION,
71 } CalibrationCheckType;
82 } ScopeWallPositionStatus;
91 SequenceJobState(
const QSharedPointer<CameraState> &sharedState);
97 void setFrameType(CCDFrameType frameType);
98 CCDFrameType getFrameType()
107 void initPreparation(
bool isPreview);
114 void prepareLightFrameCapture(
bool enforceCCDTemp,
bool isPreview);
121 void prepareFlatFrameCapture(
bool enforceCCDTemp,
bool isPreview);
128 void prepareDarkFrameCapture(
bool enforceCCDTemp,
bool isPreview);
135 void prepareBiasFrameCapture(
bool enforceCCDTemp,
bool isPreview);
145 bool initCapture(CCDFrameType frameType,
bool isPreview,
bool isAutofocusReady, FITSMode mode);
150 JOBStatus getStatus()
158 PreparationState getPreparationState()
const;
164 void reset(JOBStatus status = JOB_IDLE)
177 void setFilterStatus(FilterState filterState);
182 void setCurrentFilterID(
int value);
187 void setCurrentCCDTemperature(
double value);
191 void setTargetCCDTemperature(
double value)
193 targetTemperature = value;
199 void setFocusStatus(FocusState state);
204 void setCurrentRotatorPositionAngle(
double currentRotation, IPState state);
208 void setTargetRotatorAngle(
double value)
210 targetPositionAngle = value;
216 void updateManualScopeCover(
bool closed,
bool success,
bool light);
220 void lightBoxLight(
bool on);
224 void dustCapStateChanged(ISD::DustCap::Status status);
228 void scopeStatusChanged(ISD::Mount::Status status);
232 void scopeParkStatusChanged(ISD::ParkStatus status);
236 void domeStatusChanged(ISD::Dome::Status status);
240 void flatSyncFocusChanged(
bool completed);
244 void hasShutter(
bool present);
252 void readCurrentMountParkState();
254 void prepareComplete(
bool success =
true);
256 void initCaptureComplete(FITSMode mode);
258 void setRotatorAngle(
double rawAngle);
260 void readFilterPosition();
262 void changeFilterPosition(
int targetFilterPosition, FilterManager::FilterPolicy policy);
264 void setCCDTemperature(
double temp);
266 void setCCDBatchMode(
bool m_preview);
268 void askManualScopeCover(QString question, QString title,
bool light);
270 void askManualScopeOpen(
bool light);
272 void setLightBoxLight(
bool on);
274 void setDustCapLight(
bool on);
276 void parkDustCap(
bool park);
278 void slewTelescope(SkyPoint &target);
280 void setScopeTracking(
bool on);
282 void setScopeParked(
bool parked);
284 void setDomeParked(
bool parked);
286 void flatSyncFocus(
int targetFilterID);
288 void queryHasShutter();
292 void newLog(QString);
296 JOBStatus m_status { JOB_IDLE };
299 PreparationState m_PreparationState { PREP_NONE };
306 QMap<CaptureWorkflowActionType, bool> prepareActions;
310 QMap<CaptureWorkflowActionType, bool> ignoreNextValue;
313 CCDFrameType m_frameType { FRAME_NONE };
315 bool m_isPreview {
false };
317 bool m_enforceTemperature {
false };
323 QTimer m_CaptureOperationsTimer;
328 FlatSyncStatus flatSyncStatus { FS_NONE };
330 QTimer m_FlatSyncCheck;
332 uint32_t m_CalibrationPreAction { CAPTURE_PREACTION_NONE };
336 ScopeWallPositionStatus wpScopeStatus { WP_NONE };
344 void checkAllActionsReady();
350 bool areActionsReady();
355 bool preparationCompleted()
357 return m_PreparationState == PREP_COMPLETED;
363 void setAllActionsReady();
368 void prepareTemperatureCheck(
bool enforceCCDTemp);
374 void prepareRotatorCheck();
382 void prepareTargetFilter(CCDFrameType frameType,
bool isPreview);
389 IPState checkLightFrameScopeCoverOpen();
394 bool isInitialized(CaptureWorkflowActionType action);
398 void setInitialized(CaptureWorkflowActionType action,
bool init);
408 IPState checkCalibrationPreActionsReady();
415 IPState checkFlatsCoverReady();
422 IPState checkDarksCoverReady();
429 IPState checkManualCoverReady(
bool lightSourceRequired);
436 IPState checkDustCapReady(CCDFrameType frameType);
444 IPState checkWallPositionReady(CCDFrameType frametype);
451 IPState checkPreMountParkReady();
458 IPState checkPreDomeParkReady();
465 IPState checkFlatSyncFocus();
476 IPState checkHasShutter();
481 QSharedPointer<CameraState> m_CameraState;
487 int targetFilterID { Ekos::INVALID_VALUE };
488 FilterManager::FilterPolicy m_filterPolicy { FilterManager::ALL_POLICIES };
490 double targetTemperature { Ekos::INVALID_VALUE };
492 double targetPositionAngle { Ekos::INVALID_VALUE };
494 CalibrationStage calibrationStage { CAL_NONE };
496 CalibrationCheckType coverQueryState { CAL_CHECK_TASK };
Ekos is an advanced Astrophotography tool for Linux.
CaptureState
Capture states.
NETWORKMANAGERQT_EXPORT NetworkManager::Status status()