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

/* User interface polling */

#define	POLLMS      1000   /* Poll period, ms */


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

#define RELAYONTIME 1.0 

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

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

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

#define DIAGNOSTICS     0 


/* Operation flags */

#define STATUS_OFF  0
#define STATUS_ON   1
#define STATUS_EXIT 2           

/* Cooling dialog flags */

#define COOL_ON   1
#define COOL_OFF  0

/* Region dialog flags */

#define REGION_ON   1
#define REGION_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	MINEXP   0.001     /* Minimum image ccd exposure            */
#define	MAXEXP   3600.     /* Maximum image ccd exposure            */
#define	DEFEXP   1.0       /* Default image exposure (seconds)      */


/* Menu identifiers */

#define OK                   1
#define CANCEL               2

#define FILECLOSE            4
#define FILEEXIT             5

#define SETIMAGEEXPOSURE     6  
#define SETIMAGENUMBER       7 
#define SETFRAMECOUNTMULTI   8 
#define SETREGION            9  
#define SETCCDTEMPERATURE   10
#define FITSNAME            11
#define FITSTARGET          12
#define FITSTELESCOPE       13
#define FITSINSTRUMENT      14


#define MODESINGLE          15
#define MODEFOCUS           16
#define MODEMULTI           17

#define TYPELIGHT           18
#define TYPEDARK            19
#define TYPEBIAS            20
#define TYPEFLAT            21  

#define PROCSCRIPTING       23




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

/* Frame type */

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





