X2 Standard  Version 1.28
Loading...
Searching...
No Matches
x2camera.h
1#pragma once
2
3#include "../../licensedinterfaces/cameradriverinterface.h"
4#include "../../licensedinterfaces/modalsettingsdialoginterface.h"
5#include "../../licensedinterfaces/x2guiinterface.h"
6
7
8class SerXInterface;
12class LoggerInterface;
13class MutexInterface;
15
16
24class X2Camera: public CameraDriverInterface, public ModalSettingsDialogInterface, public X2GUIEventInterface
25{
26public:
28 X2Camera(const char* pszSelectionString,
29 const int& nISIndex,
30 SerXInterface* pSerX,
31 TheSkyXFacadeForDriversInterface* pTheSkyXForMounts,
32 SleeperInterface* pSleeper,
33 BasicIniUtilInterface* pIniUtil,
34 LoggerInterface* pLogger,
35 MutexInterface* pIOMutex,
36 TickCountInterface* pTickCount);
37 virtual ~X2Camera();
38
42 virtual int queryAbstraction(const char* pszName, void** ppVal) ;
44
48 virtual void driverInfoDetailedInfo(BasicStringInterface& str) const ;
49 virtual double driverInfoVersion(void) const ;
51
55 virtual void deviceInfoNameShort(BasicStringInterface& str) const ;
56 virtual void deviceInfoNameLong(BasicStringInterface& str) const ;
59 virtual void deviceInfoModel(BasicStringInterface& str) ;
61
62public://Properties
63
67
68 virtual enumCameraIndex cameraId();
69 virtual void setCameraId(enumCameraIndex Cam);
70 virtual bool isLinked() {return m_bLinked;}
71 virtual void setLinked(const bool bYes) {m_bLinked = bYes;}
72
73 virtual int GetVersion(void) {return CAMAPIVERSION;}
75 virtual int pathTo_rm_FitsOnDisk(char* lpszPath, const int& nPathSize);
76
77public://Methods
78
79 virtual int CCSettings(const enumCameraIndex& Camera, const enumWhichCCD& CCD);
80
81 virtual int CCEstablishLink(enumLPTPort portLPT, const enumWhichCCD& CCD, enumCameraIndex DesiredCamera, enumCameraIndex& CameraFound, const int nDesiredCFW, int& nFoundCFW);
82 virtual int CCDisconnect(const bool bShutDownTemp);
83
84 virtual int CCGetChipSize(const enumCameraIndex& Camera, const enumWhichCCD& CCD, const int& nXBin, const int& nYBin, const bool& bOffChipBinning, int& nW, int& nH, int& nReadOut);
85 virtual int CCGetNumBins(const enumCameraIndex& Camera, const enumWhichCCD& CCD, int& nNumBins);
86 virtual int CCGetBinSizeFromIndex(const enumCameraIndex& Camera, const enumWhichCCD& CCD, const int& nIndex, long& nBincx, long& nBincy);
87
88 virtual int CCSetBinnedSubFrame(const enumCameraIndex& Camera, const enumWhichCCD& CCD, const int& nLeft, const int& nTop, const int& nRight, const int& nBottom);
89
90 virtual void CCMakeExposureState(int* pnState, enumCameraIndex Cam, int nXBin, int nYBin, int abg, bool bRapidReadout);//SBIG specific
91
92 virtual int CCStartExposure(const enumCameraIndex& Cam, const enumWhichCCD CCD, const double& dTime, enumPictureType Type, const int& nABGState, const bool& bLeaveShutterAlone);
93 virtual int CCIsExposureComplete(const enumCameraIndex& Cam, const enumWhichCCD CCD, bool* pbComplete, unsigned int* pStatus);
94 virtual int CCEndExposure(const enumCameraIndex& Cam, const enumWhichCCD CCD, const bool& bWasAborted, const bool& bLeaveShutterAlone);
95
96 virtual int CCReadoutLine(const enumCameraIndex& Cam, const enumWhichCCD& CCD, const int& pixelStart, const int& pixelLength, const int& nReadoutMode, unsigned char* pMem);
97 virtual int CCDumpLines(const enumCameraIndex& Cam, const enumWhichCCD& CCD, const int& nReadoutMode, const unsigned int& lines);
98
99 virtual int CCReadoutImage(const enumCameraIndex& Cam, const enumWhichCCD& CCD, const int& nWidth, const int& nHeight, const int& nMemWidth, unsigned char* pMem);
100
101 virtual int CCRegulateTemp(const bool& bOn, const double& dTemp);
102 virtual int CCQueryTemperature(double& dCurTemp, double& dCurPower, char* lpszPower, const int nMaxLen, bool& bCurEnabled, double& dCurSetPoint);
103 virtual int CCGetRecommendedSetpoint(double& dRecSP);
104 virtual int CCSetFan(const bool& bOn);
105
106 virtual int CCActivateRelays(const int& nXPlus, const int& nXMinus, const int& nYPlus, const int& nYMinus, const bool& bSynchronous, const bool& bAbort, const bool& bEndThread);
107
108 virtual int CCPulseOut(unsigned int nPulse, bool bAdjust, const enumCameraIndex& Cam);
109
110 virtual int CCSetShutter(bool bOpen);
111 virtual int CCUpdateClock(void);
112
113 virtual int CCSetImageProps(const enumCameraIndex& Camera, const enumWhichCCD& CCD, const int& nReadOut, void* pImage);
114 virtual int CCGetFullDynamicRange(const enumCameraIndex& Camera, const enumWhichCCD& CCD, unsigned long& dwDynRg);
115
116 virtual void CCBeforeDownload(const enumCameraIndex& Cam, const enumWhichCCD& CCD);
117 virtual void CCAfterDownload(const enumCameraIndex& Cam, const enumWhichCCD& CCD);
119
120 //
124 virtual int initModalSettingsDialog(void){return 0;}
125 virtual int execModalSettingsDialog(void);
127
128 //
132 virtual void uiEvent(X2GUIExchangeInterface* uiex, const char* pszEvent);
134
135 //Implemenation below here
136private:
137 SerXInterface * GetSerX() {return m_pSerX; }
138 TheSkyXFacadeForDriversInterface * GetTheSkyXFacadeForDrivers() {return m_pTheSkyXForMounts;}
139 SleeperInterface * GetSleeper() {return m_pSleeper; }
140 BasicIniUtilInterface * GetBasicIniUtil() {return m_pIniUtil; }
141 LoggerInterface * GetLogger() {return m_pLogger; }
142 MutexInterface * GetMutex() const {return m_pIOMutex;}
143 TickCountInterface * GetTickCountInterface() {return m_pTickCount;}
144
145 SerXInterface * m_pSerX;
146 TheSkyXFacadeForDriversInterface * m_pTheSkyXForMounts;
147 SleeperInterface * m_pSleeper;
148 BasicIniUtilInterface * m_pIniUtil;
149 LoggerInterface * m_pLogger;
150 MutexInterface * m_pIOMutex;
151 TickCountInterface * m_pTickCount;
152
153 int m_nPrivateISIndex;
154
155 int width();
156 int height();
157 void setWidth(const int& nValue);
158 void setHeight(const int& nValue);
159
160 int m_dwFin;
161 int m_CachedBinX;
162 int m_CachedBinY;
163 int m_CachedCam;
164 double m_dCurTemp;
165 double m_dCurPower;
166
167 int doAddPixelDialogExample(int& xCoord, int& yCoord, bool& bPressedOK);
168};
169
170
171
The BasicIniUtilInterface is used to make properties persistent.
Definition basiciniutilinterface.h:21
The BasicStringInterface allows a string as an output.
Definition basicstringinterface.h:17
ReadOutMode
Definition cameradriverinterface.h:79
The LoggerInterface is a cross-platform logging utility passed to X2 implementors to show real-time,...
Definition loggerinterface.h:58
The ModalSettingsDialogInterface allows X2 implementors to display a customized settings user interfa...
Definition modalsettingsdialoginterface.h:23
The MutexInterface provides a cross-platform mutex.
Definition mutexinterface.h:16
The SerXInterface is a cross-plaform serial port.
Definition serxinterface.h:18
The SleeperInterface is a cross-platform "sleeper".
Definition sleeperinterface.h:15
The TheSkyXFacadeForDriversInterface is a simplified interface to TheSkyX passed to X2 implementors.
Definition theskyxfacadefordriversinterface.h:19
The TickCountInterface is a cross-platform way to measure relative timing.
Definition tickcountinterface.h:17
virtual int CCSetImageProps(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nReadOut, void *pImage)
Definition x2camera.cpp:362
virtual int CCGetFullDynamicRange(const enumCameraIndex &Camera, const enumWhichCCD &CCD, unsigned long &dwDynRg)
Definition x2camera.cpp:369
X2Camera(const char *pszSelectionString, const int &nISIndex, SerXInterface *pSerX, TheSkyXFacadeForDriversInterface *pTheSkyXForMounts, SleeperInterface *pSleeper, BasicIniUtilInterface *pIniUtil, LoggerInterface *pLogger, MutexInterface *pIOMutex, TickCountInterface *pTickCount)
Definition x2camera.cpp:29
virtual int CCRegulateTemp(const bool &bOn, const double &dTemp)
Definition x2camera.cpp:159
virtual void deviceInfoFirmwareVersion(BasicStringInterface &str)
Definition x2camera.cpp:126
virtual void CCAfterDownload(const enumCameraIndex &Cam, const enumWhichCCD &CCD)
Definition x2camera.cpp:321
virtual int CCDisconnect(const bool bShutDownTemp)
Definition x2camera.cpp:350
virtual double driverInfoVersion(void) const
Definition x2camera.cpp:100
virtual int queryAbstraction(const char *pszName, void **ppVal)
Definition x2camera.cpp:80
virtual int CCPulseOut(unsigned int nPulse, bool bAdjust, const enumCameraIndex &Cam)
Definition x2camera.cpp:310
virtual void driverInfoDetailedInfo(BasicStringInterface &str) const
Definition x2camera.cpp:94
virtual CameraDriverInterface::ReadOutMode readoutMode(void)
Definition x2camera.cpp:417
virtual void CCBeforeDownload(const enumCameraIndex &Cam, const enumWhichCCD &CCD)
Definition x2camera.cpp:316
virtual void CCMakeExposureState(int *pnState, enumCameraIndex Cam, int nXBin, int nYBin, int abg, bool bRapidReadout)
Definition x2camera.cpp:376
virtual int pathTo_rm_FitsOnDisk(char *lpszPath, const int &nPathSize)
Definition x2camera.cpp:405
virtual void setCameraId(enumCameraIndex Cam)
Definition x2camera.cpp:432
virtual int CCReadoutImage(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &nWidth, const int &nHeight, const int &nMemWidth, unsigned char *pMem)
Definition x2camera.cpp:340
virtual int CCStartExposure(const enumCameraIndex &Cam, const enumWhichCCD CCD, const double &dTime, enumPictureType Type, const int &nABGState, const bool &bLeaveShutterAlone)
Definition x2camera.cpp:179
virtual int CCReadoutLine(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &pixelStart, const int &pixelLength, const int &nReadoutMode, unsigned char *pMem)
Definition x2camera.cpp:327
virtual int CCGetChipSize(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nXBin, const int &nYBin, const bool &bOffChipBinning, int &nW, int &nH, int &nReadOut)
Definition x2camera.cpp:245
virtual int CCEndExposure(const enumCameraIndex &Cam, const enumWhichCCD CCD, const bool &bWasAborted, const bool &bLeaveShutterAlone)
Definition x2camera.cpp:226
virtual void uiEvent(X2GUIExchangeInterface *uiex, const char *pszEvent)
Definition x2camera.cpp:643
virtual int CCSettings(const enumCameraIndex &Camera, const enumWhichCCD &CCD)
Definition x2camera.cpp:391
virtual void deviceInfoModel(BasicStringInterface &str)
Definition x2camera.cpp:132
virtual int CCSetFan(const bool &bOn)
Definition x2camera.cpp:398
virtual int CCSetBinnedSubFrame(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nLeft, const int &nTop, const int &nRight, const int &nBottom)
Definition x2camera.cpp:383
virtual int CCActivateRelays(const int &nXPlus, const int &nXMinus, const int &nYPlus, const int &nYMinus, const bool &bSynchronous, const bool &bAbort, const bool &bEndThread)
Definition x2camera.cpp:304
virtual int CCGetBinSizeFromIndex(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nIndex, long &nBincx, long &nBincy)
Definition x2camera.cpp:273
virtual void setLinked(const bool bYes)
Definition x2camera.h:71
virtual int CCSetShutter(bool bOpen)
Definition x2camera.cpp:297
virtual enumCameraIndex cameraId()
Definition x2camera.cpp:425
virtual bool isLinked()
Definition x2camera.h:70
virtual int CCIsExposureComplete(const enumCameraIndex &Cam, const enumWhichCCD CCD, bool *pbComplete, unsigned int *pStatus)
Definition x2camera.cpp:208
virtual void deviceInfoNameLong(BasicStringInterface &str) const
Definition x2camera.cpp:114
virtual int CCEstablishLink(enumLPTPort portLPT, const enumWhichCCD &CCD, enumCameraIndex DesiredCamera, enumCameraIndex &CameraFound, const int nDesiredCFW, int &nFoundCFW)
Definition x2camera.cpp:139
virtual int CCGetNumBins(const enumCameraIndex &Camera, const enumWhichCCD &CCD, int &nNumBins)
Definition x2camera.cpp:259
virtual void deviceInfoNameShort(BasicStringInterface &str) const
Definition x2camera.cpp:108
virtual int CCQueryTemperature(double &dCurTemp, double &dCurPower, char *lpszPower, const int nMaxLen, bool &bCurEnabled, double &dCurSetPoint)
Definition x2camera.cpp:146
virtual int CCUpdateClock(void)
Definition x2camera.cpp:290
virtual int execModalSettingsDialog(void)
Definition x2camera.cpp:471
virtual void deviceInfoDetailedDescription(BasicStringInterface &str) const
Definition x2camera.cpp:120
virtual int CCDumpLines(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &nReadoutMode, const unsigned int &lines)
Definition x2camera.cpp:333
virtual int initModalSettingsDialog(void)
Definition x2camera.h:124
virtual int CCGetRecommendedSetpoint(double &dRecSP)
Definition x2camera.cpp:169
The X2UIEventsInterface notifies X2 implementors when user interface events happen.
Definition x2guiinterface.h:98
The X2GUIExchangeInterface provides the X2 developer the means to get and set data from a graphical u...
Definition x2guiinterface.h:23
X2 Examples
(C) 2026 Software Bisque, Inc. All rights reserved.