From 1fab6d90303708362a62339a733c8e24d73593b9 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 18:04:45 -0600 Subject: [PATCH 01/15] Fix type conversion warnings for Windows build --- host/hackrf-tools/src/hackrf_clock.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_clock.c b/host/hackrf-tools/src/hackrf_clock.c index bd3344dd..5acfcc6a 100644 --- a/host/hackrf-tools/src/hackrf_clock.c +++ b/host/hackrf-tools/src/hackrf_clock.c @@ -35,7 +35,7 @@ typedef int bool; #define CLOCK_UNDEFINED 0xFF #define REGISTER_INVALID 32767 -int parse_int(char* s, uint16_t* const value) { +int parse_int(char* s, uint8_t* const value) { uint_fast8_t base = 10; char* s_end; long long_value; @@ -55,7 +55,7 @@ int parse_int(char* s, uint16_t* const value) { s_end = s; long_value = strtol(s, &s_end, base); if( (s != s_end) && (*s_end == 0) ) { - *value = (uint16_t)long_value; + *value = (uint8_t)long_value; return HACKRF_SUCCESS; } else { return HACKRF_ERROR_INVALID_PARAM; @@ -101,7 +101,7 @@ int si5351c_write_register( #define SI5351C_CLK_SRC_MULTISYNTH_0_4 2 #define SI5351C_CLK_SRC_MULTISYNTH_SELF 3 -void print_clk_control(uint8_t clk_ctrl) { +void print_clk_control(uint16_t clk_ctrl) { uint8_t clk_src, clk_pwr; printf("\tclock control = "); if(clk_ctrl & SI5351C_CLK_POWERDOWN) @@ -249,9 +249,9 @@ int main(int argc, char** argv) { hackrf_device* device = NULL; int opt, option_index = 0; bool read = false; - uint16_t clock = CLOCK_UNDEFINED; + uint8_t clock = CLOCK_UNDEFINED; bool clkout = false; - uint16_t clkout_enable; + uint8_t clkout_enable; const char* serial_number = NULL; int result = hackrf_init(); From 5f02620a49b981ee987e7b200d47c47f845f52d3 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 18:06:13 -0600 Subject: [PATCH 02/15] ahckrf_debug: finx type conversion warning from Windows build --- host/hackrf-tools/src/hackrf_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/host/hackrf-tools/src/hackrf_debug.c b/host/hackrf-tools/src/hackrf_debug.c index ad6cbf78..27d03556 100644 --- a/host/hackrf-tools/src/hackrf_debug.c +++ b/host/hackrf-tools/src/hackrf_debug.c @@ -157,7 +157,7 @@ int si5351c_write_register( #define SI5351C_CLK_SRC_MULTISYNTH_0_4 2 #define SI5351C_CLK_SRC_MULTISYNTH_SELF 3 -void print_clk_control(uint8_t clk_ctrl) { +void print_clk_control(uint16_t clk_ctrl) { uint8_t clk_src, clk_pwr; printf("\tclock control = \n"); if(clk_ctrl & SI5351C_CLK_POWERDOWN) From 4c2a039a01522dae1c3ce6f81b4cf026df98dc97 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 18:39:56 -0600 Subject: [PATCH 03/15] hackrf_operacake: cleanup Windows precision warnings --- host/hackrf-tools/src/hackrf_operacake.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_operacake.c b/host/hackrf-tools/src/hackrf_operacake.c index ad06d39c..01bd12a6 100644 --- a/host/hackrf-tools/src/hackrf_operacake.c +++ b/host/hackrf-tools/src/hackrf_operacake.c @@ -74,7 +74,7 @@ int parse_uint16(char* const s, uint16_t* const value) { int parse_u16_range(char* s, hackrf_oc_range* range) { int result = 0; - uint16_t port = 0; + uint16_t tmp_port, port = 0; char *sep = strchr(s, ':'); if (!sep) @@ -97,7 +97,7 @@ int parse_u16_range(char* s, hackrf_oc_range* range) { if(sep2[0] == 'A' || sep2[0] == 'B') { // The port was specified as a side and number eg. A1 or B3 if(sep2[1] > 0x30 && sep2[1] < 0x35) { - uint16_t tmp_port = sep2[1] - 0x30; + tmp_port = sep2[1] - 0x30; if(tmp_port >= 5 || tmp_port <= 0) return HACKRF_ERROR_INVALID_PARAM; @@ -108,7 +108,7 @@ int parse_u16_range(char* s, hackrf_oc_range* range) { } else { // If B was specfied just add 4-1 ports // B1=4, B2=5, B3=6, B4=7 - port = (uint16_t) tmp_port+3; + port = (uint16_t) tmp_port+3; } //printf("Setting port %c%c to port %d\n", sep2[0], sep2[1], (uint16_t)port); } @@ -117,7 +117,7 @@ int parse_u16_range(char* s, hackrf_oc_range* range) { if (result != HACKRF_SUCCESS) return result; } - range->port = port; + range->port = port & 0xFF; return HACKRF_SUCCESS; } @@ -248,9 +248,9 @@ int main(int argc, char** argv) { for(i=0; i> 8; - range_bytes[ptr+1] = ranges[i].freq_min; + range_bytes[ptr+1] = ranges[i].freq_min & 0xFF; range_bytes[ptr+2] = ranges[i].freq_max >> 8; - range_bytes[ptr+3] = ranges[i].freq_max; + range_bytes[ptr+3] = ranges[i].freq_max & 0xFF; range_bytes[ptr+4] = ranges[i].port; } From a9bc8b7ff7c1a2fd910f99d7accd9f75196c71f0 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 19:07:42 -0600 Subject: [PATCH 04/15] hackrf_transfer: fix Windows uint32 conversion build warnings --- host/hackrf-tools/src/hackrf_transfer.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index 28eb5de9..b3cdea15 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -641,12 +641,7 @@ int main(int argc, char** argv) { break; case 's': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - sample_rate_hz = f_hz; + result = parse_u32(optarg, &sample_rate_hz); sample_rate = true; break; @@ -657,12 +652,7 @@ int main(int argc, char** argv) { break; case 'b': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - baseband_filter_bw_hz = f_hz; + result = parse_u32(optarg, &baseband_filter_bw_hz); baseband_filter_bw = true; break; From 3168bb55e35d2e2084151a98315f465cea561ad3 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 19:11:55 -0600 Subject: [PATCH 05/15] Revert "hackrf_transfer: fix Windows uint32 conversion build warnings" This reverts commit a9bc8b7ff7c1a2fd910f99d7accd9f75196c71f0. --- host/hackrf-tools/src/hackrf_transfer.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index b3cdea15..28eb5de9 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -641,7 +641,12 @@ int main(int argc, char** argv) { break; case 's': - result = parse_u32(optarg, &sample_rate_hz); + f_hz = strtod(optarg, &endptr); + if (optarg == endptr) { + result = HACKRF_ERROR_INVALID_PARAM; + break; + } + sample_rate_hz = f_hz; sample_rate = true; break; @@ -652,7 +657,12 @@ int main(int argc, char** argv) { break; case 'b': - result = parse_u32(optarg, &baseband_filter_bw_hz); + f_hz = strtod(optarg, &endptr); + if (optarg == endptr) { + result = HACKRF_ERROR_INVALID_PARAM; + break; + } + baseband_filter_bw_hz = f_hz; baseband_filter_bw = true; break; From bb585e40a4457dce7fe0e9416e6c2d0567648a2a Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 20:35:44 -0600 Subject: [PATCH 06/15] libhackrf: Fix Windows type warnings MSVC compalins when we mix int and ssize_t Declaration of hackrf_set_sample_rate_manual differed between .h and .c --- host/libhackrf/src/hackrf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index 1bf45749..31be1750 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -397,7 +397,7 @@ const char* ADDCALL hackrf_library_release() hackrf_device_list_t* ADDCALL hackrf_device_list() { - ssize_t i; + int i; libusb_device_handle* usb_device = NULL; uint8_t serial_descriptor_index; char serial_number[64]; @@ -407,7 +407,7 @@ hackrf_device_list_t* ADDCALL hackrf_device_list() if ( list == NULL ) return NULL; - list->usb_devicecount = libusb_get_device_list(g_libusb_context, (libusb_device ***)&list->usb_devices); + list->usb_devicecount = (int) libusb_get_device_list(g_libusb_context, (libusb_device ***)&list->usb_devices); list->serial_numbers = calloc(list->usb_devicecount, sizeof(void *)); list->usb_board_ids = calloc(list->usb_devicecount, sizeof(enum hackrf_usb_board_id)); @@ -474,7 +474,7 @@ libusb_device_handle* hackrf_open_usb(const char* const desired_serial_number) libusb_device_handle* usb_device = NULL; libusb_device** devices = NULL; const ssize_t list_length = libusb_get_device_list(g_libusb_context, &devices); - int match_len = 0; + ssize_t match_len = 0; ssize_t i; char serial_number[64]; int serial_number_length; @@ -1225,7 +1225,8 @@ typedef struct { * described below. */ int ADDCALL hackrf_set_sample_rate_manual(hackrf_device* device, - const uint32_t freq_hz, uint32_t divider) + const uint32_t freq_hz, + const uint32_t divider) { set_fracrate_params_t set_fracrate_params; uint8_t length; From c8e8d33a59d97b0b17308757ea960f0aba003755 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 20:59:55 -0600 Subject: [PATCH 07/15] Silence warning about strdup() being deprecated --- host/libhackrf/src/hackrf.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index 31be1750..d945d304 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -30,6 +30,11 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI #ifdef _WIN32 /* Avoid redefinition of timespec from time.h (included by libusb.h) */ #define HAVE_STRUCT_TIMESPEC 1 + +/* Stop MSVC complaining about strdup() + * Sure, we could fix this another way if strdup() is ever deprecated + */ +#define _CRT_NONSTDC_NO_DEPRECATE 1 #endif #include From e0e02bcd7abe613939b9880d905ec955f8720da8 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 21:16:23 -0600 Subject: [PATCH 08/15] Fix bad define (maybe) --- host/libhackrf/src/hackrf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index d945d304..2e30413a 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -34,7 +34,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI /* Stop MSVC complaining about strdup() * Sure, we could fix this another way if strdup() is ever deprecated */ -#define _CRT_NONSTDC_NO_DEPRECATE 1 +#define _CRT_NONSTDC_NO_DEPRECATE #endif #include From 936da52169485211c6eaff2ecdec23876600fbe8 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 21:31:56 -0600 Subject: [PATCH 09/15] Third time lucky with definition to remove warning about strdup() --- appveyor.yml | 1 + host/libhackrf/src/hackrf.c | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 93bb2a46..179d517d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,5 +29,6 @@ build_script: -DPKG_CONFIG_EXECUTABLE="C:\pkg-config\bin\pkg-config.exe" \ -DFFTW_INCLUDES=C:\fftw \ -DFFTW_LIBRARIES=C:\fftw\libfftw3f-3.lib \ + -D_CRT_NONSTDC_NO_DEPRECATE \ .. - msbuild HackRF.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index 2e30413a..31be1750 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -30,11 +30,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI #ifdef _WIN32 /* Avoid redefinition of timespec from time.h (included by libusb.h) */ #define HAVE_STRUCT_TIMESPEC 1 - -/* Stop MSVC complaining about strdup() - * Sure, we could fix this another way if strdup() is ever deprecated - */ -#define _CRT_NONSTDC_NO_DEPRECATE #endif #include From f768ff6735d5e2364e1cc8d33f7ce0823a0e51d6 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 21:36:33 -0600 Subject: [PATCH 10/15] Fix cmake command error --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 179d517d..cf4416dc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,6 +29,6 @@ build_script: -DPKG_CONFIG_EXECUTABLE="C:\pkg-config\bin\pkg-config.exe" \ -DFFTW_INCLUDES=C:\fftw \ -DFFTW_LIBRARIES=C:\fftw\libfftw3f-3.lib \ - -D_CRT_NONSTDC_NO_DEPRECATE \ + -D_CRT_NONSTDC_NO_DEPRECATE=1 \ .. - msbuild HackRF.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From bfa9f65f4ed713219bc1721d47687af76fb6fa56 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Mon, 26 Mar 2018 23:25:31 -0600 Subject: [PATCH 11/15] Try another work around for strdup() --- appveyor.yml | 1 - host/libhackrf/src/hackrf.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index cf4416dc..93bb2a46 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,6 +29,5 @@ build_script: -DPKG_CONFIG_EXECUTABLE="C:\pkg-config\bin\pkg-config.exe" \ -DFFTW_INCLUDES=C:\fftw \ -DFFTW_LIBRARIES=C:\fftw\libfftw3f-3.lib \ - -D_CRT_NONSTDC_NO_DEPRECATE=1 \ .. - msbuild HackRF.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index 31be1750..0ad05691 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -30,6 +30,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI #ifdef _WIN32 /* Avoid redefinition of timespec from time.h (included by libusb.h) */ #define HAVE_STRUCT_TIMESPEC 1 +#define strdup _strdup #endif #include From 9f0a46d818f84710371cb5328b236de3ed826cb1 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Tue, 27 Mar 2018 10:38:03 -0600 Subject: [PATCH 12/15] Calculate using doubles and cast to float at the last moment --- host/hackrf-tools/src/hackrf_sweep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_sweep.c b/host/hackrf-tools/src/hackrf_sweep.c index f5519999..9770fd77 100644 --- a/host/hackrf-tools/src/hackrf_sweep.c +++ b/host/hackrf-tools/src/hackrf_sweep.c @@ -198,7 +198,7 @@ float logPower(fftwf_complex in, float scale) float re = in[0] * scale; float im = in[1] * scale; float magsq = re * re + im * im; - return log2f(magsq) * 10.0f / log2(10.0f); + return (float) (log2(magsq) * 10.0f / log2(10.0f)); } int rx_callback(hackrf_transfer* transfer) { @@ -296,7 +296,7 @@ int rx_callback(hackrf_transfer* transfer) { fwrite(&band_edge, sizeof(band_edge), 1, fd); fwrite(&pwr[1+fftSize/8], sizeof(float), fftSize/4, fd); } else if(ifft_output) { - ifft_idx = round((frequency - (uint64_t)(FREQ_ONE_MHZ*frequencies[0])) + ifft_idx = (uint32_t) round((frequency - (uint64_t)(FREQ_ONE_MHZ*frequencies[0])) / fft_bin_width); ifft_idx = (ifft_idx + ifft_bins/2) % ifft_bins; for(i = 0; (fftSize / 4) > i; i++) { From d4d74db27c7899c32cf063512e959dbda33de7eb Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Tue, 27 Mar 2018 11:57:52 -0600 Subject: [PATCH 13/15] Add helper functions for parsing frequency arguments --- host/hackrf-tools/src/hackrf_transfer.c | 56 ++++++++++--------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index 28eb5de9..f75b5660 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -254,6 +254,22 @@ int parse_u32(char* s, uint32_t* const value) { } } +/* Parse frequencies as doubles to take advantage of notation parsing */ +int parse_frequency_i64(char* optarg, char* endptr, int64_t* value) { + *value = (int64_t) strtod(optarg, &endptr); + if (optarg == endptr) { + return HACKRF_ERROR_INVALID_PARAM; + } + return HACKRF_SUCCESS; +} + +int parse_frequency_u32(char* optarg, char* endptr, uint32_t* value) { + *value = (uint32_t) strtod(optarg, &endptr); + if (optarg == endptr) { + return HACKRF_ERROR_INVALID_PARAM; + } + return HACKRF_SUCCESS; +} static char *stringrev(char *str) { @@ -537,8 +553,7 @@ int main(int argc, char** argv) { char date_time[DATE_TIME_MAX_LEN]; const char* path = NULL; const char* serial_number = NULL; - char* endptr; - double f_hz; + char* endptr = NULL; int result; time_t rawtime; struct tm * timeinfo; @@ -584,32 +599,17 @@ int main(int argc, char** argv) { break; case 'f': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - freq_hz = f_hz; + result = parse_frequency_i64(optarg, endptr, &freq_hz); automatic_tuning = true; break; case 'i': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - if_freq_hz = f_hz; + result = parse_frequency_i64(optarg, endptr, &if_freq_hz); if_freq = true; break; case 'o': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - lo_freq_hz = f_hz; + result = parse_frequency_i64(optarg, endptr, &lo_freq_hz); lo_freq = true; break; @@ -641,12 +641,7 @@ int main(int argc, char** argv) { break; case 's': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - sample_rate_hz = f_hz; + result = parse_frequency_u32(optarg, endptr, &sample_rate_hz); sample_rate = true; break; @@ -657,12 +652,7 @@ int main(int argc, char** argv) { break; case 'b': - f_hz = strtod(optarg, &endptr); - if (optarg == endptr) { - result = HACKRF_ERROR_INVALID_PARAM; - break; - } - baseband_filter_bw_hz = f_hz; + result = parse_frequency_u32(optarg, endptr, &baseband_filter_bw_hz); baseband_filter_bw = true; break; @@ -758,7 +748,7 @@ int main(int argc, char** argv) { freq_hz = if_freq_hz; break; case RF_PATH_FILTER_LOW_PASS: - freq_hz = labs(if_freq_hz - lo_freq_hz); + freq_hz = labs((long int) if_freq_hz - lo_freq_hz); break; case RF_PATH_FILTER_HIGH_PASS: freq_hz = if_freq_hz + lo_freq_hz; From e384a2d2b726d0892ccbd80aef617547b651bb0b Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Tue, 27 Mar 2018 14:11:51 -0600 Subject: [PATCH 14/15] Explicitly cast variables to silence Windows build warnings --- host/hackrf-tools/src/hackrf_sweep.c | 4 ++-- host/hackrf-tools/src/hackrf_transfer.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_sweep.c b/host/hackrf-tools/src/hackrf_sweep.c index 9770fd77..8b038841 100644 --- a/host/hackrf-tools/src/hackrf_sweep.c +++ b/host/hackrf-tools/src/hackrf_sweep.c @@ -564,7 +564,7 @@ int main(int argc, char** argv) { pwr = (float*)fftwf_malloc(sizeof(float) * fftSize); window = (float*)fftwf_malloc(sizeof(float) * fftSize); for (i = 0; i < fftSize; i++) { - window[i] = 0.5f * (1.0f - cos(2 * M_PI * i / (fftSize - 1))); + window[i] = (float) (0.5f * (1.0f - cos(2 * M_PI * i / (fftSize - 1)))); } result = hackrf_init(); @@ -640,7 +640,7 @@ int main(int argc, char** argv) { for(i = 0; i < num_ranges; i++) { step_count = 1 + (frequencies[2*i+1] - frequencies[2*i] - 1) / TUNE_STEP; - frequencies[2*i+1] = frequencies[2*i] + step_count * TUNE_STEP; + frequencies[2*i+1] = (uint16_t) (frequencies[2*i] + step_count * TUNE_STEP); fprintf(stderr, "Sweeping from %u MHz to %u MHz\n", frequencies[2*i], frequencies[2*i+1]); } diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index f75b5660..78cea971 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -748,7 +748,7 @@ int main(int argc, char** argv) { freq_hz = if_freq_hz; break; case RF_PATH_FILTER_LOW_PASS: - freq_hz = labs((long int) if_freq_hz - lo_freq_hz); + freq_hz = (int64_t) labs(if_freq_hz - lo_freq_hz); break; case RF_PATH_FILTER_HIGH_PASS: freq_hz = if_freq_hz + lo_freq_hz; From cf4b3ae7f4fdf53799729f8e6f3de1b7fe20ac6c Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Tue, 27 Mar 2018 14:30:41 -0600 Subject: [PATCH 15/15] Cast all the things --- host/hackrf-tools/src/hackrf_transfer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index 78cea971..f24b545d 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -748,7 +748,7 @@ int main(int argc, char** argv) { freq_hz = if_freq_hz; break; case RF_PATH_FILTER_LOW_PASS: - freq_hz = (int64_t) labs(if_freq_hz - lo_freq_hz); + freq_hz = (int64_t) labs((long int) (if_freq_hz - lo_freq_hz)); break; case RF_PATH_FILTER_HIGH_PASS: freq_hz = if_freq_hz + lo_freq_hz;