76 if ( strcmp( current->
kw_name, kw ) == 0 )
return current ;
84#if defined(USE_REGEXP)
90 if ( current->
pro_catg == NULL ) continue ;
91 err = regcomp( ®, current->
pro_catg, REG_EXTENDED | REG_ICASE ) ;
92 if ( err != 0 ) continue ;
93 err = regexec( ®, pro_catg, 0, 0, 0 ) ;
95 if ( err == 0 )
return current ;
100 if ( current->
pro_catg == NULL )
return current ;
101 if ( fnmatch( current->
pro_catg, pro_catg, 0 ) == 0 )
123 if ( prev == NULL ) {
126 else current = prev+1 ;
128 for( ; current->
kw_name != NULL ; current++ ) {
130 strstr( current->
kw_recipes, recipe ) != NULL) ||
133 current->
kw_type != CPL_TYPE_INVALID )
145 if ( prev == NULL ) {
148 else current = prev+1 ;
150 for( ; current->
kw_name != NULL ; current++ ) {
152 strstr( current->
kw_function, function ) != NULL) )
171 if ( pqc->
arms == NULL ||
172 strstr( pqc->
arms, arm ) != NULL )
return 1 ;
188#if defined(USE_REGEXP)
192 if ( pqc == NULL || pqc->
pro_catg == NULL )
return 1 ;
194 err = regcomp( ®, pqc->
pro_catg, REG_EXTENDED | REG_ICASE ) ;
195 if ( err != 0 )
return 0 ;
196 err = regexec( ®, pro_catg, 0, 0, 0 ) ;
198 if ( err == 0 )
return 1 ;
227 double qc_crrate = 0.0;
241 (double) nbcrh / (((
double) nframes) * (pre->
exptime *
242 (pre->
pszx / 10000.0) * (pre->
pszy /10000.0) * pre->
nx * pre->
ny)) ;
243 nbcr_avg = nbcrh/nframes ;
static xsh_instrument * instrument
#define XSH_ASSURE_NOT_ILLEGAL(cond)
#define XSH_ASSURE_NOT_NULL(pointer)
#define xsh_msg_dbg_medium(...)
#define xsh_msg_dbg_high(...)
void xsh_pfits_set_qc_ncrh_mean(cpl_propertylist *plist, const double value)
Write the QC.NCRH.AVG value.
void xsh_pfits_set_qc_ncrh(cpl_propertylist *plist, int value)
Write the QC.NCRH value.
void xsh_pfits_set_qc_crrate(cpl_propertylist *plist, double value)
Write the QC.CRRATE value.
int xsh_is_qc_for_arm(const char *arm, qc_description *pqc)
qc_description * xsh_get_qc_desc_by_pro_catg(const char *pro_catg)
int xsh_qc_in_recipe(qc_description *pqc, xsh_instrument *instrument)
qc_description * xsh_get_qc_desc_by_recipe(const char *recipe, qc_description *prev)
int xsh_is_qc_for_pro_catg(const char *pro_catg, qc_description *pqc)
qc_description * xsh_get_qc_desc_by_function(char *function, qc_description *prev)
void xsh_add_qc_crh(xsh_pre *pre, int nbcrh, int nframes)
qc_description * xsh_get_qc_desc_by_kw(const char *kw)
const char * kw_recipes_tbw
cpl_propertylist * qual_header
cpl_propertylist * data_header
static const qc_description qc_table[]