From: John Melton g0orx/n6lyt Date: Wed, 20 Apr 2016 11:04:18 +0000 (+0000) Subject: fixed NR2 problem - AE Filter not set. Added DSP tab to Menu dialog. Toolbar improvements X-Git-Url: https://git.rkrishnan.org/%5B/frontends/(%5B%5E?a=commitdiff_plain;h=bee150a4e51082faeccd712c6831b4c0aac3ae98;p=pihpsdr.git fixed NR2 problem - AE Filter not set. Added DSP tab to Menu dialog. Toolbar improvements --- diff --git a/gpio.c b/gpio.c index 6ddf738..efadf09 100644 --- a/gpio.c +++ b/gpio.c @@ -899,6 +899,9 @@ static int bandstack_pressed(void *data) { static int function_pressed(void *data) { fprintf(stderr,"function_pressed\n"); function=function==1?0:1; + if(display_toolbar && toolbar_simulate_buttons) { + update_toolbar(); + } vfo_update(NULL); return 0; } diff --git a/menu.c b/menu.c index 21a3317..6b8a3ca 100644 --- a/menu.c +++ b/menu.c @@ -209,6 +209,38 @@ static gboolean exit_pressed_event_cb (GtkWidget *widget, _exit(0); } +static gboolean reboot_pressed_event_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer data) +{ +#ifdef INCLUDE_GPIO + gpio_close(); +#endif + if(protocol==ORIGINAL_PROTOCOL) { + old_protocol_stop(); + } else { + new_protocol_stop(); + } + system("reboot"); + _exit(0); +} + +static gboolean shutdown_pressed_event_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer data) +{ +#ifdef INCLUDE_GPIO + gpio_close(); +#endif + if(protocol==ORIGINAL_PROTOCOL) { + old_protocol_stop(); + } else { + new_protocol_stop(); + } + system("shutdown -h -P now"); + _exit(0); +} + static void oc_rx_cb(GtkWidget *widget, gpointer data) { int b=((int)data)>>4; int oc=((int)data)&0xF; @@ -269,8 +301,37 @@ static void frames_per_second_value_changed_cb(GtkWidget *widget, gpointer data) calculate_display_average(); } -static void oc_tune_time_cb(GtkWidget *widget, gpointer data) { - OCtune_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); +static void oc_full_tune_time_cb(GtkWidget *widget, gpointer data) { + OCfull_tune_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); +} + +static void oc_memory_tune_time_cb(GtkWidget *widget, gpointer data) { + OCmemory_tune_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); +} + +static void pre_post_agc_cb(GtkWidget *widget, gpointer data) { + nr_agc=(int)data; + SetRXAEMNRPosition(CHANNEL_RX0, nr_agc); + +} + +static void nr2_gain_cb(GtkWidget *widget, gpointer data) { + nr2_gain_method==(int)data; + SetRXAEMNRgainMethod(CHANNEL_RX0, nr2_gain_method); +} + +static void nr2_npe_method_cb(GtkWidget *widget, gpointer data) { + nr2_npe_method=(int)data; + SetRXAEMNRnpeMethod(CHANNEL_RX0, nr2_npe_method); +} + +static void ae_cb(GtkWidget *widget, gpointer data) { + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { + nr2_ae=1; + } else { + nr2_ae=0; + } + SetRXAEMNRaeRun(CHANNEL_RX0, nr2_ae); } static gboolean menu_pressed_event_cb (GtkWidget *widget, @@ -568,6 +629,78 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, + + GtkWidget *dsp_label=gtk_label_new("DSP"); + GtkWidget *dsp_grid=gtk_grid_new(); + gtk_grid_set_row_homogeneous(GTK_GRID(dsp_grid),TRUE); + gtk_grid_set_column_spacing (GTK_GRID(dsp_grid),10); + + GtkWidget *pre_post_agc_label=gtk_label_new("NR/NR2/ANF"); + //gtk_widget_override_font(pre_post_agc_label, pango_font_description_from_string("Arial 18")); + gtk_widget_show(pre_post_agc_label); + gtk_grid_attach(GTK_GRID(dsp_grid),pre_post_agc_label,0,0,1,1); + + GtkWidget *pre_agc_b=gtk_radio_button_new_with_label(NULL,"Pre AGC"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pre_agc_b),nr_agc==0); + gtk_widget_show(pre_agc_b); + gtk_grid_attach(GTK_GRID(dsp_grid),pre_agc_b,1,0,1,1); + g_signal_connect(pre_agc_b,"pressed",G_CALLBACK(pre_post_agc_cb),(gpointer *)0); + + GtkWidget *post_agc_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(pre_agc_b),"Post AGC"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (post_agc_b), nr_agc==1); + gtk_widget_show(post_agc_b); + gtk_grid_attach(GTK_GRID(dsp_grid),post_agc_b,2,0,1,1); + g_signal_connect(post_agc_b,"pressed",G_CALLBACK(pre_post_agc_cb),(gpointer *)1); + + GtkWidget *nr2_gain_label=gtk_label_new("NR2 Gain Method"); + //gtk_widget_override_font(nr2_gain_label, pango_font_description_from_string("Arial 18")); + gtk_widget_show(nr2_gain_label); + gtk_grid_attach(GTK_GRID(dsp_grid),nr2_gain_label,0,1,1,1); + + GtkWidget *linear_b=gtk_radio_button_new_with_label(NULL,"Linear"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linear_b),nr2_gain_method==0); + gtk_widget_show(linear_b); + gtk_grid_attach(GTK_GRID(dsp_grid),linear_b,1,1,1,1); + g_signal_connect(linear_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)0); + + GtkWidget *log_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(linear_b),"Log"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (log_b), nr2_gain_method==1); + gtk_widget_show(log_b); + gtk_grid_attach(GTK_GRID(dsp_grid),log_b,2,1,1,1); + g_signal_connect(log_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)1); + + GtkWidget *gamma_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(log_b),"Gamma"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gamma_b), nr2_gain_method==2); + gtk_widget_show(gamma_b); + gtk_grid_attach(GTK_GRID(dsp_grid),gamma_b,3,1,1,1); + g_signal_connect(gamma_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)2); + + GtkWidget *nr2_npe_method_label=gtk_label_new("NR2 NPE Method"); + //gtk_widget_override_font(nr2_npe_method_label, pango_font_description_from_string("Arial 18")); + gtk_widget_show(nr2_npe_method_label); + gtk_grid_attach(GTK_GRID(dsp_grid),nr2_npe_method_label,0,2,1,1); + + GtkWidget *osms_b=gtk_radio_button_new_with_label(NULL,"OSMS"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (osms_b),nr2_npe_method==0); + gtk_widget_show(osms_b); + gtk_grid_attach(GTK_GRID(dsp_grid),osms_b,1,2,1,1); + g_signal_connect(osms_b,"pressed",G_CALLBACK(nr2_npe_method_cb),(gpointer *)0); + + GtkWidget *mmse_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(osms_b),"MMSE"); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mmse_b), nr2_npe_method==1); + gtk_widget_show(mmse_b); + gtk_grid_attach(GTK_GRID(dsp_grid),mmse_b,2,2,1,1); + g_signal_connect(mmse_b,"pressed",G_CALLBACK(nr2_npe_method_cb),(gpointer *)1); + + GtkWidget *ae_b=gtk_check_button_new_with_label("NR2 AE Filter"); + //gtk_widget_override_font(ae_b, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ae_b), nr2_ae); + gtk_widget_show(ae_b); + gtk_grid_attach(GTK_GRID(dsp_grid),ae_b,0,3,1,1); + g_signal_connect(ae_b,"toggled",G_CALLBACK(ae_cb),NULL); + + id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),dsp_grid,dsp_label); + GtkWidget *tx_label=gtk_label_new("PA Gain"); GtkWidget *tx_grid=gtk_grid_new(); gtk_grid_set_row_homogeneous(GTK_GRID(tx_grid),TRUE); @@ -741,28 +874,44 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, GtkWidget *oc_tune_title=gtk_label_new(oc_id); //gtk_widget_override_font(oc_tune_title, pango_font_description_from_string("Arial 18")); gtk_widget_show(oc_tune_title); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_title,18,j+2,1,1); + gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_title,18,j,1,1); mask=0x01<OCtx; if(tune) { - if(OCtune_time!=0) { + if(OCmemory_tune_time!=0) { struct timeval te; gettimeofday(&te,NULL); long long now=te.tv_sec*1000LL+te.tv_usec/1000; diff --git a/pihpsdr b/pihpsdr index afdf957..d3c9f3c 100755 Binary files a/pihpsdr and b/pihpsdr differ diff --git a/radio.c b/radio.c index 23a493c..62734dc 100644 --- a/radio.c +++ b/radio.c @@ -99,6 +99,11 @@ int nb2=0; int anf=0; int snb=0; +int nr_agc=0; // 0=pre AGC 1=post AGC +int nr2_gain_method=2; // 0=Linear 1=Log 2=gamma +int nr2_npe_method=0; // 0=OSMS 1=MMSE +int nr2_ae=1; // 0=disable 1=enable + int cwPitch=600; int tune_drive=6; @@ -160,7 +165,8 @@ int tune; long long ddsFrequency=14250000; unsigned char OCtune=0; -int OCtune_time=2800; // ms +int OCfull_tune_time=2800; // ms +int OCmemory_tune_time=550; // ms long long tune_timeout; void init_radio() { @@ -200,10 +206,10 @@ fprintf(stderr,"setTune: protocol=%d\n", protocol); if(tune!=state) { tune=state; if(tune) { - if(OCtune_time!=0) { + if(OCmemory_tune_time!=0) { struct timeval te; gettimeofday(&te,NULL); - tune_timeout=(te.tv_sec*1000LL+te.tv_usec/1000)+(long long)OCtune_time; + tune_timeout=(te.tv_sec*1000LL+te.tv_usec/1000)+(long long)OCmemory_tune_time; } } if(protocol==NEW_PROTOCOL) { @@ -366,6 +372,14 @@ void radioRestoreState() { if(value) anf=atoi(value); value=getProperty("snb"); if(value) snb=atoi(value); + value=getProperty("nr_agc"); + if(value) nr_agc=atoi(value); + value=getProperty("nr2_gain_method"); + if(value) nr2_gain_method=atoi(value); + value=getProperty("nr2_npe_method"); + if(value) nr2_npe_method=atoi(value); + value=getProperty("nr2_ae"); + if(value) nr2_ae=atoi(value); value=getProperty("agc"); if(value) agc=atoi(value); value=getProperty("agc_gain"); @@ -400,8 +414,10 @@ void radioRestoreState() { if(value) vfo_encoder_divisor=atoi(value); value=getProperty("OCtune"); if(value) OCtune=atoi(value); - value=getProperty("OCtune_time"); - if(value) OCtune_time=atoi(value); + value=getProperty("OCfull_tune_time"); + if(value) OCfull_tune_time=atoi(value); + value=getProperty("OCmemory_tune_time"); + if(value) OCmemory_tune_time=atoi(value); bandRestoreState(); sem_post(&property_sem); @@ -481,6 +497,14 @@ void radioSaveState() { setProperty("anf",value); sprintf(value,"%d",snb); setProperty("snb",value); + sprintf(value,"%d",nr_agc); + setProperty("nr_agc",value); + sprintf(value,"%d",nr2_gain_method); + setProperty("nr2_gain_method",value); + sprintf(value,"%d",nr2_npe_method); + setProperty("nr2_npe_method",value); + sprintf(value,"%d",nr2_ae); + setProperty("nr2_ae",value); sprintf(value,"%d",agc); setProperty("agc",value); sprintf(value,"%f",agc_gain); @@ -515,8 +539,10 @@ void radioSaveState() { setProperty("vfo_encoder_divisor",value); sprintf(value,"%d",OCtune); setProperty("OCtune",value); - sprintf(value,"%d",OCtune_time); - setProperty("OCtune_time",value); + sprintf(value,"%d",OCfull_tune_time); + setProperty("OCfull_tune_time",value); + sprintf(value,"%d",OCmemory_tune_time); + setProperty("OCmemory_tune_time",value); bandSaveState(); diff --git a/radio.h b/radio.h index 1379abc..02ade6f 100644 --- a/radio.h +++ b/radio.h @@ -107,6 +107,11 @@ extern int nb2; extern int anf; extern int snb; +extern int nr_agc; +extern int nr2_gain_method; +extern int nr2_npe_method; +extern int nr2_ae; + extern int cwPitch; extern int mic_linein; @@ -174,7 +179,8 @@ extern int supply_volts; extern long long ddsFrequency; extern unsigned char OCtune; -extern int OCtune_time; +extern int OCfull_tune_time; +extern int OCmemory_tune_time; extern long long tune_timeout; extern void init_radio(); diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar index 3333e22..2d2d983 100644 Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr index afdf957..d3c9f3c 100755 Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ diff --git a/toolbar.c b/toolbar.c index c967641..4ad4790 100644 --- a/toolbar.c +++ b/toolbar.c @@ -46,6 +46,16 @@ static int height; static GtkWidget *parent_window; static GtkWidget *toolbar; +static GtkWidget *sim_band; +static GtkWidget *sim_bandstack; +static GtkWidget *sim_mode; +static GtkWidget *sim_filter; +static GtkWidget *sim_agc; +static GtkWidget *sim_noise; +static GtkWidget *sim_function; +static GtkWidget *sim_mox; + + static GtkWidget *last_band; static GtkWidget *last_mode; static GtkWidget *last_filter; @@ -930,9 +940,30 @@ void sim_noise_cb(GtkWidget *widget, gpointer data) { } +void update_toolbar() { + if(function) { + gtk_button_set_label(GTK_BUTTON(sim_band),"Band v"); + gtk_button_set_label(GTK_BUTTON(sim_bandstack),"BStack v"); + gtk_button_set_label(GTK_BUTTON(sim_mode),"Mode v"); + gtk_button_set_label(GTK_BUTTON(sim_filter),"Filter v"); + gtk_button_set_label(GTK_BUTTON(sim_agc),"AGC v"); + gtk_button_set_label(GTK_BUTTON(sim_noise),"Noise v"); + gtk_button_set_label(GTK_BUTTON(sim_mox),"Tune"); + } else { + gtk_button_set_label(GTK_BUTTON(sim_band),"Band ^"); + gtk_button_set_label(GTK_BUTTON(sim_bandstack),"BStack ^"); + gtk_button_set_label(GTK_BUTTON(sim_mode),"Mode ^"); + gtk_button_set_label(GTK_BUTTON(sim_filter),"Filter ^"); + gtk_button_set_label(GTK_BUTTON(sim_agc),"AGC ^"); + gtk_button_set_label(GTK_BUTTON(sim_noise),"Noise ^"); + gtk_button_set_label(GTK_BUTTON(sim_mox),"Mox"); + } +} + void sim_function_cb(GtkWidget *widget, gpointer data) { fprintf(stderr,"sim_function_cb\n"); function=function==1?0:1; + update_toolbar(); vfo_update(NULL); } @@ -969,47 +1000,47 @@ GtkWidget *toolbar_init(int my_width, int my_height, GtkWidget* parent) { gtk_grid_set_column_homogeneous(GTK_GRID(toolbar),TRUE); if(toolbar_simulate_buttons) { - GtkWidget *band=gtk_button_new_with_label("Band"); - gtk_widget_set_size_request (band, button_width, 0); - //gtk_widget_override_font(band, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(band),"clicked",G_CALLBACK(sim_band_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),band,0,0,4,1); - - GtkWidget *bandstack=gtk_button_new_with_label("BStack"); - gtk_widget_set_size_request (bandstack, button_width, 0); - //gtk_widget_override_font(bandstack, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(bandstack),"clicked",G_CALLBACK(sim_bandstack_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),bandstack,4,0,4,1); - - GtkWidget *mode=gtk_button_new_with_label("Mode"); - //gtk_widget_override_font(mode, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(mode),"clicked",G_CALLBACK(sim_mode_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),mode,8,0,4,1); - - GtkWidget *filter=gtk_button_new_with_label("Filter"); - //gtk_widget_override_font(filter, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(filter),"clicked",G_CALLBACK(sim_filter_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),filter,12,0,4,1); - - GtkWidget *agc=gtk_button_new_with_label("AGC"); - //gtk_widget_override_font(agc, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(agc),"clicked",G_CALLBACK(sim_agc_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),agc,16,0,4,1); - - GtkWidget *noise=gtk_button_new_with_label("Noise"); - //gtk_widget_override_font(noise, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(noise),"clicked",G_CALLBACK(sim_noise_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),noise,20,0,4,1); - - GtkWidget *function=gtk_button_new_with_label("Function"); - //gtk_widget_override_font(function, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(function),"clicked",G_CALLBACK(sim_function_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),function,24,0,4,1); - - GtkWidget *mox=gtk_button_new_with_label("Mox"); - //gtk_widget_override_font(mox, pango_font_description_from_string("Arial 16")); - g_signal_connect(G_OBJECT(mox),"clicked",G_CALLBACK(sim_mox_cb),NULL); - gtk_grid_attach(GTK_GRID(toolbar),mox,28,0,4,1); + sim_band=gtk_button_new_with_label("Band ^"); + gtk_widget_set_size_request (sim_band, button_width, 0); + //gtk_widget_override_font(sim_band, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_band),"clicked",G_CALLBACK(sim_band_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_band,0,0,4,1); + + sim_bandstack=gtk_button_new_with_label("BStack ^"); + gtk_widget_set_size_request (sim_bandstack, button_width, 0); + //gtk_widget_override_font(sim_bandstack, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_bandstack),"clicked",G_CALLBACK(sim_bandstack_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_bandstack,4,0,4,1); + + sim_mode=gtk_button_new_with_label("Mode ^"); + //gtk_widget_override_font(sim_mode, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_mode),"clicked",G_CALLBACK(sim_mode_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_mode,8,0,4,1); + + sim_filter=gtk_button_new_with_label("Filter ^"); + //gtk_widget_override_font(sim_filter, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_filter),"clicked",G_CALLBACK(sim_filter_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_filter,12,0,4,1); + + sim_agc=gtk_button_new_with_label("AGC ^"); + //gtk_widget_override_font(sim_agc, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_agc),"clicked",G_CALLBACK(sim_agc_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_agc,16,0,4,1); + + sim_noise=gtk_button_new_with_label("Noise ^"); + //gtk_widget_override_font(sim_noise, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_noise),"clicked",G_CALLBACK(sim_noise_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_noise,20,0,4,1); + + sim_function=gtk_button_new_with_label("Function"); + //gtk_widget_override_font(sim_function, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_function),"clicked",G_CALLBACK(sim_function_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_function,24,0,4,1); + + sim_mox=gtk_button_new_with_label("Mox"); + //gtk_widget_override_font(sim_mox, pango_font_description_from_string("Arial 16")); + g_signal_connect(G_OBJECT(sim_mox),"clicked",G_CALLBACK(sim_mox_cb),NULL); + gtk_grid_attach(GTK_GRID(toolbar),sim_mox,28,0,4,1); } else { GtkWidget *band=gtk_button_new_with_label("Band"); diff --git a/toolbar.h b/toolbar.h index eb758c7..acaa7ca 100644 --- a/toolbar.h +++ b/toolbar.h @@ -19,6 +19,7 @@ extern int function; +void update_toolbar(); int ptt_update(void *data); void lock_cb(GtkWidget *widget, gpointer data); void mox_cb(GtkWidget *widget, gpointer data); diff --git a/wdsp_init.c b/wdsp_init.c index 371a028..7ffd8dc 100644 --- a/wdsp_init.c +++ b/wdsp_init.c @@ -211,13 +211,12 @@ void wdsp_init(int rx,int pixels,int protocol) { SetRXAAMDSBMode(CHANNEL_RX0, 0); SetRXAShiftRun(CHANNEL_RX0, 0); - SetRXAEMNRgainMethod(CHANNEL_RX0, 2); // 0=Linear 1=Log 2=Gamma - SetRXAEMNRnpeMethod(CHANNEL_RX0, 0); // 0=OSMS 1=MMSE - SetRXAEMNRPosition(CHANNEL_RX0, 0); // 0=Pre AGC, 1=Post AGC - SetRXAEMNRaeRun(CHANNEL_RX0, 1); // 1=run + SetRXAEMNRPosition(CHANNEL_RX0, nr_agc); + SetRXAEMNRgainMethod(CHANNEL_RX0, nr2_gain_method); + SetRXAEMNRnpeMethod(CHANNEL_RX0, nr2_npe_method); SetRXAEMNRRun(CHANNEL_RX0, nr2); + SetRXAEMNRaeRun(CHANNEL_RX0, nr2_ae); - SetRXAEMNRaeRun(CHANNEL_RX0, 0); SetRXAANRVals(CHANNEL_RX0, 64, 16, 16e-4, 10e-7); // defaults SetRXAANRRun(CHANNEL_RX0, nr); SetRXAANFRun(CHANNEL_RX0, anf);