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
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 #ifndef UVES_PARAMETERS_H
00073 #define UVES_PARAMETERS_H
00074
00075
00076
00077
00078
00079 #include <uves_utils_wrappers.h>
00080
00081 #include <cpl.h>
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092 cpl_error_code
00093 uves_define_global_parameters(cpl_parameterlist *parlist);
00094
00095 cpl_error_code
00096 uves_define_efficiency_parameters(cpl_parameterlist *parlist);
00097
00098
00099 cpl_error_code
00100 uves_define_rebin_for_response_chain_parameters(cpl_parameterlist *parlist);
00101
00102 cpl_error_code
00103 uves_define_reduce_for_response_chain_parameters(cpl_parameterlist *parlist);
00104
00105 cpl_error_code
00106 uves_define_efficiency_for_response_chain_parameters(cpl_parameterlist *parlist);
00107
00108 cpl_error_code
00109 uves_define_extract_for_response_chain_parameters(cpl_parameterlist *parlist);
00110
00111 cpl_error_code
00112 uves_define_background_for_response_chain_parameters(cpl_parameterlist *parlist);
00113
00114 cpl_error_code
00115 uves_master_stack_define_parameters(cpl_parameterlist *parlist, const char *recipe_id);
00116 cpl_error_code
00117 uves_master_flat_define_parameters(cpl_parameterlist *parlist, const char *recipe_id);
00118
00119 int
00120 uves_exec_recipe(int (*get_info)(cpl_pluginlist *),
00121 const char *recipe_domain,
00122 const cpl_parameterlist *parameters,
00123 cpl_frameset *frames,
00124 const char *caller_id, const char *context);
00125
00126 int
00127 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters,
00128 cpl_frameset *frames,
00129 const char *caller_id, const char *context);
00130
00131 int
00132 uves_propagate_parameters_step(const char *step_id,
00133 cpl_parameterlist *parameters,
00134 const char *recipe_id, const char *context);
00135
00136 int
00137 uves_prop_par(int (*get_info)(cpl_pluginlist *),
00138 cpl_parameterlist *parameters,
00139 const char *recipe_id, const char *context);
00140
00141 int
00142 uves_propagate_parameters(const char *subrecipe_id,
00143 cpl_parameterlist *parameters,
00144 const char *recipe_id, const char *context);
00145
00146 cpl_error_code
00147 uves_corr_traps_define_parameters(cpl_parameterlist * parameters,
00148 const char *recipe_id);
00149
00150
00151
00161
00162 #define uves_parameter_new_value(p, name, type, description, context, default) \
00163 do { \
00164 p = cpl_parameter_new_value( \
00165 name, type, description, context, default); \
00166 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00167 } while(false)
00168
00169
00178
00179 #define uves_parameter_new_range(p, name, type, description, context, \
00180 default, min, max) \
00181 do { \
00182 p = cpl_parameter_new_range( \
00183 name, type, description, context, default, min, max); \
00184 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00185 } while(false)
00186
00187
00197
00198 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00199 do { \
00200 p = cpl_parameter_new_enum( \
00201 name, type, description, context, nopt, __VA_ARGS__); \
00202 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00203 } while(false)
00204
00205
00206
00207
00218
00219 #define uves_par_new_value(name, type, description, default) \
00220 do { \
00221 cpl_parameter *p; \
00222 char *context = uves_sprintf("%s%s%s", recipe_id, \
00223 subcontext != NULL ? "." : "", \
00224 subcontext != NULL ? subcontext: "");\
00225 char *full_name = uves_sprintf("%s.%s", context, name); \
00226 uves_parameter_new_value(p, full_name, \
00227 type, \
00228 description, \
00229 context, \
00230 default); \
00231 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00232 cpl_parameterlist_append(parameters, p); \
00233 cpl_free(context); \
00234 cpl_free(full_name); \
00235 } while(false)
00236
00237
00250
00251 #define uves_par_new_range(name, type, description, default, min, max) \
00252 do { \
00253 cpl_parameter *p; \
00254 char *context = uves_sprintf("%s%s%s", recipe_id, \
00255 subcontext != NULL ? "." : "", \
00256 subcontext != NULL ? subcontext: "");\
00257 char *full_name = uves_sprintf("%s.%s", context, name); \
00258 uves_parameter_new_range(p, full_name, \
00259 type, \
00260 description, \
00261 context, \
00262 default, min, max); \
00263 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00264 cpl_parameterlist_append(parameters, p); \
00265 cpl_free(context); \
00266 cpl_free(full_name); \
00267 } while(false)
00268
00269
00270
00282
00283 #define uves_par_new_enum(name, type, description, default, nopt, ...) \
00284 do { \
00285 cpl_parameter *p; \
00286 char *context = uves_sprintf("%s%s%s", recipe_id, \
00287 subcontext != NULL ? "." : "", \
00288 subcontext != NULL ? subcontext: "");\
00289 char *full_name = uves_sprintf("%s.%s", context, name); \
00290 uves_parameter_new_enum(p, full_name, \
00291 type, \
00292 description, \
00293 context, \
00294 default, nopt, __VA_ARGS__); \
00295 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00296 cpl_parameterlist_append(parameters, p); \
00297 cpl_free(context); \
00298 cpl_free(full_name); \
00299 } while(false)
00300
00301
00302
00303
00304 #endif