96 #ifndef FLAMES_MIDAS_DEF_H
97 #define FLAMES_MIDAS_DEF_H
102 #include <uves_cpl_size.h>
120 #define D_OLD_FORMAT 0
121 #define D_I1_FORMAT 1
122 #define D_I2_FORMAT 2
123 #define D_UI2_FORMAT 102
124 #define D_I4_FORMAT 4
125 #define D_R4_FORMAT 10
126 #define D_R8_FORMAT 18
129 #define D_L4_FORMAT 24
130 #define D_C_FORMAT 30
175 #define SCSPRO(name) flames_midas_scspro(name)
176 #define SCSEPI() flames_midas_scsepi()
181 #define SCTPUT(msg) flames_midas_sctput(msg, __func__, __FILE__, __LINE__)
184 #define SCKGETC(key, felem, maxvals, actvals, values) flames_midas_sckgetc(key, felem, maxvals, actvals, values)
185 #define SCKGETC_fs(key, felem, maxvals, actvals, values) flames_midas_sckgetc_fs(key, felem, maxvals, actvals, values)
186 #define SCKGETC_fsp(key, felem, maxvals, actvals, values) flames_midas_sckgetc_fsp(key, felem, maxvals, actvals, values)
187 #define SCKFND(key, type, noelem, bytelem) flames_midas_sckfnd(key, type, noelem, bytelem)
188 #define SCKFND_double(key, type, noelem, bytelem) flames_midas_sckfnd_double(key, type, noelem, bytelem)
189 #define SCKFND_float(key, type, noelem, bytelem) flames_midas_sckfnd_float(key, type, noelem, bytelem)
190 #define SCKFND_int(key, type, noelem, bytelem) flames_midas_sckfnd_int(key, type, noelem, bytelem)
191 #define SCKFND_string(key, type, noelem, bytelem) flames_midas_sckfnd_string(key, type, noelem, bytelem)
193 #define SCKRDD(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdd(key, felem, maxvals, actvals, values, unit, null)
194 #define SCKRDC(key, noelem, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdc(key, noelem, felem, maxvals, actvals, values, unit, null)
195 #define SCKRDI(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdi(key, felem, maxvals, actvals, values, unit, null)
196 #define SCKRDR(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdr(key, felem, maxvals, actvals, values, unit, null)
198 #define SCKWRC(key, noelem, values, felem, maxval, unit) flames_midas_sckwrc(key, noelem, values, felem, maxval, unit)
199 #define SCKWRD(key, values, felem, maxval, unit) flames_midas_sckwrd(key, values, felem, maxval, unit)
200 #define SCKWRI(key, values, felem, maxval, unit) flames_midas_sckwri(key, values, felem, maxval, unit)
203 #define SCCADD(catfile, name, ident) flames_midas_sccadd(catfile, name, ident)
204 #define SCCCRE(catfile, type, flag) flames_midas_scccre(catfile, type, flag)
205 #define SCCFND(catfile, frmno, frame) flames_midas_sccfnd(catfile, frmno, frame)
206 #define SCCGET(catfile, flag, name, ident, no) flames_midas_sccget(catfile, flag, name, ident, no)
207 #define SCCSHO(catfile, noent, last) flames_midas_sccsho(catfile, noent, last)
210 #define SCFINF(name, fno, ibuf) flames_midas_scfinf(name, fno, ibuf)
211 #define SCFCRE(name, dattype, iomode, filtype, size, imno) flames_midas_scfcre(name, dattype, iomode, filtype, size, imno)
212 #define SCFOPN(name, dattype, newopn, filtype, imno) flames_midas_scfopn(name, dattype, newopn, filtype, imno)
213 #define SCFCLO(imno) flames_midas_scfclo(imno)
214 #define SCFPUT(imno, felem, size, bufadr) flames_midas_scfput(imno, felem, size, bufadr)
215 #define SCFGET(imno, felem, size, actsize, bufadr) flames_midas_scfget(imno, felem, size, actsize, bufadr)
218 #define SCDFND(imno, descr, type, noelem, bytelem) flames_midas_scdfnd(imno, descr, type, noelem, bytelem)
219 #define SCDPRS(imno, descr, type, noelem, bytelem) flames_midas_scdprs(imno, descr, type, noelem, bytelem)
220 #define SCDRDI(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdi(imno, descr, felem, maxvals, actvals, values, unit, null)
221 #define SCDRDD(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdd(imno, descr, felem, maxvals, actvals, values, unit, null)
222 #define SCDWRI(imno, descr, values, felem, nval, unit) flames_midas_scdwri(imno, descr, values, felem, nval, unit)
223 #define SCDWRD(imno, descr, values, felem, nval, unit) flames_midas_scdwrd(imno, descr, values, felem, nval, unit)
224 #define SCDWRR(imno, descr, values, felem, nval, unit) flames_midas_scdwrr(imno, descr, values, felem, nval, unit)
225 #define SCDWRC(imno, descr, noelm, values, felem, nval, unit) flames_midas_scdwrc(imno, descr, noelm, values, felem, nval, unit)
226 #define SCDCOP(from, to, mask) flames_midas_scdcop(from, to, mask)
227 #define SCDCOP_nonaxis(from, to, mask) flames_midas_scdcop_nonaxis(from, to, mask)
228 #define SCDDEL(imno, descr) flames_midas_scddel(imno, descr)
229 #define SCDRDR(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdr(imno, descr, felem, maxvals, actvals, values, unit, null)
230 #define SCDRDC(imno, descr, noelem, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdc(imno, descr, noelem, felem, maxvals, actvals, values, unit, null)
232 #define SCDGETC(imno, descr, felem, maxvals, actvals, values) SCDRDC(imno, descr, 1, felem, maxvals, actvals, values, NULL, NULL)
235 #define TCTOPN(name, mode, tid) flames_midas_tctopn(name, mode, -1, tid)
236 #define TCTCLO(tid) flames_midas_tctclo(tid)
237 #define TCCSER(tid, colref, column) flames_midas_tccser(tid, colref, column)
238 #define TCIGET(tid, column, row) flames_midas_tciget(tid, column, row)
240 #define TCERDD(tid, row, column, value, null) flames_midas_tcerdd(tid, row, column, value, null)
242 #define TCBGET(tid, column, dtype, items, bytes) flames_midas_tcbget(tid, column, dtype, items, bytes)
244 #define TCCINI(tid, dtype, alen, form, unit, label, column) flames_midas_tccini(tid, dtype, alen, form, unit, label, column)
245 #define TCDGET(tid, store) flames_midas_tcdget(tid, store)
247 #define TCERDC(tid, row, column, values, null) flames_midas_tcerdc(tid, row, column, values, null)
248 #define TCERDI(tid, row, column, values, null) flames_midas_tcerdi(tid, row, column, values, null)
249 #define TCERDR(tid, row, column, values, null) flames_midas_tcerdr(tid, row, column, values, null)
250 #define TCEWRC(tid, row, column, value) flames_midas_tcewrc(tid, row, column, value)
251 #define TCEWRD(tid, row, column, value) flames_midas_tcewrd(tid, row, column, value)
252 #define TCEWRI(tid, row, column, value) flames_midas_tcewri(tid, row, column, value)
253 #define TCEWRR(tid, row, column, value) flames_midas_tcewrr(tid, row, column, value)
255 #define TCARDC(tid, row, col, index, items, value) flames_midas_tcardc(tid, row, col, index, items, value)
256 #define TCARDD(tid, row, col, index, items, value) flames_midas_tcardd(tid, row, col, index, items, value)
257 #define TCARDI(tid, row, col, index, items, value) flames_midas_tcardi(tid, row, col, index, items, value)
258 #define TCARDR(tid, row, col, index, items, value) flames_midas_tcardr(tid, row, col, index, items, value)
259 #define TCAWRC(tid, row, col, index, items, value) flames_midas_tcawrc(tid, row, col, index, items, value)
260 #define TCAWRD(tid, row, col, index, items, value) flames_midas_tcawrd(tid, row, col, index, items, value)
261 #define TCAWRI(tid, row, col, index, items, value) flames_midas_tcawri(tid, row, col, index, items, value)
262 #define TCAWRR(tid, row, col, index, items, value) flames_midas_tcawrr(tid, row, col, index, items, value)
264 #define TCFGET(tid, column, form, dtype) flames_midas_tcfget(tid, column, form, dtype)
265 #define TCLGET(tid, column, label) flames_midas_tclget(tid, column, label)
266 #define TCLSER(tid, label, column) flames_midas_tclser(tid, label, column)
267 #define TCSGET(tid, row, value) flames_midas_tcsget(tid, row, value)
268 #define TCSPUT(tid, row, value) flames_midas_tcsput(tid, row, value)
271 #define TCTINI(name, mode, allrow, tid) flames_midas_tctopn(name, mode, allrow, tid)
273 #define TCUGET(tid, column, unit) flames_midas_tcuget(tid, column, unit)
275 #define flames_midas_fail() flames_midas_fail_macro(__FILE__, __func__, __LINE__)
276 #define flames_midas_error(status) flames_midas_error_macro(__FILE__, __func__, __LINE__, status)
294 int felem,
int maxvals,
295 int *actvals,
char *values);
297 int felem,
int maxvals,
298 int *actvals,
const cpl_frameset **values);
301 int felem,
int maxvals,
302 int *actvals, cpl_frameset ***values);
305 int *actvals,
double *values,
int *unit,
int *null);
307 int *actvals,
int *values,
int *unit,
int *null);
309 int *actvals,
float *values,
int *unit,
int *null);
311 int *actvals,
char *values,
int *unit,
int *null);
314 int felem,
int maxval,
int *unit);
316 int felem,
int maxval,
int *unit);
318 const char *values,
int felem,
int maxvals,
int *unit);
328 const char *func,
const char *file,
int line);
331 int flames_midas_scfopn(
const char *name,
int dattype,
int newopn,
int filtype,
int *imno);
334 int size,
int *imno);
341 char *type,
int *noelem,
int *bytelem);
344 char *type,
int *noelem,
int *bytelem);
347 int felem,
int maxvals,
348 int *actvals,
int *values,
349 int *unit,
int *null);
351 int felem,
int maxvals,
352 int *actvals,
double *values,
353 int *unit,
int *null);
355 int felem,
int maxvals,
356 int *actvals,
float *values,
357 int *unit,
int *null);
360 int felem,
int maxvals,
361 int *actvals,
char *values,
362 int *unit,
int *null);
365 int felem,
int nval,
const int *unit);
367 int felem,
int nval,
const int *unit);
370 int felem,
int nval,
const int *unit);
372 int felem,
int nval,
const int *unit);
389 int flames_midas_tcawrc(
int tid,
int row,
int col,
int index,
int items,
const char *value);
390 int flames_midas_tcawrd(
int tid,
int row,
int col,
int index,
int items,
const double *value);
391 int flames_midas_tcawri(
int tid,
int row,
int col,
int index,
int items,
const int *value);
392 int flames_midas_tcawrr(
int tid,
int row,
int col,
int index,
int items,
const float *value);
400 const char *form,
const char *unit,
const char *label,
406 double *value,
int *null);
421 char *name,
char *ident,
int flames_midas_sckrdr(const float *key, int felem, int maxvals, int *actvals, float *values, int *unit, int *null)
Read data from real precision keyword.
int flames_midas_sckwrc(char *key, int noelem, const char *values, int felem, int maxvals, int *unit)
Write data into character keyword.
int flames_midas_tcewrc(int tid, int row, int column, const char *value)
int flames_midas_tcdget(int tid, int *store)
Reads table storage format (F_TRANS or F_RECORD)
int flames_midas_sckfnd_string(const char *key, char *type, int *noelem, int *bytelem)
int flames_midas_scdwri(int imno, const char *descr, const int *values, int felem, int nval, const int *unit)
Write a descriptor and its data.
int flames_midas_tcerdd(int tid, int row, int column, double *value, int *null)
int flames_midas_tcfget(int tid, int column, char *form, int *dtype)
Reads column format.
int flames_midas_tclser(int tid, const char *label, int *column)
Searches the sequential number of the column having the given label, case insensitive.
int flames_midas_tcardc(int tid, int row, int col, int index, int items, char *value)
Reads table elements as a character string. Arrays are edited with a comma between elements...
int flames_midas_scddel(int imno, const char *descr)
Delete a descriptor.
int flames_midas_sccfnd(const cpl_frameset *catfile, int frmno, char *frame)
Find corresponding frame for given entry number.
int flames_midas_tcardi(int tid, int row, int col, int index, int items, int *value)
int flames_midas_tclget(int tid, int column, char *label)
Reads column label.
int flames_midas_scdrdi(int imno, const char *descr, int felem, int maxvals, int *actvals, int *values, int *unit, int *null)
Read contents of integer descriptor.
int flames_midas_scsepi(void)
Deinitialize interface.
int flames_midas_scspro(const char *name)
Get into the MIDAS environment.
int flames_midas_scdrdd(int imno, const char *descr, int felem, int maxvals, int *actvals, double *values, int *unit, int *null)
Read contents of double descriptor.
int flames_midas_scccre(cpl_frameset **catfile, int type, int flag)
Create a catalog.
int flames_midas_scdrdc(int imno, const char *descr, int noelem, int felem, int maxvals, int *actvals, char *values, int *unit, int *null)
Read contents of string descriptor.
int flames_midas_tccini(int tid, int dtype, int alen, const char *form, const char *unit, const char *label, int *column)
Initializes table column.
int flames_midas_tcerdr(int tid, int row, int column, float *values, int *null)
int flames_midas_tcardd(int tid, int row, int col, int index, int items, double *value)
Reads table elements as a double precision value.
int flames_midas_tcewrr(int tid, int row, int column, const float *value)
int flames_midas_scfclo(int imno)
Close an image frame.
int flames_midas_scdwrd(int imno, const char *descr, const double *values, int felem, int nval, const int *unit)
Write a descriptor and its data.
int flames_midas_tcawri(int tid, int row, int col, int index, int items, const int *value)
int flames_midas_tcbget(int tid, int column, int *dtype, int *items, int *bytes)
Reads binary storage characteristics of column.
int flames_midas_tcawrr(int tid, int row, int col, int index, int items, const float *value)
int flames_midas_tciget(int tid, int *column, int *row)
Reads table size information.
int flames_midas_scdwrr(int imno, const char *descr, const float *values, int felem, int nval, const int *unit)
Write a descriptor and its data.
int flames_midas_error_macro(const char *file, const char *function, int line, int status)
Print debugging info when function returns error.
int flames_midas_scdrdr(int imno, const char *descr, int felem, int maxvals, int *actvals, float *values, int *unit, int *null)
Read contents of double descriptor.
int flames_midas_sckgetc(const char *key, int felem, int maxvals, int *actvals, char *values)
Get data from character keyword.
cpl_type flames_midas_image_dtype_to_cpltype(int dtype)
Map MIDAS dtypes to CPL types.
int flames_midas_sckgetc_fs(const cpl_frameset *key, int felem, int maxvals, int *actvals, const cpl_frameset **values)
Get data from character keyword (catalogue)
int flames_midas_sckwri(int *key, const int *values, int felem, int maxval, int *unit)
Write data into integer keyword.
int flames_midas_scfget(int imno, int felem, int size, int *actsize, char *bufadr)
Read data from disk frame into memory.
int flames_midas_tctclo(int tid)
Closes a table.
int flames_midas_tcerdi(int tid, int row, int column, int *values, int *null)
int flames_midas_tcuget(int tid, int column, char *unit)
Reads column unit.
int flames_midas_scfput(int imno, int felem, int size, const char *bufadr)
Write data from memory into disk frame.
int flames_midas_sccsho(const cpl_frameset *catfile, int *noent, int *last)
Show size and type of a catalog.
int flames_midas_sccadd(cpl_frameset *catfile, const char *name, const char *ident)
Add catalog entry.
int flames_midas_scdcop(int from, int to, int mask)
Copy descriptors.
int flames_midas_sckrdd(const double *key, int felem, int maxvals, int *actvals, double *values, int *unit, int *null)
Read data from double precision keyword.
int flames_midas_scfcre(const char *name, int dattype, int iomode, int filtype, int size, int *imno)
Create an image frame with data of given type and return its internal file no.
int flames_midas_sckrdi(const int *key, int felem, int maxvals, int *actvals, int *values, int *unit, int *null)
Read data from integer keyword.
int flames_midas_scfopn(const char *name, int dattype, int newopn, int filtype, int *imno)
Open an existing image and return its internal file no.
int flames_midas_tcewri(int tid, int row, int column, const int *value)
int flames_midas_scdcop_nonaxis(int from, int to, int mask)
Copy descriptors.
int flames_midas_tcawrd(int tid, int row, int col, int index, int items, const double *value)
Writes table element, double precision argument.
int flames_midas_sckfnd_double(const double *key, char *type, int *noelem, int *bytelem)
int flames_midas_scdwrc(int imno, const char *descr, int noelm, const char *values, int felem, int nval, const int *unit)
Write a descriptor and its data.
int flames_midas_sckfnd_float(const float *key, char *type, int *noelem, int *bytelem)
int flames_midas_sckrdc(const char *key, int noelem, int felem, int maxvals, int *actvals, char *values, int *unit, int *null)
Read data from string keyword.
int flames_midas_fail_macro(const char *file, const char *function, int line)
Deinitialize interface, cleanup and return failure.
int flames_midas_sckgetc_fsp(cpl_frameset **key, int felem, int maxvals, int *actvals, cpl_frameset ***values)
Get data from character keyword (frame set pointer)
int flames_midas_sckfnd_int(const int *key, char *type, int *noelem, int *bytelem)
int flames_midas_tcardr(int tid, int row, int col, int index, int items, float *value)
int flames_midas_tcsget(int tid, int row, int *value)
Reads row selection flag.
int flames_midas_scdfnd(int imno, const char *descr, char *type, int *noelem, int *bytelem)
Provide info about descriptor.
int flames_midas_scfinf(const char *name, int fno, int *ibuf)
Open the frame and return file info in buffer up to 5 integers.
int flames_midas_tcerdc(int tid, int row, int column, char *values, int *null)
int flames_midas_tcawrc(int tid, int row, int col, int index, int items, const char *value)
Writes table element, character string format.
int flames_midas_tcsput(int tid, int row, const int *value)
Writes row selection flag.
int flames_midas_sctput(const char *msg, const char *func, const char *file, int line)
Display message.
int flames_midas_sccget(const cpl_frameset *catfile, int flag, char *name, char *ident, int *no)
Get next sequential entry from frame catalogue.
int flames_midas_scdprs(int imno, const char *descr, char *type, int *noelem, int *bytelem)
Provide info about descriptor.
int flames_midas_tctopn(const char *name, int mode, int allrow, int *tid)
Open table.
int flames_midas_sckwrd(double *key, const double *values, int felem, int maxval, int *unit)
Write data into double keyword.
int flames_midas_tcewrd(int tid, int row, int column, const double *value)
int flames_midas_tccser(int tid, const char *colref, int *column)
Search column by reference.