From 7e728bec22ea622b54c7288de841a031aba71b0b Mon Sep 17 00:00:00 2001 From: John Melton - G0ORX/N6LYT Date: Tue, 19 Jul 2016 07:42:08 +0000 Subject: [PATCH] CW Configuration - added weight adjustment, TX frequency offset by Sidetone frequency. GPIO removed for UP board. --- configure.c | 3 --- main.c | 3 --- menu.c | 17 +++++++++++++++++ meter.c | 2 +- old_protocol.c | 18 ++++++++++++------ radio.c | 2 -- radio.h | 2 -- wdsp_init.c | 8 ++++---- 8 files changed, 34 insertions(+), 21 deletions(-) diff --git a/configure.c b/configure.c index 2ec820f..7a708d8 100644 --- a/configure.c +++ b/configure.c @@ -39,9 +39,6 @@ #ifdef odroid #define INCLUDE_GPIO #endif -#ifdef up -#define INCLUDE_GPIO -#endif static void display_panadapter_cb(GtkWidget *widget, gpointer data) { display_panadapter=display_panadapter==1?0:1; diff --git a/main.c b/main.c index d96e15c..d25a44e 100644 --- a/main.c +++ b/main.c @@ -64,9 +64,6 @@ #ifdef odroid #define INCLUDE_GPIO #endif -#ifdef up -#define INCLUDE_GPIO -#endif #define VFO_HEIGHT ((display_height/32)*4) #define VFO_WIDTH ((display_width/32)*16) diff --git a/menu.c b/menu.c index 7536cc4..4282b59 100644 --- a/menu.c +++ b/menu.c @@ -78,6 +78,11 @@ static void cw_keyer_hang_time_value_changed_cb(GtkWidget *widget, gpointer data cw_changed(); } +static void cw_keyer_weight_value_changed_cb(GtkWidget *widget, gpointer data) { + cw_keyer_weight=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); + cw_changed(); +} + static void cw_keys_reversed_cb(GtkWidget *widget, gpointer data) { cw_keys_reversed=cw_keys_reversed==1?0:1; cw_changed(); @@ -1217,6 +1222,18 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_frequency_b,1,7,1,1); g_signal_connect(cw_keyer_sidetone_frequency_b,"value_changed",G_CALLBACK(cw_keyer_sidetone_frequency_value_changed_cb),NULL); + GtkWidget *cw_keyer_weight_label=gtk_label_new("Weight:"); + //gtk_widget_override_font(cw_keyer_weight_label, pango_font_description_from_string("Arial 18")); + gtk_widget_show(cw_keyer_weight_label); + gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_label,0,8,1,1); + + GtkWidget *cw_keyer_weight_b=gtk_spin_button_new_with_range(0.0,100.0,1.0); + //gtk_widget_override_font(cw_keyer_weight_b, pango_font_description_from_string("Arial 18")); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_weight_b),(double)cw_keyer_weight); + gtk_widget_show(cw_keyer_weight_b); + gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_b,1,8,1,1); + g_signal_connect(cw_keyer_weight_b,"value_changed",G_CALLBACK(cw_keyer_weight_value_changed_cb),NULL); + id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),cw_grid,cw_label); } diff --git a/meter.c b/meter.c index 40da458..c2b6676 100644 --- a/meter.c +++ b/meter.c @@ -25,8 +25,8 @@ #include "meter.h" #include "wdsp.h" -#ifdef FREEDV #include "radio.h" +#ifdef FREEDV #include "mode.h" #include "freedv.h" #endif diff --git a/old_protocol.c b/old_protocol.c index a64e812..23e3a9c 100644 --- a/old_protocol.c +++ b/old_protocol.c @@ -804,19 +804,25 @@ void ozy_send_buffer() { } } break; - case 1: + case 1: // rx frequency output_buffer[C0]=0x04; output_buffer[C1]=ddsFrequency>>24; output_buffer[C2]=ddsFrequency>>16; output_buffer[C3]=ddsFrequency>>8; output_buffer[C4]=ddsFrequency; break; - case 2: + case 2: // tx frequency output_buffer[C0]=0x02; - output_buffer[C1]=ddsFrequency>>24; - output_buffer[C2]=ddsFrequency>>16; - output_buffer[C3]=ddsFrequency>>8; - output_buffer[C4]=ddsFrequency; + long txFrequency=ddsFrequency; + if(mode==modeCWU) { + txFrequency+=cw_keyer_sidetone_frequency; + } else if(mode==modeCWL) { + txFrequency-=cw_keyer_sidetone_frequency; + } + output_buffer[C1]=txFrequency>>24; + output_buffer[C2]=txFrequency>>16; + output_buffer[C3]=txFrequency>>8; + output_buffer[C4]=txFrequency; break; case 3: { diff --git a/radio.c b/radio.c index 7931e8d..c013e53 100644 --- a/radio.c +++ b/radio.c @@ -111,8 +111,6 @@ 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; int drive=60; diff --git a/radio.h b/radio.h index 1b6eadf..fd17af9 100644 --- a/radio.h +++ b/radio.h @@ -112,8 +112,6 @@ extern int nr2_gain_method; extern int nr2_npe_method; extern int nr2_ae; -extern int cwPitch; - extern int mic_linein; extern int mic_boost; extern int mic_bias_enabled; diff --git a/wdsp_init.c b/wdsp_init.c index 76d84c4..6279a38 100644 --- a/wdsp_init.c +++ b/wdsp_init.c @@ -109,11 +109,11 @@ int getMode() { void setFilter(int low,int high) { fprintf(stderr,"setFilter: %d %d\n",low,high); if(mode==modeCWL) { - filterLow=-cwPitch-low; - filterHigh=-cwPitch+high; + filterLow=-cw_keyer_sidetone_frequency-low; + filterHigh=-cw_keyer_sidetone_frequency+high; } else if(mode==modeCWU) { - filterLow=cwPitch-low; - filterHigh=cwPitch+high; + filterLow=cw_keyer_sidetone_frequency-low; + filterHigh=cw_keyer_sidetone_frequency+high; } else { filterLow=low; filterHigh=high; -- 2.45.2