/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
 |