/* ----------------------------------------------------------------------- */
/* -               Astronomical CCD Camera Control                       - */
/* -                         Header File                                 - */
/* ----------------------------------------------------------------------- */
/*                                                                         */
/* Copyright (c) 2004-2011 John Kielkopf                                   */
/* kielkopf@louisville.edu                                                 */
/*                                                                         */
/* This file is part of XmCCD.                                             */
/*                                                                         */
/* Distributed under the terms of the General Public License (see LICENSE) */ 
/*                                                                         */
/* Date: August 6, 2011                                                    */
/* Version: 3.1.2                                                          */


/* Useful values */

#ifndef FALSE
#define FALSE 0
#endif

#ifndef TRUE
#define TRUE 1
#endif
 
/* Map sky to +x=1, -x=2, +y=4, -y=8 relays */

#define EAST      1 
#define WEST      2
#define NORTH     4
#define SOUTH     8 

/* Expected detector properties */
  
#define IMAGEXMAX  3072
#define IMAGEYMAX  2048
#define TRACKXMAX  657
#define TRACKYMAX  495

#define ARCSEC_PER_PIXEL  0.5372967

/* Filter options */

/* FILTER_MAX should match the choice of filter wheel type                 */
/* FILTERS_START is the default startup setting                            */
/* For consistency set both to 1 if NO_FILTER_WHEEL on this camera         */
/* Filter labels are set in the startup preferences file                   */


#define FILTER_START 1
#define FILTER_MAX 6

/* Diagnostic flag */
/* Set to 0 to disable, 1 to see XML, 2 to see selected flags and values */

#define DIAGNOSTICS     0            

/* Menubar identifiers */

#define OK                   1
#define CANCEL               2

#define FILENAME             3
#define FILETARGET           4
#define FILETELESCOPE        5
#define FILEEXIT             6

#define SETIMAGEEXP          7  
#define SETTRACKEXP          8
#define SETIMAGENUMBER       9
#define SETFRAMECOUNTMULTI  10
#define SETIMAGESUBAREA     11
#define SETTRACKSUBAREA     12
#define SETTEMPERATURE      13
                            
#define MODESINGLE          14
#define MODEFOCUS           15
#define MODEMULTI           16
                            
#define DETECTORIMAGE       17
#define DETECTORTRACK       18

#define TYPELIGHT           19
#define TYPEDARK            20
#define TYPEBIAS            21
#define TYPEFLAT            22  
                          
#define GUIDEUNGUIDED       23
#define GUIDETRACKING       24
#define GUIDEOPTICAL        25
#define GUIDESELFTRACKING   26
#define GUIDESELFOPTICAL    27

/* Filter radio toggle flags */

#define FILTER1   101
#define FILTER2   102
#define FILTER3   103
#define FILTER4   104
#define FILTER5   105
#define FILTER6   106
#define FILTER7   107
#define FILTER8   108
#define FILTER9   109
#define FILTER10  110



/* Cooling dialog flags */

#define COOL_ON   1
#define COOL_OFF  0

/* Image subarea dialog flags */

#define IMAGE_SUBAREA_ON   1
#define IMAGE_SUBAREA_OFF  0

/* Track subarea dialog flags */

#define TRACK_SUBAREA_ON   1
#define TRACK_SUBAREA_OFF  0

/* Acquisition modes */

#define FRAMECOUNTMULTI     100    /* Maximum number of frames in a sequence */

#define SINGLE       0     /* One exposure only */ 
#define FOCUS        1     /* Focus exposures with no storage */
#define MULTI        2     /* Repeated exposures with storage */

/* Startup parameters */

#define	POLLMS      1000   /* Poll period, ms */
#define	IMGMAXEXP   3600.  /* Maximum image ccd exposure */
#define	IMGMINEXP   0.2    /* Minimum image ccd exposure */
#define	IMGDEFEXP   1.0    /* Default image exposure (seconds) */
#define	TRKMAXEXP   100.   /* Maximum track ccd exposure */
#define	TRKMINEXP   0.2    /* Minimum track ccd exposure */
#define	TRKDEFEXP   0.4    /* Default track exposure */

/* File transfer */

#define NOCOPY   0
#define NETCOPY  1
#define INDICOPY 2

/* Constants */

#define PI  3.14159265359

/* INDI */

#define INDIPORT	7624	/* default port */

/* Parameters defined in protocol.h and also needed here */

/* Device selection */

#define IMAGE            0
#define TRACK            1

/* Guiding mode */

#define UNGUIDED         0
#define TRACKING         1 
#define OPTICAL          2
#define SELFTRACKING     3 
#define SELFOPTICAL      4
 

/* Frame type */

#define DARK             0     
#define LIGHT            1 
#define BIAS             2
#define FLAT             3  

