From 8689ed5b2759de6301565db70220a91ee6fd004b Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Wed, 3 Jan 2024 17:29:51 +0100 Subject: [PATCH] Use fsleep instead of nanosleep --- impl/src/main.c | 3 +-- impl/src/sdr/sdr.c | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/impl/src/main.c b/impl/src/main.c index 98d6052..55b4b62 100644 --- a/impl/src/main.c +++ b/impl/src/main.c @@ -301,8 +301,7 @@ int main(void) } if(n_rf_samples == 0) { - struct timespec ts_1ms = {0, 1000000}; - nanosleep(&ts_1ms, NULL); + fsleep(1e-3); continue; } diff --git a/impl/src/sdr/sdr.c b/impl/src/sdr/sdr.c index c818d9e..00156ab 100644 --- a/impl/src/sdr/sdr.c +++ b/impl/src/sdr/sdr.c @@ -6,10 +6,10 @@ #include #include #include -#include #include #include "config.h" +#include "utils.h" #include "sdr.h" @@ -141,10 +141,9 @@ static result_t stop_streaming(sdr_ctx_t *ctx) return OK; } - struct timespec ts_1ms = {0, 1000000}; while(hackrf_is_streaming(ctx->hackrf) == HACKRF_TRUE) { puts("wr"); - nanosleep(&ts_1ms, NULL); + fsleep(1e-3); } ctx->status = SDR_STATUS_IDLE; @@ -342,9 +341,9 @@ result_t sdr_receive(sdr_ctx_t *ctx, float complex *samples, size_t *nsamples, l result_t sdr_flush_tx_buffer(sdr_ctx_t *ctx) { - while(!ctx->tx_done) { - struct timespec ts_1ms = {0, 1000000}; - nanosleep(&ts_1ms, NULL); + // block until all samples have been transmitted + while(!ctx->tx_done || (get_hires_time() < (ctx->tx_start_time + ctx->tx_duration))) { + fsleep(1e-3); } return OK;