1 #if !defined(_CameraDriverInterFace_H_)
2 #define _CameraDriverInterFace_H_
4 #ifdef THESKYX_FOLDER_TREE
5 #include "imagingsystem/hardware/interfaces/licensed/driverrootinterface.h"
6 #include "imagingsystem/hardware/interfaces/licensed/linkinterface.h"
7 #include "imagingsystem/hardware/interfaces/licensed/deviceinfointerface.h"
8 #include "imagingsystem/hardware/interfaces/licensed/driverinfointerface.h"
9 #include "enumcameraindex.h"
10 #else//TheSkyX X2 Plug In Build
11 #include "../../licensedinterfaces/driverrootinterface.h"
12 #include "../../licensedinterfaces/linkinterface.h"
13 #include "../../licensedinterfaces/deviceinfointerface.h"
14 #include "../../licensedinterfaces/driverinfointerface.h"
19 CI_PLUGIN_LAST=CI_PLUGIN+50000,
24 #define CAMAPIVERSION 6
26 typedef enum {CCD_IMAGER, CCD_GUIDER} enumWhichCCD;
27 typedef enum {PT_UNKNOWN, PT_LIGHT, PT_BIAS, PT_DARK, PT_FLAT, PT_AUTODARK} enumPictureType;
30 typedef enum { zDEV_NONE, zDEV_LPT1, zDEV_LPT2, zDEV_LPT3, zDEV_USB=0x7F00, zDEV_ETH, zDEV_USB1, zDEV_USB2, zDEV_USB3, zDEV_USB4 } enumLPTPort;
88 virtual enumCameraIndex
cameraId() {
return m_Camera;}
90 virtual void setCameraId(enumCameraIndex Cam) {m_Camera = Cam;}
94 virtual void setLinked(
const bool bYes) {m_bLinked = bYes;}
101 virtual int pathTo_rm_FitsOnDisk(
char* lpszPath,
const int& nPathMaxSize){(void)lpszPath; (void)nPathMaxSize;
return 0;}
106 virtual int CCSettings(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD)=0;
109 virtual int CCEstablishLink(enumLPTPort portLPT,
const enumWhichCCD& CCD, enumCameraIndex DesiredCamera, enumCameraIndex& CameraFound,
const int nDesiredCFW,
int& nFoundCFW)=0;
114 virtual int CCGetChipSize(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
const int& nXBin,
const int& nYBin,
const bool& bOffChipBinning,
int& nW,
int& nH,
int& nReadOut)=0;
116 virtual int CCGetNumBins(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
int& nNumBins)=0;
118 virtual int CCGetBinSizeFromIndex(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
const int& nIndex,
long& nBincx,
long& nBincy)=0;
121 virtual int CCSetBinnedSubFrame(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
const int& nLeft,
const int& nTop,
const int& nRight,
const int& nBottom)=0;
124 virtual void CCMakeExposureState(
int* pnState, enumCameraIndex Cam,
int nXBin,
int nYBin,
int abg,
bool bRapidReadout)=0;
127 virtual int CCStartExposure(
const enumCameraIndex& Cam,
const enumWhichCCD CCD,
const double& dTime, enumPictureType Type,
const int& nABGState,
const bool& bLeaveShutterAlone)=0;
129 virtual int CCIsExposureComplete(
const enumCameraIndex& Cam,
const enumWhichCCD CCD,
bool* pbComplete,
unsigned int* pStatus)=0;
131 virtual int CCEndExposure(
const enumCameraIndex& Cam,
const enumWhichCCD CCD,
const bool& bWasAborted,
const bool& bLeaveShutterAlone)=0;
134 virtual int CCReadoutLine(
const enumCameraIndex& Cam,
const enumWhichCCD& CCD,
const int& pixelStart,
const int& pixelLength,
const int& nReadoutMode,
unsigned char* pMem)=0;
136 virtual int CCDumpLines(
const enumCameraIndex& Cam,
const enumWhichCCD& CCD,
const int& nReadoutMode,
const unsigned int& lines)=0;
139 virtual int CCReadoutImage(
const enumCameraIndex& Cam,
const enumWhichCCD& CCD,
const int& nWidth,
const int& nHeight,
const int& nMemWidth,
unsigned char* pMem)=0;
153 virtual int CCQueryTemperature(
double& dCurTemp,
double& dCurPower,
char* lpszPower,
const int nMaxLen,
bool& bCurEnabled,
double& dCurSetPoint)=0;
160 virtual int CCActivateRelays(
const int& nXPlus,
const int& nXMinus,
const int& nYPlus,
const int& nYMinus,
const bool& bSynchronous,
const bool& bAbort,
const bool& bEndThread)=0;
163 virtual int CCPulseOut(
unsigned int nPulse,
bool bAdjust,
const enumCameraIndex& Cam)=0;
171 virtual int CCSetImageProps(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
const int& nReadOut,
void* pImage)=0;
173 virtual int CCGetFullDynamicRange(
const enumCameraIndex& Camera,
const enumWhichCCD& CCD,
unsigned long& dwDynRg)=0;
183 enumCameraIndex m_Camera;
196 typedef __declspec(dllexport) int (*pfCamAPIDoCommand)(
const int& nCmd,
const int& nWhichCCD,
int* pnArg1,
char* lpszInOutStrArg,
const int& nInArgStrArgSize);
198 typedef int (*pfCamAPIDoCommand)(
const int& nCmd,
const int& nWhichCCD,
int* pnArg1,
char* lpszInOutStrArg,
const int& nInArgStrArgSize);
201 #endif //_CameraDriverInterFace_H_
virtual int CCDumpLines(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &nReadoutMode, const unsigned int &lines)=0
@ DT_CAMERA
Definition: driverrootinterface.h:30
virtual int CCSettings(const enumCameraIndex &Camera, const enumWhichCCD &CCD)=0
virtual int CCGetRecommendedSetpoint(double &dRecSP)=0
virtual int CCIsExposureComplete(const enumCameraIndex &Cam, const enumWhichCCD CCD, bool *pbComplete, unsigned int *pStatus)=0
virtual int CCReadoutLine(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &pixelStart, const int &pixelLength, const int &nReadoutMode, unsigned char *pMem)=0
The DriverRootInterface is the foundation for all X2 device drivers.
Definition: driverrootinterface.h:21
virtual void setLinked(const bool bYes)
Definition: cameradriverinterface.h:94
@ rm_FitsOnDisk
Definition: cameradriverinterface.h:82
virtual int CCEndExposure(const enumCameraIndex &Cam, const enumWhichCCD CCD, const bool &bWasAborted, const bool &bLeaveShutterAlone)=0
virtual int CCReadoutImage(const enumCameraIndex &Cam, const enumWhichCCD &CCD, const int &nWidth, const int &nHeight, const int &nMemWidth, unsigned char *pMem)=0
virtual int CCSetBinnedSubFrame(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nLeft, const int &nTop, const int &nRight, const int &nBottom)=0
ReadOutMode
Definition: cameradriverinterface.h:79
virtual int CCEstablishLink(enumLPTPort portLPT, const enumWhichCCD &CCD, enumCameraIndex DesiredCamera, enumCameraIndex &CameraFound, const int nDesiredCFW, int &nFoundCFW)=0
virtual void driverInfoDetailedInfo(BasicStringInterface &str) const =0
virtual int CCGetNumBins(const enumCameraIndex &Camera, const enumWhichCCD &CCD, int &nNumBins)=0
The CameraDriverInterface allows an X2 implementor to a write X2 camera driver.
Definition: cameradriverinterface.h:40
@ rm_Line
Definition: cameradriverinterface.h:80
virtual int CCQueryTemperature(double &dCurTemp, double &dCurPower, char *lpszPower, const int nMaxLen, bool &bCurEnabled, double &dCurSetPoint)=0
virtual void deviceInfoFirmwareVersion(BasicStringInterface &str)=0
virtual int CCActivateRelays(const int &nXPlus, const int &nXMinus, const int &nYPlus, const int &nYMinus, const bool &bSynchronous, const bool &bAbort, const bool &bEndThread)=0
virtual int CCPulseOut(unsigned int nPulse, bool bAdjust, const enumCameraIndex &Cam)=0
virtual DeviceType deviceType(void)
Definition: cameradriverinterface.h:54
@ rm_Image
Definition: cameradriverinterface.h:81
virtual int queryAbstraction(const char *pszName, void **ppVal)=0
The DriverInfoInterface provides X2 implementors a standarized way to provide driver specific informa...
Definition: driverinfointerface.h:15
virtual int CCRegulateTemp(const bool &bOn, const double &dTemp)=0
virtual int CCDisconnect(const bool bShutDownTemp)=0
virtual int CCSetFan(const bool &bOn)=0
virtual int CCUpdateClock(void)=0
virtual int CCSetShutter(bool bOpen)=0
virtual void deviceInfoNameShort(BasicStringInterface &str) const =0
virtual ReadOutMode readoutMode(void)
Definition: cameradriverinterface.h:99
The HardwareInfoInterface provides X2 implementors a standarized way to provide hardware specific inf...
Definition: deviceinfointerface.h:15
virtual int CCGetChipSize(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nXBin, const int &nYBin, const bool &bOffChipBinning, int &nW, int &nH, int &nReadOut)=0
virtual void setCameraId(enumCameraIndex Cam)
Definition: cameradriverinterface.h:90
DeviceType
Definition: driverrootinterface.h:26
virtual double driverInfoVersion(void) const =0
virtual void deviceInfoModel(BasicStringInterface &str)=0
virtual void CCBeforeDownload(const enumCameraIndex &Cam, const enumWhichCCD &CCD)=0
virtual enumCameraIndex cameraId()
Definition: cameradriverinterface.h:88
virtual int CCGetFullDynamicRange(const enumCameraIndex &Camera, const enumWhichCCD &CCD, unsigned long &dwDynRg)=0
virtual int CCStartExposure(const enumCameraIndex &Cam, const enumWhichCCD CCD, const double &dTime, enumPictureType Type, const int &nABGState, const bool &bLeaveShutterAlone)=0
virtual void deviceInfoDetailedDescription(BasicStringInterface &str) const =0
virtual void deviceInfoNameLong(BasicStringInterface &str) const =0
virtual int CCSetImageProps(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nReadOut, void *pImage)=0
virtual void CCAfterDownload(const enumCameraIndex &Cam, const enumWhichCCD &CCD)=0
virtual int pathTo_rm_FitsOnDisk(char *lpszPath, const int &nPathMaxSize)
Definition: cameradriverinterface.h:101
virtual bool isLinked()
Definition: cameradriverinterface.h:92
virtual int cameraDriverInterfaceVersion(void)
Definition: cameradriverinterface.h:97
The BasicStringInterface allows a string as an output.
Definition: basicstringinterface.h:17
virtual void CCMakeExposureState(int *pnState, enumCameraIndex Cam, int nXBin, int nYBin, int abg, bool bRapidReadout)=0
virtual int CCGetBinSizeFromIndex(const enumCameraIndex &Camera, const enumWhichCCD &CCD, const int &nIndex, long &nBincx, long &nBincy)=0
X2 Examples
(C) Software Bisque, Inc. All rights reserved.