diff options
Diffstat (limited to 'libarmep/configuration.c')
-rw-r--r-- | libarmep/configuration.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/libarmep/configuration.c b/libarmep/configuration.c index 81a391f..3da36cf 100644 --- a/libarmep/configuration.c +++ b/libarmep/configuration.c @@ -40,6 +40,7 @@ enum fields { AEPC_FIELD_PRETTY_NAME, AEPC_FIELD_SUPPLY, AEPC_FIELD_COLOUR, + AEPC_FIELD_CLASS, /* always last */ FIELDS_PER_CHANNEL @@ -209,7 +210,7 @@ int configure(struct aep_context *aep_context, struct aep *aep, const char *dev_ index++; if (ch == wch) { sprintf(linebuf, - " %s\t%f\t%f\t%f\t%f\t%f\t%f\t%d\t%s\t%s\t%s\n", + " %s\t%f\t%f\t%f\t%f\t%f\t%f\t%d\t%s\t%s\t%s\t%s\n", ch->channel_name, ch->rshunt, ch->percentage_error_ref, @@ -220,7 +221,8 @@ int configure(struct aep_context *aep_context, struct aep *aep, const char *dev_ ch->pretrigger_ms, ch->channel_name_pretty, ch->supply, - ch->colour + ch->colour, + ch->class ); if (aep->aep_context->verbose) fprintf(stderr, "Updating config " @@ -281,6 +283,10 @@ int configure(struct aep_context *aep_context, struct aep *aep, const char *dev_ strncpy(ch->colour, marshall, sizeof(ch->colour) - 1); ch->colour[sizeof(ch->colour) - 1] = '\0'; break; + case AEPC_FIELD_CLASS: + strncpy(ch->class, marshall, sizeof(ch->class) - 1); + ch->class[sizeof(ch->class) - 1] = '\0'; + break; default: break; } @@ -301,20 +307,6 @@ int configure(struct aep_context *aep_context, struct aep *aep, const char *dev_ ch->channel_name[copy_pos++] = c; ch->channel_name[copy_pos] = '\0'; break; - case AEPC_FIELD_RSHUNT: - case AEPC_FIELD_INTERCHANNEL_ERROR_ESTIMATE: - case AEPC_FIELD_ZERO_OFFSET_V1: - case AEPC_FIELD_ZERO_NOISE_V1: - case AEPC_FIELD_ZERO_OFFSET_V2: - case AEPC_FIELD_ZERO_NOISE_V2: - case AEPC_FIELD_RELATIVE_PRETRIG: - case AEPC_FIELD_SUPPLY: - case AEPC_FIELD_COLOUR: - if (copy_pos >= sizeof marshall - 1) - break; - marshall[copy_pos++] = c; - marshall[copy_pos] = '\0'; - break; case AEPC_FIELD_PRETTY_NAME: if (copy_pos >= sizeof ch->channel_name_pretty - 1) @@ -323,9 +315,11 @@ int configure(struct aep_context *aep_context, struct aep *aep, const char *dev_ ch->channel_name_pretty[copy_pos] = '\0'; break; default: - fprintf(stderr, "Unable to parse config\n"); - close(fd); - return -1; + if (copy_pos >= sizeof marshall - 1) + break; + marshall[copy_pos++] = c; + marshall[copy_pos] = '\0'; + break; } break; } |