38 #include "midi_utils.h"
39 #include "midi_pfits.h"
41 #include "midiControl.h"
42 #include "midiGlobal.h"
43 #include "midiAppendPropertylist.h"
49 static int midi_wavecal_create(cpl_plugin *) ;
50 static int midi_wavecal_exec(cpl_plugin *) ;
51 static int midi_wavecal_destroy(cpl_plugin *) ;
52 static int midi_wavecal(cpl_parameterlist *, cpl_frameset *) ;
58 static char midi_wavecal_description[] =
59 "The purpose of this technical recipe is to facilitate calibration of the\n"
60 "detector channels.\n\n"
62 " DO category: Type: Explanation: Required:\n"
63 " WAVECAL Raw Raw data frame Y\n\n"
65 " DO category: Data type: Explanation:\n"
66 " REDUCED_WAVECAL FITS image transmission coefficient\n\n";
84 cpl_recipe * recipe = cpl_calloc(1,
sizeof *recipe ) ;
85 cpl_plugin * plugin = &recipe->interface ;
87 cpl_plugin_init(plugin,
90 CPL_PLUGIN_TYPE_RECIPE,
92 "Produces Wavelength Calibration databases",
93 midi_wavecal_description,
99 midi_wavecal_destroy) ;
101 cpl_pluginlist_append(list, plugin) ;
115 static int midi_wavecal_create(cpl_plugin * plugin)
117 cpl_recipe * recipe ;
121 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
122 recipe = (cpl_recipe *)plugin ;
126 recipe->parameters = cpl_parameterlist_new() ;
165 static int midi_wavecal_exec(cpl_plugin * plugin)
167 cpl_recipe * recipe ;
170 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
171 recipe = (cpl_recipe *)plugin ;
175 return midi_wavecal(recipe->parameters, recipe->frames) ;
185 static int midi_wavecal_destroy(cpl_plugin * plugin)
187 cpl_recipe * recipe ;
190 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
191 recipe = (cpl_recipe *)plugin ;
194 cpl_parameterlist_delete(recipe->parameters) ;
206 static int midi_wavecal(
207 cpl_parameterlist *parlist,
208 cpl_frameset *frameset)
214 cpl_frame *current_frame;
251 current_frame = cpl_frameset_get_first(frameset);
252 sofPtr = fopen (
"MIDI_sof.log",
"w");
253 while ( current_frame && sofPtr )
255 fprintf (sofPtr,
"%s \n", (
char *)cpl_frame_get_filename( current_frame ));
256 current_frame = cpl_frameset_get_next( frameset );
261 executeDataReduction (MIDI_CALIBTEMP,
"",
"./", plotDuration,
"MIDI_sof.log", &error,parlist,frameset);
263 if (error)
return -1;
264 remove (
"MIDI_sof.log");
266 if (CPL_ERROR_NONE != appendPropertylist(
"MIDI_b1_wav.pro.fits", CPL_FRAME_TYPE_IMAGE,
"REDUCED_WAVECAL",frameset,parlist))
268 cpl_msg_error(cpl_func,
"Error in appendPropertylist");
273 if (cpl_error_get_code())