11#include "indi/indicommon.h"
14#include "indi/indidome.h"
15#include "indi/indicamerachip.h"
16#include "indi/indidustcap.h"
17#include "indi/indimount.h"
19#include "ekos/auxiliary/filtermanager.h"
30class SequenceJobState;
32class CaptureDeviceAdaptor:
public QObject
37 CaptureDeviceAdaptor() {}
46 void setCurrentSequenceJobState(QSharedPointer<SequenceJobState> jobState);
52 void setLightBox(ISD::LightBox *device)
54 m_ActiveLightBox = device;
56 ISD::LightBox *lightBox()
58 return m_ActiveLightBox;
61 void setDustCap(ISD::DustCap *device);
62 ISD::DustCap *dustCap()
64 return m_ActiveDustCap;
67 void setMount(ISD::Mount *device);
73 void setDome(ISD::Dome *device);
79 void setRotator(ISD::Rotator *device);
80 ISD::Rotator *rotator()
82 return m_ActiveRotator;
85 void setActiveCamera(ISD::Camera *device);
86 ISD::Camera *getActiveCamera()
88 return m_ActiveCamera;
91 void setActiveChip(ISD::CameraChip *device)
93 m_ActiveChip = device;
95 ISD::CameraChip *getActiveChip()
101 void addGuideHead(ISD::Camera *device)
106 void setFilterWheel(ISD::FilterWheel *device);
107 ISD::FilterWheel *filterWheel()
109 return m_ActiveFilterWheel;
112 void clearFilterManager();
113 void setFilterManager(
const QSharedPointer<FilterManager> &device);
114 const QSharedPointer<FilterManager> &getFilterManager()
const
116 return m_FilterManager;
123 void disconnectDevices(SequenceJobState *state);
131 void setRotatorAngle(
double rawAngle);
136 double getRotatorAngle();
141 IPState getRotatorAngleState();
147 void reverseRotator(
bool toggled);
153 void readRotatorAngle();
163 void setCCDTemperature(
double temp);
169 void enableCCDBatchMode(
bool enable);
174 void abortFastExposure();
181 double cameraGain(QMap<QString, QMap<QString, QVariant> > propertyMap);
193 double cameraOffset(QMap<QString, QMap<QString, QVariant> > propertyMap);
197 double cameraOffset();
202 double cameraTemperature();
211 void setFilterPosition(
int targetFilterPosition, FilterManager::FilterPolicy policy = FilterManager::ALL_POLICIES);
215 void updateFilterPosition();
219 void setFilterChangeFailed();
228 void askManualScopeCover(QString question, QString title,
bool light);
232 void askManualScopeOpen(
bool light);
236 void setLightBoxLight(
bool on);
240 void parkDustCap(
bool park);
244 void slewTelescope(SkyPoint &target);
248 void setScopeTracking(
bool on);
252 void setScopeParked(
bool parked);
256 void setDomeParked(
bool parked);
260 void flatSyncFocus(
int targetFilterID);
269 void queryHasShutter();
275 void filterIdChanged(
int id);
280 void newCamera(QString name);
285 void CameraConnected(
bool connected);
289 void newCCDTemperatureValue(
double value);
294 void newRotator(QString name);
298 void newRotatorAngle(
double value, IPState state);
302 void rotatorReverseToggled(
bool enabled);
307 void newFilterWheel(QString name);
312 void FilterWheelConnected(
bool connected);
316 void manualScopeCoverUpdated(
bool closed,
bool success,
bool light);
320 void lightBoxLight(
bool on);
324 void dustCapStatusChanged(ISD::DustCap::Status status);
328 void scopeStatusChanged(ISD::Mount::Status status);
332 void pierSideChanged(ISD::Mount::PierSide pierside);
336 void scopeParkStatusChanged(ISD::ParkStatus status);
340 void domeStatusChanged(ISD::Dome::Status status);
344 void flatSyncFocusChanged(
bool completed);
348 void hasShutter(
bool present);
359 void readCurrentMountParkState();
363 QSharedPointer<SequenceJobState> currentSequenceJobState;
365 ISD::LightBox *m_ActiveLightBox {
nullptr };
367 ISD::DustCap *m_ActiveDustCap {
nullptr };
369 ISD::Mount *m_ActiveMount {
nullptr };
371 ISD::Dome *m_ActiveDome {
nullptr };
373 ISD::Rotator * m_ActiveRotator {
nullptr };
375 ISD::Camera * m_ActiveCamera {
nullptr };
377 ISD::CameraChip * m_ActiveChip {
nullptr };
379 ISD::FilterWheel * m_ActiveFilterWheel {
nullptr };
381 QSharedPointer<FilterManager> m_FilterManager;
384 bool m_ManualLightCoveringAsked {
false };
385 bool m_ManualLightOpeningAsked {
false };
388 bool m_ManualDarkCoveringAsked {
false };
389 bool m_ManualDarkOpeningAsked {
false };
394 void connectDustCap(SequenceJobState *state);
395 void disconnectDustCap(SequenceJobState *state);
396 void connectMount(SequenceJobState *state);
397 void disconnectMount(SequenceJobState *state);
398 void connectDome(SequenceJobState *state);
399 void disconnectDome(SequenceJobState *state);
400 void connectRotator(SequenceJobState *state);
401 void disconnectRotator(SequenceJobState *state);
402 void connectActiveCamera(SequenceJobState *state);
403 void disconnectActiveCamera(SequenceJobState *state);
404 void connectFilterManager(SequenceJobState *state);
405 void disconnectFilterManager(SequenceJobState *state);
Ekos is an advanced Astrophotography tool for Linux.
CaptureState
Capture states.