00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PM_FPA_FILE_H
00012 #define PM_FPA_FILE_H
00013
00014
00015
00016
00017 #include "pslib.h"
00018 #include "pmConfig.h"
00019 #include "pmFPA.h"
00020 #include "pmFPAview.h"
00021
00022 typedef enum {
00023 PM_FPA_BEFORE,
00024 PM_FPA_AFTER,
00025 } pmFPAfilePlace;
00026
00027 typedef enum {
00028 PM_FPA_FILE_NONE,
00029 PM_FPA_FILE_SX,
00030 PM_FPA_FILE_OBJ,
00031 PM_FPA_FILE_CMP,
00032 PM_FPA_FILE_CMF,
00033 PM_FPA_FILE_RAW,
00034 PM_FPA_FILE_IMAGE,
00035 PM_FPA_FILE_PSF,
00036 PM_FPA_FILE_JPEG,
00037 PM_FPA_FILE_KAPA,
00038 PM_FPA_FILE_MANAPLOT,
00039 PM_FPA_FILE_MASK,
00040 PM_FPA_FILE_WEIGHT,
00041 PM_FPA_FILE_FRINGE,
00042 } pmFPAfileType;
00043
00044 typedef enum {
00045 PM_FPA_MODE_NONE,
00046 PM_FPA_MODE_READ,
00047 PM_FPA_MODE_WRITE,
00048 PM_FPA_MODE_INTERNAL,
00049 PM_FPA_MODE_REFERENCE,
00050 } pmFPAfileMode;
00051
00052 typedef enum {
00053 PM_FPA_STATE_OPEN = 0x01,
00054 PM_FPA_STATE_CLOSED = 0x02,
00055 PM_FPA_STATE_INACTIVE = 0x04,
00056 } pmFPAfileState;
00057
00058 typedef struct
00059 {
00060 pmFPAfileMode mode;
00061 pmFPAfileType type;
00062 pmFPAfileState state;
00063
00064
00065 pmFPALevel fileLevel;
00066 pmFPALevel dataLevel;
00067 pmFPALevel freeLevel;
00068 pmFPALevel mosaicLevel;
00069
00070 pmFPA *fpa;
00071 psFits *fits;
00072
00073 bool phu;
00074 psMetadata *header;
00075
00076 pmReadout *readout;
00077
00078 psMetadata *names;
00079
00080 char *filerule;
00081 char *filextra;
00082 char *extrule;
00083 char *extxtra;
00084
00085 char *name;
00086 char *filename;
00087 char *extname;
00088
00089 bool save;
00090
00091
00092
00093 pmFPA *src;
00094 int xBin;
00095 int yBin;
00096
00097 psMetadata *camera;
00098 psMetadata *format;
00099 }
00100 pmFPAfile;
00101
00102
00103 pmFPAfile *pmFPAfileAlloc ();
00104
00105
00106 pmReadout *pmFPAfileThisReadout (psMetadata *files, const pmFPAview *view, const char *name);
00107
00108
00109 pmCell *pmFPAfileThisCell (psMetadata *files, const pmFPAview *view, const char *name);
00110
00111
00112 pmChip *pmFPAfileThisChip (psMetadata *files, const pmFPAview *view, const char *name);
00113
00114
00115 bool pmFPAfileAddFileNames (psMetadata *files, char *name, char *value, int mode);
00116
00117
00118 char *pmFPAfileNameFromRule (char *rule, pmFPAfile *file, const pmFPAview *view);
00119
00120 bool pmFPAfileCopyView (pmFPA *out, pmFPA *in, const pmFPAview *view);
00121
00122 bool pmFPAfileCopyStructureView (pmFPA *out, pmFPA *in, int xBin, int yBin, const pmFPAview *view);
00123
00124
00125 pmFPAfileType pmFPAfileTypeFromString(const char *type);
00126
00127
00128 # endif