/* ----------------------------------------------------------------------- */
/* -                 Astronomical CCD Camera Control                     - */
/* -               Apogee Camera Protocol Header File                    - */
/* ----------------------------------------------------------------------- */
/*                                                                         */
/* Copyright 2011 John Kielkopf                                            */
/* kielkopf@louisville.edu                                                 */
/*                                                                         */
/* This file is part of XmCCD.                                             */
/*                                                                         */
/* XmCCD 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 3 of the License, or       */
/* (at your option) any later version.                                     */
/*                                                                         */
/* XmCCD 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.                            */   
/*                                                                         */
/* Date: August 6, 2011                                                    */
/* Version 3.1.2                                                           */

#include <libapogeedrv.h>

/* Needed for ethernet support */
/* Default hex ip address */

#define CCD_ETH  0xc0a80001 

/* Manufacturer types would go here */

/* Define camera types for our own use */

#define NO_CAMERA  0xFFFF
#define SIM_CAMERA 0xFFFE
#define SBIG_STL   0xFFFB
#define SBIG_ST10  0xFFFA
#define SBIG_ST9   0xFFF9
#define SBIG_ST8   0xFFF8
#define SBIG_ST7   0xFFF7
#define SBIG       0xFFF0
#define APOGEE     0xFFE0

/* If self_tracking detector is available set this TRUE */

#define SELF_TRACKING FALSE

/* If auxiliary tracking detector is available set this TRUE too */

#define AUX_TRACKING FALSE

/* Device status flags */

#define IDLE 0
#define INTEGRATING 1
#define COMPLETE 2

/* Filter wheel support */
/* Set specific filter wheel here */

#define NO_FILTER_WHEEL 0xFFFF
#define EXT_FILTER_WHEEL 0xFFFE
#define FILTER_START 1
#define FILTER_MAX 6
#define FILTER_WHEEL  EXT_FILTER_WHEEL

/* The following are included here for compatibility with SBIG drivers     */

#define CFWSEL_AUTO   NO_FILTER_WHEEL
#define CFWSEL_CFWL   NO_FILTER_WHEEL
#define CFWSEL_CFWL8  NO_FILTER_WHEEL
#define CFWSEL_CFW8   NO_FILTER_WHEEL
#define CFWSEL_CFW10  NO_FILTER_WHEEL

/* If no filter wheel is present use NO_FILTERWHEEL                        */
/* For an externally controlled filter wheel use EXT_FILTER_WHEEL          */

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

/* Adaptive optics */

#define NO_AO     0 
#define SBIG_AO   1
#define EXT_AO    2
#define ADAPTIVEOPTICS   SBIG_AO

/* Shutter flag */

#define LEAVE    0
#define OPEN     1
#define CLOSED   2

/* Image device */

#define IMAGE            0
#define TRACK            1
#define TRACK2           2    

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

/* Supported interfaces */

#define USB              0
#define ETH              1
#define PIO              2

/* Guider feedback values may be modified in startup preferences */

#define GUIDE_THRESHOLD     100
#define GUIDE_X2AOX          10.0
#define GUIDE_Y2AOX           0.0
#define GUIDE_X2AOY           0.0
#define GUIDE_Y2AOY          10.0
#define GUIDE_X2TRACKX        0.0
#define GUIDE_Y2TRACKX        0.03
#define GUIDE_X2TRACKY       -0.03
#define GUIDE_Y2TRACKY        0.5


