diff options
Diffstat (limited to 'libarmep/service.c')
-rw-r--r-- | libarmep/service.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libarmep/service.c b/libarmep/service.c index 7d569c0..96fdbba 100644 --- a/libarmep/service.c +++ b/libarmep/service.c @@ -107,26 +107,26 @@ static void init_aep(struct aep_context *aep_context, struct aep *aep, const cha static void select_map(struct aep_channel *ch) { - int m; int sel = -1; - double delta = 999999; - for (m = 0; m < (sizeof interp_tables / sizeof interp_tables[0]); m++) { - if (ch->percentage_error_ref <= interp_tables[m].percentage_error_ref) { - if (delta > (interp_tables[m].percentage_error_ref - ch->percentage_error_ref)) { - delta = interp_tables[m].percentage_error_ref - ch->percentage_error_ref; - sel = m; - } - } else { - if (delta > (ch->percentage_error_ref - interp_tables[m].percentage_error_ref)) { - delta = ch->percentage_error_ref - interp_tables[m].percentage_error_ref; - sel = m; - } - } + switch(ch->channel_num) { + case 1: + sel = 0; + break; + case 2: + sel = 1; + break; + case 3: + sel = 2; + break; + default: + fprintf(stderr, "AEP channel number %d is wrong. It's only 3 channel, 1, 2 or 3\n", + ch->channel_num); } + if (ch->aep->aep_context->verbose) - fprintf(stderr, "%s = corr map %d %f%%\n", - ch->channel_name, sel, ch->percentage_error_ref); + fprintf(stderr, "%s = corr map %d %d\n", + ch->channel_name, sel, ch->channel_num); ch->map_table = &interp_tables[sel]; } |