Commit 237194c6 authored by Lucas Russo's avatar Lucas Russo

examples/trigger.c: add channel range functionality

Now, it's possible to select a range of channels to apply
the same configurations.
parent 9364384c
......@@ -50,7 +50,8 @@ void print_help (char *program_name)
" -o --boardslot <Board slot number = [1-12]> \n"
" -s --bpmnumber <BPM number = [0|1]> BPM number\n"
" Board slot number\n"
" -c --channumber <Channel> Trigger Channel number\n"
" -c --channumber <Channel | Channel Range>\n"
" Trigger Channel number\n"
" <Channel> must be one of the following:\n"
" 0 -> ADC; 1 -> ADC_SWAP; 2 -> Mixer IQ120; 3 -> Mixer IQ340;\n"
" 4 -> TBT Decim IQ120; 5 -> TBT Decim IQ340; 6 -> TBT Amp;\n"
......@@ -178,13 +179,29 @@ int main (int argc, char *argv [])
}
/* Set default channel */
uint32_t chan;
uint32_t chan_min;
uint32_t chan_max;
if (chan_str == NULL) {
fprintf (stderr, "[client:trigger]: Setting default value to 'chan'\n");
chan = DFLT_CHAN_NUM;
chan_min = DFLT_CHAN_NUM;
chan_max = chan_min+1;
}
else {
if (sscanf (chan_str, "[%u:%u]", &chan_min, &chan_max) != 2) {
if (sscanf (chan_str, "%u", &chan_min) != 1) {
fprintf (stderr, "[client:trigger]: Unexpected channel format\n");
exit (1);
}
chan_max = chan_min+1;
}
else {
chan = strtoul (chan_str, NULL, 10);
chan_max++;
}
if (chan_max < chan_min) {
fprintf (stderr, "[client:trigger]: Channel range must be ascending\n");
exit (1);
}
}
/* Set default board number */
......@@ -226,6 +243,8 @@ int main (int argc, char *argv [])
goto err_bpm_client_new;
}
uint32_t chan;
for (chan = chan_min; chan < chan_max; ++chan) {
uint32_t rcvsrc = 0;
if (rcvsrc_sel == 1) {
rcvsrc = strtoul (rcvsrc_str, NULL, 10);
......@@ -285,6 +304,7 @@ int main (int argc, char *argv [])
goto err_bpm_set;
}
}
}
err_bpm_set:
err_bpm_client_new:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment