From 04847b6bd1893b416ad67d3e3326b921dde51129 Mon Sep 17 00:00:00 2001 From: John Melton G0ORX Date: Fri, 20 Dec 2019 10:41:51 +0000 Subject: [PATCH] Fixed radio save/restore state for SoapySDR. Changed resize of tx panadapter to be full display when disabling duplex --- radio.c | 2 ++ radio_menu.c | 2 +- soapy_protocol.c | 46 ---------------------------------------------- 3 files changed, 3 insertions(+), 47 deletions(-) diff --git a/radio.c b/radio.c index 66dd8fc..acf2b8e 100644 --- a/radio.c +++ b/radio.c @@ -1748,6 +1748,7 @@ fprintf(stderr,"radioRestoreState: %s\n",property_path); #ifdef SOAPYSDR if(radio->device==SOAPYSDR_USB_DEVICE) { + char name[128]; for(int i=0;iinfo.soapy.rx_gains;i++) { sprintf(name,"radio.adc[0].rx_gain.%s",radio->info.soapy.rx_gain[i]) ; value=getProperty(name); @@ -1960,6 +1961,7 @@ fprintf(stderr,"radioSaveState: %s\n",property_path); #ifdef SOAPYSDR if(radio->device==SOAPYSDR_USB_DEVICE) { + char name[128]; for(int i=0;iinfo.soapy.rx_gains;i++) { sprintf(name,"radio.adc[0].rx_gain.%s",radio->info.soapy.rx_gain[i]); sprintf(value,"%d", adc[0].rx_gain[i]); diff --git a/radio_menu.c b/radio_menu.c index b372ffd..71fc7cc 100644 --- a/radio_menu.c +++ b/radio_menu.c @@ -206,7 +206,7 @@ static void duplex_cb(GtkWidget *widget, gpointer data) { GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(transmitter->dialog)); gtk_container_remove(GTK_CONTAINER(content),transmitter->panel); gtk_widget_destroy(transmitter->dialog); - reconfigure_transmitter(transmitter,display_width,rx_height); + reconfigure_transmitter(transmitter,display_width,rx_height*receivers); } vfo_update(); } diff --git a/soapy_protocol.c b/soapy_protocol.c index 3737505..56e30c1 100644 --- a/soapy_protocol.c +++ b/soapy_protocol.c @@ -268,12 +268,6 @@ static void *receive_thread(void *arg) { long long timeNs=0; long timeoutUs=100000L; int i; -#ifdef TIMING - struct timeval tv; - long start_time, end_time; - rate_samples=0; - gettimeofday(&tv, NULL); start_time=tv.tv_usec + 1000000 * tv.tv_sec; -#endif RECEIVER *rx=(RECEIVER *)arg; float *buffer=g_new(float,max_samples*2); void *buffs[]={buffer}; @@ -288,36 +282,8 @@ fprintf(stderr,"soapy_protocol: receive_thread\n"); rx->buffer[i*2]=(double)buffer[i*2]; rx->buffer[(i*2)+1]=(double)buffer[(i*2)+1]; } -/* - if(rx->resampler!=NULL) { - int out_elements=xresample(rx->resampler); -g_print("resampler: elements in=%d out=%d\n",elements,out_elements); - for(i=0;iresampled_buffer[i*2]; - isample=rx->resampled_buffer[(i*2)+1]; - } else { - isample=rx->resampled_buffer[i*2]; - qsample=rx->resampled_buffer[(i*2)+1]; - } - add_iq_samples(rx,isample,qsample); - } -*/ if(rx->sample_rate!=radio_sample_rate) { for(int i=0;iresample_step) { -/* - isample=0.0; - qsample=0.0; - for(int j=0;jresample_step;j++) { - isample+=rx->buffer[(i+j)*2]; - qsample+=rx->buffer[((i+j)*2)+1]; - } - if(iqswap) { - add_iq_samples(rx,qsample/(double)rx->resample_step,isample/(double)rx->resample_step); - } else { - add_iq_samples(rx,isample/(double)rx->resample_step,qsample/(double)rx->resample_step); - } -*/ isample=rx->buffer[i*2]; qsample=rx->buffer[(i*2)+1]; if(iqswap) { @@ -335,15 +301,6 @@ g_print("resampler: elements in=%d out=%d\n",elements,out_elements); } else { add_iq_samples(rx,isample,qsample); } -#ifdef TIMING - rate_samples++; - if(rate_samples>=rx->sample_rate) { - gettimeofday(&tv, NULL); end_time=tv.tv_usec + 1000000 * tv.tv_sec; - fprintf(stderr,"%d samples in %ld usec\n",rx->sample_rate,end_time-start_time); - rate_samples=0; - start_time=end_time; - } -#endif } } } @@ -354,7 +311,6 @@ fprintf(stderr,"soapy_protocol: receive_thread: SoapySDRDevice_closeStream\n"); SoapySDRDevice_closeStream(soapy_device,rx_stream); fprintf(stderr,"soapy_protocol: receive_thread: SoapySDRDevice_unmake\n"); SoapySDRDevice_unmake(soapy_device); - //_exit(0); } void soapy_protocol_process_local_mic(float sample) { @@ -379,8 +335,6 @@ void soapy_protocol_iq_samples(float isample,float qsample) { output_buffer[(output_buffer_index*2)+1]=qsample; output_buffer_index++; if(output_buffer_index>=max_tx_samples) { -// write the buffer -//g_print("soapy_protocol_iq_samples: writeStream\n"); int elements=SoapySDRDevice_writeStream(soapy_device,tx_stream,tx_buffs,max_tx_samples,&flags,timeNs,timeoutUs); if(elements!=max_tx_samples) { g_print("soapy_protocol_iq_samples: writeStream returned %d for %d elements\n",elements,max_tx_samples); -- 2.45.2