gtk_fixed_put(GTK_FIXED(fixed),receiver[i]->panel,receiver[i]->x,receiver[i]->y);
SetChannelState(receiver[i]->id,1,0);
set_displaying(receiver[i],1);
+ receiver[i]->rxcount=0;
+ receiver[i]->maxcount=-1;
+ // if not duplex, clear RX iq buffer
+ receiver[i]->samples=0;
}
}
}
// defer set_agc until here, otherwise the AGC threshold is not computed correctly
set_agc(rx, rx->agc);
+
+ rx->rxcount=99999;
return rx;
}
g_mutex_lock(&rx->mutex);
rx->sample_rate=sample_rate;
+ rx->samples=0; // clear RX iq buffer
int scale=rx->sample_rate/48000;
rx->output_samples=rx->buffer_size/scale;
rx->hz_per_pixel=(double)rx->sample_rate/(double)rx->width;
static int tx_buffer_seen=0;
void add_iq_samples(RECEIVER *rx, double i_sample,double q_sample) {
+
+ if (rx->rxcount <= 20000) {
+ if (i_sample*i_sample + q_sample*q_sample > 0.01) rx->maxcount=rx->rxcount;
+ if (rx->rxcount < (int)(rx->sample_rate >> 5)) {
+ i_sample=0.0;
+ q_sample=0.0;
+ }
+ if (rx->rxcount == 20000) {
+ fprintf(stderr,"ID=%d MAXCOUNT=%d\n", rx->id, rx->maxcount);
+ rx->rxcount = 99999;
+ }
+ rx->rxcount++;
+ }
+
rx->iq_input_buffer[rx->samples*2]=i_sample;
rx->iq_input_buffer[(rx->samples*2)+1]=q_sample;
rx->samples=rx->samples+1;
gint x;
gint y;
+
+ int rxcount; int maxcount;
} RECEIVER;
extern RECEIVER *create_pure_signal_receiver(int id, int buffer_size,int sample_rate,int pixels);