00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef _LIBFLI_H_
00045 #define _LIBFLI_H_
00046
00047 #include <sys/types.h>
00048
00053 typedef long flidev_t;
00054
00066 typedef long flidomain_t;
00067
00068 #define FLIDOMAIN_NONE (0x00)
00069 #define FLIDOMAIN_PARALLEL_PORT (0x01)
00070 #define FLIDOMAIN_USB (0x02)
00071 #define FLIDOMAIN_SERIAL (0x03)
00072 #define FLIDOMAIN_INET (0x04)
00073
00074 #define FLIDEVICE_NONE (0x000)
00075 #define FLIDEVICE_CAMERA (0x100)
00076 #define FLIDEVICE_FILTERWHEEL (0x200)
00077 #define FLIDEVICE_FOCUSER (0x300)
00078
00085 typedef long fliframe_t;
00086
00087 #define FLI_FRAME_TYPE_NORMAL (0)
00088 #define FLI_FRAME_TYPE_DARK (1)
00089
00096 typedef long flibitdepth_t;
00097
00098 #define FLI_MODE_8BIT (0)
00099 #define FLI_MODE_16BIT (1)
00100
00111 typedef long flishutter_t;
00112
00113 #define FLI_SHUTTER_CLOSE (0x0000)
00114 #define FLI_SHUTTER_OPEN (0x0001)
00115 #define FLI_SHUTTER_EXTERNAL_TRIGGER (0x0002)
00116 #define FLI_SHUTTER_EXTERNAL_TRIGGER_LOW (0x0002)
00117 #define FLI_SHUTTER_EXTERNAL_TRIGGER_HIGH (0x0004)
00118
00126 typedef long flibgflush_t;
00127
00128 #define FLI_BGFLUSH_STOP (0x0000)
00129 #define FLI_BGFLUSH_START (0x0001)
00130
00138 typedef long flidebug_t;
00139
00140 #define FLIDEBUG_NONE (0x00)
00141 #define FLIDEBUG_INFO (0x01)
00142 #define FLIDEBUG_WARN (0x02)
00143 #define FLIDEBUG_FAIL (0x04)
00144 #define FLIDEBUG_ALL (FLIDEBUG_INFO | FLIDEBUG_WARN | FLIDEBUG_FAIL)
00145
00146 #ifdef WIN32
00147 #ifndef LIBFLIAPI
00148 #define LIBFLIAPI __declspec(dllimport) long __stdcall
00149 #endif
00150 #else
00151 #define LIBFLIAPI long
00152 #endif
00153
00154
00155
00156 #ifdef __cplusplus
00157 extern "C" {
00158 #endif
00159
00160 LIBFLIAPI FLIOpen(flidev_t *dev, char *name, flidomain_t domain);
00161 LIBFLIAPI FLISetDebugLevel(char *host, flidebug_t level);
00162 LIBFLIAPI FLIClose(flidev_t dev);
00163 LIBFLIAPI FLIGetLibVersion(char* ver, size_t len);
00164 LIBFLIAPI FLIGetModel(flidev_t dev, char* model, size_t len);
00165 LIBFLIAPI FLIGetPixelSize(flidev_t dev, double *pixel_x, double *pixel_y);
00166 LIBFLIAPI FLIGetHWRevision(flidev_t dev, long *hwrev);
00167 LIBFLIAPI FLIGetFWRevision(flidev_t dev, long *fwrev);
00168 LIBFLIAPI FLIGetArrayArea(flidev_t dev, long* ul_x, long* ul_y,
00169 long* lr_x, long* lr_y);
00170 LIBFLIAPI FLIGetVisibleArea(flidev_t dev, long* ul_x, long* ul_y,
00171 long* lr_x, long* lr_y);
00172 LIBFLIAPI FLISetExposureTime(flidev_t dev, long exptime);
00173 LIBFLIAPI FLISetImageArea(flidev_t dev, long ul_x, long ul_y,
00174 long lr_x, long lr_y);
00175 LIBFLIAPI FLISetHBin(flidev_t dev, long hbin);
00176 LIBFLIAPI FLISetVBin(flidev_t dev, long vbin);
00177 LIBFLIAPI FLISetFrameType(flidev_t dev, fliframe_t frametype);
00178 LIBFLIAPI FLICancelExposure(flidev_t dev);
00179 LIBFLIAPI FLIGetExposureStatus(flidev_t dev, long *timeleft);
00180 LIBFLIAPI FLISetTemperature(flidev_t dev, double temperature);
00181 LIBFLIAPI FLIGetTemperature(flidev_t dev, double *temperature);
00182 LIBFLIAPI FLIGrabRow(flidev_t dev, void *buff, size_t width);
00183 LIBFLIAPI FLIExposeFrame(flidev_t dev);
00184 LIBFLIAPI FLIFlushRow(flidev_t dev, long rows, long repeat);
00185 LIBFLIAPI FLISetNFlushes(flidev_t dev, long nflushes);
00186 LIBFLIAPI FLISetBitDepth(flidev_t dev, flibitdepth_t bitdepth);
00187 LIBFLIAPI FLIReadIOPort(flidev_t dev, long *ioportset);
00188 LIBFLIAPI FLIWriteIOPort(flidev_t dev, long ioportset);
00189 LIBFLIAPI FLIConfigureIOPort(flidev_t dev, long ioportset);
00190 LIBFLIAPI FLILockDevice(flidev_t dev);
00191 LIBFLIAPI FLIUnlockDevice(flidev_t dev);
00192 LIBFLIAPI FLIControlShutter(flidev_t dev, flishutter_t shutter);
00193 LIBFLIAPI FLIControlBackgroundFlush(flidev_t dev, flibgflush_t bgflush);
00194 LIBFLIAPI FLIList(flidomain_t domain, char ***names);
00195 LIBFLIAPI FLIFreeList(char **names);
00196 LIBFLIAPI FLISetFilterPos(flidev_t dev, long filter);
00197 LIBFLIAPI FLIGetFilterPos(flidev_t dev, long *filter);
00198 LIBFLIAPI FLIGetFilterCount(flidev_t dev, long *filter);
00199 LIBFLIAPI FLIStepMotor(flidev_t dev, long steps);
00200 LIBFLIAPI FLIGetStepperPosition(flidev_t dev, long *position);
00201 LIBFLIAPI FLIHomeFocuser(flidev_t dev);
00202 LIBFLIAPI FLICreateList(flidomain_t domain);
00203 LIBFLIAPI FLIDeleteList(void);
00204 LIBFLIAPI FLIListFirst(flidomain_t *domain, char *filename,
00205 size_t fnlen, char *name, size_t namelen);
00206 LIBFLIAPI FLIListNext(flidomain_t *domain, char *filename,
00207 size_t fnlen, char *name, size_t namelen);
00208
00209
00210 #ifdef __cplusplus
00211 }
00212 #endif
00213
00214 #endif