/usr/include/libindi/indiccd.h is in libindi-dev 0.8-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | /*******************************************************************************
Copyright(c) 2010 Gerry Rozema. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
The full GNU General Public License is included in this distribution in the
file called LICENSE.
*******************************************************************************/
#ifndef INDI_CCD_H
#define INDI_CCD_H
#include "defaultdriver.h"
#define FRAME_TYPE_LIGHT 0
#define FRAME_TYPE_BIAS 1
#define FRAME_TYPE_DARK 2
#define FRAME_TYPE_FLAT 3
class INDI::CCD : public INDI::DefaultDriver
{
protected:
char *RawFrame;
int RawFrameSize;
// Altho these numbers are indeed stored in the indi properties
// It makes for much cleaner code if we have 'plain old number' copies
// So, when we process messages, just update both
int XRes; // native resolution of the ccd
int YRes; // ditto
int SubX; // left side of the subframe we are requesting
int SubY; // top of the subframe requested
int SubW; // width of the subframe
int SubH; // height of the subframe
int BinX; // Binning requested in the x direction
int BinY; // Binning requested in the Y direction
float PixelSizex; // pixel size in microns, x direction
float PixelSizey; // pixel size in microns, y direction
bool SendCompressed;
bool HasSt4Port;
// If the camera has a second ccd, or integrated guide head
// we need information on that one too
bool HasGuideHead;
char *RawGuiderFrame;
int RawGuideSize;
int GXRes; // native resolution of the guide head
int GYRes; // native resolution
int GSubX; // left side of the guide image subframe
int GSubY; // top of the guide image subframe
int GSubW; // Width of the guide image
int GSubH; // Height of the guide image
float GPixelSizex; // phyiscal size of the guider pixels
float GPixelSizey;
bool GuiderCompressed;
int FrameType;
private:
public:
CCD();
virtual ~CCD();
// A ccd needs to desribe the frame
//INumberVectorProperty CcdFrameNV;
//INumberVectorProperty CcdExposureNV;
//INumberVectorProperty CcdBinNV;
//INumberVectorProperty CcdPixelSizeNV;
INumberVectorProperty ImageFrameNV;
INumber ImageFrameN[4];
INumberVectorProperty ImageBinNV;
INumber ImageBinN[2];
INumberVectorProperty ImagePixelSizeNV;
INumber ImagePixelSizeN[6];
INumberVectorProperty ImageExposureNV;
INumber ImageExposureN[1];
//INumberVectorProperty ImageExposureReqNV;
//INumber ImageExposureReqN[1];
INumberVectorProperty GuiderFrameNV;
INumber GuiderFrameN[4];
INumberVectorProperty GuiderPixelSizeNV;
INumber GuiderPixelSizeN[6];
INumberVectorProperty GuiderExposureNV;
INumber GuiderExposureN[1];
ISwitch FrameTypeS[4];
ISwitchVectorProperty FrameTypeSV;
ISwitch CompressS[2];
ISwitchVectorProperty CompressSV;
ISwitch GuiderCompressS[2];
ISwitchVectorProperty GuiderCompressSV;
ISwitch GuiderVideoS[2];
ISwitchVectorProperty GuiderVideoSV;
INumber GuideNS[2];
INumberVectorProperty GuideNSV;
INumber GuideEW[2];
INumberVectorProperty GuideEWV;
IBLOB FitsB;
IBLOBVectorProperty FitsBV;
IBLOB GuiderB;
IBLOBVectorProperty GuiderBV;
virtual bool initProperties();
virtual bool updateProperties();
virtual void ISGetProperties (const char *dev);
virtual bool ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n);
virtual bool ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n);
virtual bool ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) {return false;}
virtual int StartExposure(float duration);
virtual bool ExposureComplete();
virtual int StartGuideExposure(float duration);
virtual bool AbortGuideExposure();
virtual bool GuideExposureComplete();
virtual int uploadfile(void *fitsdata,int total);
virtual int sendPreview();
// Handy functions for child classes
virtual int SetCCDParams(int x,int y,int bpp,float xf,float yf);
virtual int SetGuidHeadParams(int x,int y,int bpp,float xf,float yf);
virtual int GuideNorth(float);
virtual int GuideSouth(float);
virtual int GuideEast(float);
virtual int GuideWest(float);
virtual int SetFrameType(int);
};
#endif // INDI:CCD_H
|