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) ...@@ -50,7 +50,8 @@ void print_help (char *program_name)
" -o --boardslot <Board slot number = [1-12]> \n" " -o --boardslot <Board slot number = [1-12]> \n"
" -s --bpmnumber <BPM number = [0|1]> BPM number\n" " -s --bpmnumber <BPM number = [0|1]> BPM number\n"
" Board slot 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" " <Channel> must be one of the following:\n"
" 0 -> ADC; 1 -> ADC_SWAP; 2 -> Mixer IQ120; 3 -> Mixer IQ340;\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" " 4 -> TBT Decim IQ120; 5 -> TBT Decim IQ340; 6 -> TBT Amp;\n"
...@@ -178,13 +179,29 @@ int main (int argc, char *argv []) ...@@ -178,13 +179,29 @@ int main (int argc, char *argv [])
} }
/* Set default channel */ /* Set default channel */
uint32_t chan; uint32_t chan_min;
uint32_t chan_max;
if (chan_str == NULL) { if (chan_str == NULL) {
fprintf (stderr, "[client:trigger]: Setting default value to 'chan'\n"); 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 { 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 */ /* Set default board number */
...@@ -226,6 +243,8 @@ int main (int argc, char *argv []) ...@@ -226,6 +243,8 @@ int main (int argc, char *argv [])
goto err_bpm_client_new; goto err_bpm_client_new;
} }
uint32_t chan;
for (chan = chan_min; chan < chan_max; ++chan) {
uint32_t rcvsrc = 0; uint32_t rcvsrc = 0;
if (rcvsrc_sel == 1) { if (rcvsrc_sel == 1) {
rcvsrc = strtoul (rcvsrc_str, NULL, 10); rcvsrc = strtoul (rcvsrc_str, NULL, 10);
...@@ -285,6 +304,7 @@ int main (int argc, char *argv []) ...@@ -285,6 +304,7 @@ int main (int argc, char *argv [])
goto err_bpm_set; goto err_bpm_set;
} }
} }
}
err_bpm_set: err_bpm_set:
err_bpm_client_new: 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