9#include "sequencejobstate.h"
11#include <QTableWidgetItem>
25class CaptureDeviceAdaptor;
32 static QString const &ISOMarker;
39 SJ_EnforceTemperature,
81 SJ_RemoteFormatDirectory,
83 SJ_RemoteFormatFilename,
89 SJ_TargetADUTolerance,
93 SJ_DitherPerJobFrequency,
110 SequenceJobType jobType, XMLEle *root =
nullptr,
QString targetName =
"");
129 void startCapturing(
bool autofocusReady, FITSMode mode);
135 void capture(FITSMode mode);
142 void setCoreProperty(PropertyID
id,
const QVariant &value);
143 QVariant getCoreProperty(PropertyID
id)
const;
148 const QString &getStatusString()
150 return StatusStrings()[getStatus()];
153 void setCompleted(
int value)
158 int getCompleted()
const
163 void setExposeLeft(
double value);
165 double getExposeLeft()
const;
167 void resetStatus(JOBStatus status = JOB_IDLE);
169 void setCaptureRetires(
int value);
171 int getCaptureRetires()
const;
174 int getJobRemainingTime(
double estimatedDownloadTime);
180 void connectDeviceAdaptor();
182 void disconnectDeviceAdaptor();
184 void setTargetFilter(
int pos,
const QString &name);
186 int getCurrentFilter()
const;
188 ISD::Mount::PierSide getPierSide()
const;
194 SequenceJobType jobType()
const
198 void setJobType(SequenceJobType newJobType)
200 m_jobType = newJobType;
204 return (getCoreProperty(SJ_Signature).
toString()).
remove(
".fits");
215 const QString getScript(ScriptTypes type)
const
217 return m_Scripts[
type];
219 void setScript(ScriptTypes type,
const QString &value)
221 m_Scripts[
type] = value;
225 void setISO(
int index);
230 return m_CustomProperties;
234 m_CustomProperties = value;
240 return m_CoreProperties;
244 void setUploadMode(ISD::Camera::UploadMode value);
246 ISD::Camera::UploadMode getUploadMode()
const;
249 void setCalibrationPreAction(uint32_t value);
251 uint32_t getCalibrationPreAction()
const;
254 void setWallCoord(
const SkyPoint &value);
256 const SkyPoint &getWallCoord()
const;
259 void setFlatFieldDuration(FlatFieldDuration value);
261 FlatFieldDuration getFlatFieldDuration()
const;
264 void setJobProgressIgnored(
bool value);
265 bool getJobProgressIgnored()
const;
271 void updateDeviceStates();
299 JOBStatus getStatus()
301 return state->getStatus();
304 void setFrameType(CCDFrameType value)
306 state->setFrameType(value);
308 CCDFrameType getFrameType()
const
310 return state->getFrameType();
313 int getTargetFilter()
const
315 return state->targetFilterID;
318 double getTargetTemperature()
const
320 return state->targetTemperature;
322 void setTargetTemperature(
double value)
324 state->targetTemperature = value;
327 void setFocusStatus(FocusState value)
329 state->setFocusStatus(value);
332 double getTargetRotation()
const
334 return state->targetPositionAngle;
336 void setTargetRotation(
double value)
338 state->targetPositionAngle = value;
341 SequenceJobState::CalibrationStage getCalibrationStage()
const
343 return state->calibrationStage;
345 void setCalibrationStage(SequenceJobState::CalibrationStage value)
347 state->calibrationStage = value;
350 SequenceJobState::PreparationState getPreparationState()
const
352 return state->m_PreparationState;
354 void setPreparationState(SequenceJobState::PreparationState value)
356 state->m_PreparationState = value;
359 bool getAutoFocusReady()
const
361 return state->autoFocusReady;
363 void setAutoFocusReady(
bool value)
365 state->autoFocusReady = value;
373 void prepareCapture();
378 void processPrepareComplete(
bool success =
true);
382 void processAbortCapture();
390 IPState checkFlatFramePendingTasksCompleted();
393 double currentTemperature()
const;
394 double currentGain()
const;
395 double currentOffset()
const;
398 void loadFrom(XMLEle *root,
const QString &targetName, SequenceJobType jobType);
402 void prepareComplete(
bool success =
true);
404 void captureStarted(CaptureResult rc);
410 void prepareState(CaptureState state);
412 void prepareCapture(CCDFrameType frameType,
bool enforceCCDTemp,
bool enforceStartGuiderDrift,
bool isPreview);
414 void updateGuiderDrift(
double deviation_rms);
423 SequenceJobType m_jobType;
425 void setStatus(JOBStatus
const);
438 FlatFieldDuration m_FlatFieldDuration { DURATION_MANUAL };
442 ISD::Camera::UploadMode m_UploadMode { ISD::Camera::UPLOAD_CLIENT };
444 QString m_TransferFormat {
"FITS" };
449 int m_CaptureRetires { 0 };
450 uint32_t m_Completed { 0 };
451 double m_ExposeLeft { 0 };
452 bool m_JobProgressIgnored {
false};
Class handles control of INDI dome devices.
Handles operation of a remotely controlled dust cover cap.
Handles operation of a remotely controlled light box.
device handle controlling Mounts.
Sequence Job is a container for the details required to capture a series of images.
The sky coordinates of a point in the sky.
Type type(const QSqlDatabase &db)
char * toString(const EngineQuery &query)
Ekos is an advanced Astrophotography tool for Linux.
QString & remove(QChar ch, Qt::CaseSensitivity cs)