9#include "indi/indicommon.h"
11#include "camerastate.h"
12#include "ekos/auxiliary/filtermanager.h"
13#include "fitsviewer/fitscommon.h"
31class SequenceJobState:
public QObject
36 friend class CaptureDeviceAdaptor;
53 CAL_PRECAPTURE_COMPLETE,
55 CAL_CALIBRATION_COMPLETE,
70 CAL_CHECK_CONFIRMATION,
71 } CalibrationCheckType;
80 } ScopeWallPositionStatus;
95 void setFrameType(CCDFrameType frameType);
96 CCDFrameType getFrameType()
105 void initPreparation(
bool isPreview);
112 void prepareLightFrameCapture(
bool enforceCCDTemp,
bool isPreview);
119 void prepareFlatFrameCapture(
bool enforceCCDTemp,
bool isPreview);
126 void prepareDarkFrameCapture(
bool enforceCCDTemp,
bool isPreview);
133 void prepareBiasFrameCapture(
bool enforceCCDTemp,
bool isPreview);
143 bool initCapture(CCDFrameType frameType,
bool isPreview,
bool isAutofocusReady, FITSMode mode);
148 JOBStatus getStatus()
156 PreparationState getPreparationState()
const;
162 void reset(JOBStatus status = JOB_IDLE)
175 void setFilterStatus(FilterState filterState);
180 void setCurrentFilterID(
int value);
185 void setCurrentCCDTemperature(
double value);
189 void setTargetCCDTemperature(
double value)
191 targetTemperature = value;
197 void setFocusStatus(FocusState state);
202 void setCurrentRotatorPositionAngle(
double currentRotation, IPState state);
206 void setTargetRotatorAngle(
double value)
208 targetPositionAngle = value;
214 void updateManualScopeCover(
bool closed,
bool success,
bool light);
218 void lightBoxLight(
bool on);
222 void dustCapStateChanged(ISD::DustCap::Status status);
226 void scopeStatusChanged(ISD::Mount::Status status);
230 void scopeParkStatusChanged(ISD::ParkStatus status);
234 void domeStatusChanged(ISD::Dome::Status status);
238 void flatSyncFocusChanged(
bool completed);
242 void hasShutter(
bool present);
250 void readCurrentMountParkState();
252 void prepareComplete(
bool success =
true);
254 void initCaptureComplete(FITSMode mode);
256 void setRotatorAngle(
double rawAngle);
258 void readFilterPosition();
260 void changeFilterPosition(
int targetFilterPosition, FilterManager::FilterPolicy policy);
262 void setCCDTemperature(
double temp);
264 void setCCDBatchMode(
bool m_preview);
266 void askManualScopeCover(
QString question,
QString title,
bool light);
268 void askManualScopeOpen(
bool light);
270 void setLightBoxLight(
bool on);
272 void setDustCapLight(
bool on);
274 void parkDustCap(
bool park);
276 void slewTelescope(
SkyPoint &target);
278 void setScopeTracking(
bool on);
280 void setScopeParked(
bool parked);
282 void setDomeParked(
bool parked);
284 void flatSyncFocus(
int targetFilterID);
286 void queryHasShutter();
294 JOBStatus m_status { JOB_IDLE };
297 PreparationState m_PreparationState { PREP_NONE };
311 CCDFrameType m_frameType { FRAME_NONE };
313 bool m_isPreview {
false };
315 bool m_enforceTemperature {
false };
324 FlatSyncStatus flatSyncStatus { FS_NONE };
328 uint32_t m_CalibrationPreAction { CAPTURE_PREACTION_NONE };
332 ScopeWallPositionStatus wpScopeStatus { WP_NONE };
340 void checkAllActionsReady();
346 bool areActionsReady();
351 bool preparationCompleted()
353 return m_PreparationState == PREP_COMPLETED;
359 void setAllActionsReady();
364 void prepareTemperatureCheck(
bool enforceCCDTemp);
370 void prepareRotatorCheck();
378 void prepareTargetFilter(CCDFrameType frameType,
bool isPreview);
385 IPState checkLightFrameScopeCoverOpen();
390 bool isInitialized(CaptureWorkflowActionType action);
394 void setInitialized(CaptureWorkflowActionType action,
bool init);
404 IPState checkCalibrationPreActionsReady();
411 IPState checkFlatsCoverReady();
418 IPState checkDarksCoverReady();
425 IPState checkManualCoverReady(
bool lightSourceRequired);
432 IPState checkDustCapReady(CCDFrameType frameType);
440 IPState checkWallPositionReady(CCDFrameType frametype);
447 IPState checkPreMountParkReady();
454 IPState checkPreDomeParkReady();
461 IPState checkFlatSyncFocus();
472 IPState checkHasShutter();
483 int targetFilterID { Ekos::INVALID_VALUE };
484 FilterManager::FilterPolicy m_filterPolicy { FilterManager::ALL_POLICIES };
486 double targetTemperature { Ekos::INVALID_VALUE };
488 double targetPositionAngle { Ekos::INVALID_VALUE };
490 CalibrationStage calibrationStage { CAL_NONE };
492 CalibrationCheckType coverQueryState { CAL_CHECK_TASK };
Sequence Job is a container for the details required to capture a series of images.
The sky coordinates of a point in the sky.
Ekos is an advanced Astrophotography tool for Linux.
CaptureState
Capture states.
NETWORKMANAGERQT_EXPORT NetworkManager::Status status()