2015-05-12 14:28:15 +03:00

175 lines
5.2 KiB
C

/*
* libapogee.h - header for libapogee C wrapper
*
* Copyright 2013 Edward V. Emelianoff <eddy@sao.ru>
*
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#pragma once
#ifndef __LIBAPOGEE_H__
#define __LIBAPOGEE_H__
#ifndef _U_
#define _U_ __attribute__((unused))
#endif
// errors:
typedef enum{
ALTA_OK = 0 // all good
,ALTA_UNDEF // undefined error
,ALTA_NO_SUCH_DEVICE // can't open: no such device
,ALTA_CANT_CLOSE // error when closing device
,ALTA_BAD_FANSPD // bad fan speed (should be 0..3)
,ALTA_BAD_GEOMETRY // bad geometry parameter
,ALTA_COOLER // something wrong with cooler
,ALTA_SHTR // something wrong with shutter
,ALTA_BADSPD // error setting speed
,ALTA_POWER // error when working with power modes
,ALTA_EXPOSURE // error when exposing image
,ALTA_GETIMAGE // error getting image
,ALTA_NOTWHEEL // device isn't a filter wheel
,ALTA_BADWHEELPOS // bad wheel position
}CCDerr;
extern CCDerr altaerr;
// some definitions from CameraInfo.h ==================>
typedef enum{
CameraMode_Normal = 0,
CameraMode_TDI,
CameraMode_Test,
CameraMode_ExternalTrigger,
CameraMode_ExternalShutter,
CameraMode_Kinetics,
CameraMode_Unknown
}Apn_CameraMode;
typedef enum{
Resolution_SixteenBit = 0,
Resolution_TwelveBit
}Apn_Resolution;
typedef enum{
Status_ConnectionError = -3,
Status_DataError = -2,
Status_PatternError = -1,
Status_Idle = 0,
Status_Exposing = 1,
Status_ImagingActive = 2,
Status_ImageReady = 3,
Status_Flushing = 4,
Status_WaitingOnTrigger = 5
}Apn_Status;
typedef enum{
UNKNOWN_TYPE = 0,
FW50_9R = 1,
FW50_7S = 2,
AFW25_4R = 3,
AFW30_7R = 4,
AFW50_5R = 5,
AFW50_10S = 6,
AFW31_17R = 9
}Apn_Filter;
typedef enum{
CoolerStatus_Off = 0,
CoolerStatus_RampingToSetPoint = 1,
CoolerStatus_AtSetPoint = 2,
CoolerStatus_Revision = 3,
CoolerStatus_Suspended = 4
}Cooler_Status;
typedef enum{
AdcSpeed_Unknown,
AdcSpeed_Normal,
AdcSpeed_Fast,
AdcSpeed_Video
}Adc_Speed;
// For back-compatible
#define Apn_CameraMode_Normal CameraMode_Normal
#define Apn_CameraMode_TDI CameraMode_TDI
#define Apn_CameraMode_Test CameraMode_Test
#define Apn_CameraMode_ExternalTrigger CameraMode_ExternalTrigger
#define Apn_CameraMode_ExternalShutter CameraMode_ExternalShutter
#define Apn_CameraMode_Kinetics CameraMode_Kinetics
#define Apn_Resolution_SixteenBit Resolution_SixteenBit
#define Apn_Resolution_TwelveBit Resolution_TwelveBit
#define Apn_Filter_Unknown UNKNOWN_TYPE
#define Apn_Filter_FW50_9R FW50_9R
#define Apn_Filter_FW50_7S FW50_7S
#define Apn_Filter_AFW25_4R AFW25_4R
#define Apn_Filter_AFW30_7R AFW30_7R
#define Apn_Filter_AFW50_5R AFW50_5R
#define Apn_Filter_AFW50_10S AFW50_10S
#define Apn_Filter_AFW31_17R AFW31_17R
#define Apn_FilterStatus_NotConnected 0
#define Apn_FilterStatus_Ready 1
#define Apn_FilterStatus_Active 2
// <================== some definitions from CameraInfo.h
#ifdef __cplusplus
extern "C" {
#endif
// Camera
void ApnGlueSetSubnet(char *val);
int ApnGlueIsEthernet();
void ApnGlueSetMsgId(char *str);
int ApnGlueOpen(unsigned int id);
void ApnGlueClose();
void ApnGlueGetName(char **sensor, char **camera);
void ApnGlueSetFan(int speed);
int ApnGlueGetFan();
int ApnGlueSetExpGeom (int roiw, int roih, int osw, int osh, int binw,
int binh, int roix, int roiy, int *impixw, int *impixh, char whynot[]);
void ApnGlueGetGeom(double *pixX, double *pixY);
void ApnGlueGetMaxValues (double *exptime, int *roiw, int *roih, int *osw,
int *osh, int *binw, int *binh, int *shutter, double *mintemp);
int ApnGlueGetTemp(double *Cp);
double ApnGlueGetHotTemp();
void ApnGlueSetTemp(double C);
int ApnGlueReadSetPoint(double *temp, int *stat);
int ApnGlueReadShutter();
void ApnGlueOpenShutter(int flag);
unsigned short ApnGlueGetSpeed();
void ApnGlueSetSpeed(unsigned short Sp);
void ApnGlueReset();
int ApnGluePowerDown();
void ApnGluePowerResume();
void ApnGlueDisablePostExpFlushing(int flag);
void ApnGluePreFlash(int flag);
void ApnGlueSetDatabits(Apn_Resolution BitResolution);
void ApnGlueWriteCamMode(Apn_CameraMode CameraMode);
int ApnGlueStartExp (double *exptime, int shutter);
void ApnGluePauseTimer(int flag);
int ApnGlueExpDone();
void ApnGlueExpAbort(void);
int ApnGlueStopExposure();
int ApnGlueReadPixels(unsigned short *buf, int nbuf, char whynot[]);
char *ApnGlueGetInfo(int *pid, int *vid);
// Wheel
int ApnGlueWheelOpen(unsigned int id, Apn_Filter type);
void ApnGlueWheelClose();
int ApnGlueWheelGetStatus();
int ApnGlueWheelGetMaxPos();
int ApnGlueWheelSetPos(int pos);
int ApnGlueWheelGetPos();
#ifdef __cplusplus
}
#endif
#endif // __LIBAPOGEE_H__