From 9fcbb6fa55f45e2776ab1808afc1d45d6f461a28 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 29 Jan 2017 21:38:06 -0700 Subject: [PATCH] Clarified hackrf_si5351c control logic --- host/hackrf-tools/src/hackrf_si5351c.c | 36 +++++++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_si5351c.c b/host/hackrf-tools/src/hackrf_si5351c.c index 00e7ab57..eea39c83 100644 --- a/host/hackrf-tools/src/hackrf_si5351c.c +++ b/host/hackrf-tools/src/hackrf_si5351c.c @@ -257,6 +257,24 @@ int main(int argc, char** argv) { } } + if(write && read) { + fprintf(stderr, "Read and write options are mutually exclusive.\n"); + usage(); + return EXIT_FAILURE; + } + + if(write && dump_config) { + fprintf(stderr, "Config and write options are mutually exclusive.\n"); + usage(); + return EXIT_FAILURE; + } + + if(!(write || read || dump_config)) { + fprintf(stderr, "Specify read, write, or config option.\n"); + usage(); + return EXIT_FAILURE; + } + if(serial_number != NULL) { result = hackrf_open_by_serial(serial_number, &device); } else { @@ -268,7 +286,7 @@ int main(int argc, char** argv) { } } - if( result ) { + if(result) { printf("hackrf_open() failed: %s (%d)\n", hackrf_error_name(result), result); return EXIT_FAILURE; } @@ -277,23 +295,27 @@ int main(int argc, char** argv) { if( result == HACKRF_SUCCESS ) { result = write_register(device, register_number, register_value); } - } else if(read) { + } + + if(read) { if( register_number == REGISTER_INVALID ) { result = dump_registers(device); } else { result = dump_register(device, register_number); } - } else if(dump_config) { + } + + if(dump_config) { dump_configuration(device); } - + result = hackrf_close(device); - if( result ) { + if(result) { printf("hackrf_close() failed: %s (%d)\n", hackrf_error_name(result), result); return EXIT_FAILURE; } - + hackrf_exit(); - + return EXIT_SUCCESS; }