From: John Melton - G0ORX/N6LYT Date: Fri, 25 Nov 2016 10:15:01 +0000 (+0000) Subject: add disable pa option to XVTR menu X-Git-Url: https://git.rkrishnan.org/uri/%3C?a=commitdiff_plain;h=adfb652a691802c2293edc881e2580bc055a0749;p=pihpsdr.git add disable pa option to XVTR menu --- diff --git a/band.c b/band.c index 780c586..e1ec870 100644 --- a/band.c +++ b/band.c @@ -221,39 +221,39 @@ BANDSTACK bandstack_xvtr_7={1,0,bandstack_entries_xvtr_7}; BAND bands[BANDS+XVTRS] = - {{"160",&bandstack160,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.0,0LL,0LL,0LL}, - {"80",&bandstack80,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL}, - {"60",&bandstack60,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL}, - {"40",&bandstack40,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL}, - {"30",&bandstack30,0,0,0,0,0,ALEX_ATTENUATION_0dB,41.3,0LL,0LL,0LL}, - {"20",&bandstack20,0,0,0,0,0,ALEX_ATTENUATION_0dB,40.5,0LL,0LL,0LL}, - {"18",&bandstack18,0,0,0,0,0,ALEX_ATTENUATION_0dB,40.0,0LL,0LL,0LL}, - {"15",&bandstack15,0,0,0,0,0,ALEX_ATTENUATION_0dB,39.6,0LL,0LL,0LL}, - {"12",&bandstack12,0,0,0,0,0,ALEX_ATTENUATION_0dB,39.0,0LL,0LL,0LL}, - {"10",&bandstack10,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"50",&bandstack50,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, + {{"160",&bandstack160,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.0,0LL,0LL,0LL,0}, + {"80",&bandstack80,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL,0}, + {"60",&bandstack60,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL,0}, + {"40",&bandstack40,0,0,0,0,0,ALEX_ATTENUATION_0dB,42.5,0LL,0LL,0LL,0}, + {"30",&bandstack30,0,0,0,0,0,ALEX_ATTENUATION_0dB,41.3,0LL,0LL,0LL,0}, + {"20",&bandstack20,0,0,0,0,0,ALEX_ATTENUATION_0dB,40.5,0LL,0LL,0LL,0}, + {"18",&bandstack18,0,0,0,0,0,ALEX_ATTENUATION_0dB,40.0,0LL,0LL,0LL,0}, + {"15",&bandstack15,0,0,0,0,0,ALEX_ATTENUATION_0dB,39.6,0LL,0LL,0LL,0}, + {"12",&bandstack12,0,0,0,0,0,ALEX_ATTENUATION_0dB,39.0,0LL,0LL,0LL,0}, + {"10",&bandstack10,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"50",&bandstack50,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, #ifdef LIMESDR - {"70",&bandstack70,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"144",&bandstack144,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"220",&bandstack144,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"430",&bandstack430,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"902",&bandstack430,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"1240",&bandstack1240,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"2300",&bandstack2300,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"3400",&bandstack3400,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"AIR",&bandstackAIR,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, + {"70",&bandstack70,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"144",&bandstack144,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"220",&bandstack144,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"430",&bandstack430,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"902",&bandstack430,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"1240",&bandstack1240,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"2300",&bandstack2300,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"3400",&bandstack3400,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"AIR",&bandstackAIR,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, #endif - {"GEN",&bandstackGEN,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"WWV",&bandstackWWV,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, + {"GEN",&bandstackGEN,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"WWV",&bandstackWWV,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, // XVTRS - {"",&bandstack_xvtr_0,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_1,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_2,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_3,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_4,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_5,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_6,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL}, - {"",&bandstack_xvtr_7,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL} + {"",&bandstack_xvtr_0,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_1,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_2,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_3,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_4,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_5,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_6,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0}, + {"",&bandstack_xvtr_7,0,0,0,0,0,ALEX_ATTENUATION_0dB,38.8,0LL,0LL,0LL,0} }; @@ -392,6 +392,10 @@ void bandSaveState() { sprintf(name,"band.%d.frequencyLO",b); setProperty(name,value); + sprintf(value,"%d",bands[b].disablePA); + sprintf(name,"band.%d.disablePA",b); + setProperty(name,value); + for(stack=0;stackentries;stack++) { entry=bands[b].bandstack->entry; entry+=stack; @@ -503,6 +507,10 @@ fprintf(stderr,"bandRestoreState: restore bands\n"); value=getProperty(name); if(value) bands[b].frequencyLO=atoll(value); + sprintf(name,"band.%d.disablePA",b); + value=getProperty(name); + if(value) bands[b].disablePA=atoi(value); + for(stack=0;stackentries;stack++) { entry=bands[b].bandstack->entry; entry+=stack; diff --git a/band.h b/band.h index 6438bcc..40fe1b1 100644 --- a/band.h +++ b/band.h @@ -84,6 +84,7 @@ struct _BAND { long long frequencyMin; long long frequencyMax; long long frequencyLO; + int disablePA; }; typedef struct _BAND BAND; diff --git a/new_protocol.c b/new_protocol.c index b3968b6..13a6bf7 100644 --- a/new_protocol.c +++ b/new_protocol.c @@ -260,6 +260,7 @@ void new_protocol_new_sample_rate(int rate) { static void new_protocol_general() { unsigned char buffer[60]; + BAND *band=band_get_current_band(); memset(buffer, 0, sizeof(buffer)); @@ -272,7 +273,13 @@ static void new_protocol_general() { buffer[37]=0x08; // phase word (not frequency) buffer[38]=0x01; // enable hardware timer - buffer[58]=0x01; // enable PA 0x01 + + + if(band->disablePA) { + buffer[58]=0x00; + } else { + buffer[58]=0x01; // enable PA + } if(filter_board==APOLLO) { buffer[58]|=0x02; // enable APOLLO tuner diff --git a/old_protocol.c b/old_protocol.c index 45f91a2..590c031 100644 --- a/old_protocol.c +++ b/old_protocol.c @@ -944,6 +944,7 @@ void ozy_send_buffer() { break; case 3: { + BAND *band=band_get_current_band(); int power=0; if(isTransmitting()) { if(tune) { @@ -971,7 +972,10 @@ fprintf(stderr,"power=%d\n",power); } output_buffer[C3]=0x00; if(band_get_current()==band6) { - output_buffer[C3]=output_buffer[6]|0x40; // Alex 6M low noise amplifier + output_buffer[C3]=output_buffer[C3]|0x40; // Alex 6M low noise amplifier + } + if(band->disablePA) { + output_buffer[C3]=output_buffer[C3]|0x80; // disable PA } output_buffer[C4]=0x00; } diff --git a/pihpsdr b/pihpsdr index 5d2ce22..deda0d1 100755 Binary files a/pihpsdr and b/pihpsdr differ diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar index 981483d..c1e7c9b 100644 Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr index 5d2ce22..deda0d1 100755 Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ diff --git a/xvtr_menu.c b/xvtr_menu.c index 943d3c6..6a25125 100644 --- a/xvtr_menu.c +++ b/xvtr_menu.c @@ -36,6 +36,7 @@ static GtkWidget *title[BANDS+XVTRS]; static GtkWidget *min_frequency[BANDS+XVTRS]; static GtkWidget *max_frequency[BANDS+XVTRS]; static GtkWidget *lo_frequency[BANDS+XVTRS]; +static GtkWidget *disable_pa[BANDS+XVTRS]; static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { int i; @@ -57,6 +58,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat xvtr->frequencyMax=atoll(maxf); lof=gtk_entry_get_text(GTK_ENTRY(lo_frequency[i])); xvtr->frequencyLO=atoll(lof); + xvtr->disablePA=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(disable_pa[i])); entry->frequencyA=xvtr->frequencyMin; entry->frequencyB=xvtr->frequencyMin; entry->mode=modeUSB; @@ -65,6 +67,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat xvtr->frequencyMin=0; xvtr->frequencyMax=0; xvtr->frequencyLO=0; + xvtr->disablePA=0; } } gtk_widget_destroy(dialog); @@ -96,10 +99,10 @@ fprintf(stderr,"xvtr_menu\n"); GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *grid=gtk_grid_new(); - gtk_grid_set_column_spacing (GTK_GRID(grid),10); + //gtk_grid_set_column_spacing (GTK_GRID(grid),10); //gtk_grid_set_row_spacing (GTK_GRID(grid),10); //gtk_grid_set_row_homogeneous(GTK_GRID(grid),TRUE); - gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE); + //gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE); GtkWidget *close_b=gtk_button_new_with_label("Close XVTR"); g_signal_connect (close_b, "pressed", G_CALLBACK(close_cb), NULL); @@ -113,6 +116,8 @@ fprintf(stderr,"xvtr_menu\n"); gtk_grid_attach(GTK_GRID(grid),label,2,1,1,1); label=gtk_label_new("LO Freq (Hz)"); gtk_grid_attach(GTK_GRID(grid),label,3,1,1,1); + label=gtk_label_new("Disable PA"); + gtk_grid_attach(GTK_GRID(grid),label,4,1,1,1); @@ -139,6 +144,10 @@ fprintf(stderr,"xvtr_menu: band: %s\n",xvtr->title); sprintf(f,"%lld",xvtr->frequencyLO); gtk_entry_set_text(GTK_ENTRY(lo_frequency[i]),f); gtk_grid_attach(GTK_GRID(grid),lo_frequency[i],3,i+2,1,1); + + disable_pa[i]=gtk_check_button_new(); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(disable_pa[i]),xvtr->disablePA); + gtk_grid_attach(GTK_GRID(grid),disable_pa[i],4,i+2,1,1); }