]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
changed Makefile to get GIT version and date for build info. Changed VFO to display...
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Fri, 22 Jul 2016 13:33:32 +0000 (13:33 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Fri, 22 Jul 2016 13:33:32 +0000 (13:33 +0000)
14 files changed:
Makefile
main.c
menu.c
meter.c
new_protocol.c
old_protocol.c
panadapter.c
radio.c
radio.h
splash.c
toolbar.c
version.c
version.h
vfo.c

index 89d6d22d0175b021af108084416c2258dd8e3287..1be41a45e427804ca04bf83c128b7a366a38826b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,12 @@
+# Get git commit version and date
+GIT_VERSION := $(shell git --no-pager describe --tags --always --dirty)
+GIT_DATE := $(firstword $(shell git --no-pager show --date=short --format="%ai" --name-only))
+
 UNAME_N=raspberrypi
 #UNAME_N=odroid
 #UNAME_N=up
-#UNAME_N=other
+#UNAME_N=pine64
+#UNAME_N=x86
 
 CC=gcc
 LINK=gcc
@@ -64,7 +69,8 @@ else
   gpio.o
 endif
 
-OPTIONS=-g -D $(UNAME_N) $(LIMESDR_OPTIONS) $(FREEDV_OPTIONS) -O3
+OPTIONS=-g -D $(UNAME_N) $(LIMESDR_OPTIONS) $(FREEDV_OPTIONS) -D GIT_DATE='"$(GIT_DATE)"' -D GIT_VERSION='"$(GIT_VERSION)"' -O3
+
 GTKINCLUDES=`pkg-config --cflags gtk+-3.0`
 GTKLIBS=`pkg-config --libs gtk+-3.0`
 
diff --git a/main.c b/main.c
index d25a44eee9466b8d9978d46267ce6a5a41d4bee9..15a0edffeb4fd36f4a9c89db8d87cea26111b243 100644 (file)
--- a/main.c
+++ b/main.c
@@ -232,8 +232,8 @@ static gint save_cb(gpointer data) {
 }
 
 static void start_cb(GtkWidget *widget, gpointer data) {
-fprintf(stderr,"start_cb\n");
     selected_device=(int)data;
+fprintf(stderr,"start_cb: %d\n",selected_device);
     start=1;
     gtk_widget_destroy(discovery_dialog);
 }
@@ -685,7 +685,7 @@ main (int   argc,
 {
   gtk_init (&argc, &argv);
 
-  fprintf(stderr,"Build: %s %s\n",build_date,build_time);
+  fprintf(stderr,"Build: %s %s\n",build_date,build_version);
 
   uname(&unameData);
   fprintf(stderr,"sysname: %s\n",unameData.sysname);
diff --git a/menu.c b/menu.c
index 4282b592c223c12cd8c465ed0d100d2d5ad119e6..43e5f5c020285b3c2b0290d675945bdce9756067 100644 (file)
--- a/menu.c
+++ b/menu.c
 
 #include "audio.h"
 #include "band.h"
+#include "bandstack.h"
 #include "channel.h"
 #include "discovered.h"
+#include "filter.h"
+#include "mode.h"
 #include "new_protocol.h"
 #include "radio.h"
 #include "toolbar.h"
@@ -100,6 +103,12 @@ static void cw_keyer_sidetone_level_value_changed_cb(GtkWidget *widget, gpointer
 
 static void cw_keyer_sidetone_frequency_value_changed_cb(GtkWidget *widget, gpointer data) {
   cw_keyer_sidetone_frequency=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
+  if(mode==modeCWL || mode==modeCWU) {
+    BANDSTACK_ENTRY *entry=bandstack_entry_get_current();
+    FILTER* band_filters=filters[entry->mode];
+    FILTER* band_filter=&band_filters[entry->filter];
+    setFilter(band_filter->low,band_filter->high);
+  }
   cw_changed();
 }
 
@@ -199,7 +208,7 @@ static void apollo_cb(GtkWidget *widget, gpointer data) {
     filter_board_changed();
   }
 }
-
+/*
 static void apollo_tuner_cb(GtkWidget *widget, gpointer data) {
   apollo_tuner=apollo_tuner==1?0:1;
   if(protocol==NEW_PROTOCOL) {
@@ -213,6 +222,7 @@ static void pa_cb(GtkWidget *widget, gpointer data) {
     pa_changed();
   }
 }
+*/
 
 static void rx_dither_cb(GtkWidget *widget, gpointer data) {
   rx_dither=rx_dither==1?0:1;
@@ -613,6 +623,7 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
     g_signal_connect(alex_b,"toggled",G_CALLBACK(alex_cb),apollo_b);
     g_signal_connect(apollo_b,"toggled",G_CALLBACK(apollo_cb),alex_b);
   
+/*
     GtkWidget *apollo_tuner_b=gtk_check_button_new_with_label("Auto Tuner");
     //gtk_widget_override_font(apollo_tuner_b, pango_font_description_from_string("Arial 18"));
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (apollo_tuner_b), apollo_tuner);
@@ -626,7 +637,7 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
     gtk_widget_show(pa_b);
     gtk_grid_attach(GTK_GRID(general_grid),pa_b,2,5,1,1);
     g_signal_connect(pa_b,"toggled",G_CALLBACK(pa_cb),NULL);
-  
+ */ 
   }
 
   GtkWidget *sample_rate_label=gtk_label_new("Sample Rate:");
diff --git a/meter.c b/meter.c
index c2b667677a00ad5afdcbd6c1d6169df8092fbb53..d94b288a8c0d6178d162f35878449289320efc07 100644 (file)
--- a/meter.c
+++ b/meter.c
@@ -26,6 +26,7 @@
 #include "meter.h"
 #include "wdsp.h"
 #include "radio.h"
+#include "version.h"
 #ifdef FREEDV
 #include "mode.h"
 #include "freedv.h"
@@ -191,6 +192,7 @@ fprintf(stderr,"meter_init: width=%d height=%d\n",width,height);
 
 void meter_update(int meter_type,double value,double reverse,double exciter,double alc) {
   
+  char text[128];
   char sf[32];
   int text_location;
   double offset;
@@ -201,6 +203,13 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
   cairo_set_source_rgb (cr, 0, 0, 0);
   cairo_paint (cr);
 
+
+  sprintf(text,"Version: %s %s", build_date, build_version);
+  cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
+  cairo_set_font_size(cr, 12);
+  cairo_move_to(cr, 5, 15);
+  cairo_show_text(cr, text);
+
   if(last_meter_type!=meter_type) {
     last_meter_type=meter_type;
     max_count=0;
@@ -228,11 +237,11 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
         cairo_set_line_width(cr, 1.0);
         cairo_set_source_rgb(cr, 1, 1, 1);
         for(i=0;i<54;i++) {
-          cairo_move_to(cr,offset+(double)(i*db),(double)meter_height-20);
+          cairo_move_to(cr,offset+(double)(i*db),(double)meter_height-10);
           if(i%18==0) {
-            cairo_line_to(cr,offset+(double)(i*db),(double)(meter_height-30));
+            cairo_line_to(cr,offset+(double)(i*db),(double)(meter_height-20));
           } else if(i%6==0) {
-            cairo_line_to(cr,offset+(double)(i*db),(double)(meter_height-25));
+            cairo_line_to(cr,offset+(double)(i*db),(double)(meter_height-15));
           }
         }
         cairo_stroke(cr);
@@ -244,14 +253,14 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
         cairo_show_text(cr, "6");
 
         cairo_set_source_rgb(cr, 1, 0, 0);
-        cairo_move_to(cr,offset+(double)(54*db),(double)meter_height-20);
-        cairo_line_to(cr,offset+(double)(54*db),(double)(meter_height-30));
-        cairo_move_to(cr,offset+(double)(74*db),(double)meter_height-20);
-        cairo_line_to(cr,offset+(double)(74*db),(double)(meter_height-30));
-        cairo_move_to(cr,offset+(double)(94*db),(double)meter_height-20);
-        cairo_line_to(cr,offset+(double)(94*db),(double)(meter_height-30));
-        cairo_move_to(cr,offset+(double)(114*db),(double)meter_height-20);
-        cairo_line_to(cr,offset+(double)(114*db),(double)(meter_height-30));
+        cairo_move_to(cr,offset+(double)(54*db),(double)meter_height-10);
+        cairo_line_to(cr,offset+(double)(54*db),(double)(meter_height-20));
+        cairo_move_to(cr,offset+(double)(74*db),(double)meter_height-10);
+        cairo_line_to(cr,offset+(double)(74*db),(double)(meter_height-20));
+        cairo_move_to(cr,offset+(double)(94*db),(double)meter_height-10);
+        cairo_line_to(cr,offset+(double)(94*db),(double)(meter_height-20));
+        cairo_move_to(cr,offset+(double)(114*db),(double)meter_height-10);
+        cairo_line_to(cr,offset+(double)(114*db),(double)(meter_height-20));
         cairo_stroke(cr);
 
         cairo_move_to(cr, offset+(double)(54*db)-3.0, (double)meter_height);
@@ -264,7 +273,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
         cairo_show_text(cr, "+60");
 
         cairo_set_source_rgb(cr, 0, 1, 0);
-        cairo_rectangle(cr, offset+0.0, (double)(meter_height-50), (double)((level+127.0)*db), 20.0);
+        cairo_rectangle(cr, offset+0.0, (double)(meter_height-40), (double)((level+127.0)*db), 20.0);
         cairo_fill(cr);
 
         if(level>max_level || max_count==10) {
@@ -274,8 +283,8 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
 
         if(max_level!=0) {
           cairo_set_source_rgb(cr, 1, 1, 0);
-          cairo_move_to(cr,offset+(double)((max_level+127.0)*db),(double)meter_height-30);
-          cairo_line_to(cr,offset+(double)((max_level+127.0)*db),(double)(meter_height-50));
+          cairo_move_to(cr,offset+(double)((max_level+127.0)*db),(double)meter_height-20);
+          cairo_line_to(cr,offset+(double)((max_level+127.0)*db),(double)(meter_height-40));
         }
 
 
@@ -321,7 +330,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
       max_count++;
 
       sprintf(sf,"FWD: %d W",(int)max_level);
-      cairo_move_to(cr, 10, 25);
+      cairo_move_to(cr, 10, 35);
       cairo_show_text(cr, sf);
 
       double swr=(value+reverse)/(value-reverse);
@@ -331,11 +340,11 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
       cairo_set_font_size(cr, 18);
 
       sprintf(sf,"SWR: %1.1f:1",swr);
-      cairo_move_to(cr, 10, 45);
+      cairo_move_to(cr, 10, 55);
       cairo_show_text(cr, sf);
 
       sprintf(sf,"ALC: %2.1f dB",alc);
-      cairo_move_to(cr, meter_width/2, 45);
+      cairo_move_to(cr, meter_width/2, 35);
       cairo_show_text(cr, sf);
       
 /*
index b2c5c968e143e261f67ce2af0d5f28ae0ae4a3b8..fe9600770b20fb7825b898cf308980376917c3d0 100644 (file)
@@ -168,6 +168,7 @@ void filter_board_changed() {
     schedule_general();
 }
 
+/*
 void pa_changed() {
     schedule_general();
 }
@@ -175,6 +176,7 @@ void pa_changed() {
 void tuner_changed() {
     schedule_general();
 }
+*/
 
 void cw_changed() {
 }
@@ -219,8 +221,9 @@ fprintf(stderr,"new_protocol_general: receiver=%d\n", receiver);
 
     // use defaults apart from
     buffer[37]=0x08;  //  phase word (not frequency)
-    buffer[58]=pa;  // enable PA 0x01
-    if((filter_board==APOLLO) && tune && apollo_tuner) {
+    //buffer[58]=pa;  // enable PA 0x01
+    buffer[58]=0x01;  // enable PA 0x01
+    if((filter_board==APOLLO) && tune) {
         buffer[58]|=0x02;
     }
 
index 23e3a9c95f916e7c3f8cf05e15a68cbf30d4ba38..3780582f98a4bb22a44b24bcde6a74286de581df 100644 (file)
@@ -407,6 +407,15 @@ static void process_ozy_input_buffer(char  *buffer) {
     dash=(control_in[0]&0x02)==0x02;
     dot=(control_in[0]&0x04)==0x04;
 
+if(last_ptt!=ptt) {
+  fprintf(stderr,"ptt=%d\n",ptt);
+}
+if(last_dot!=dot) {
+  fprintf(stderr,"dot=%d\n",dot);
+}
+if(last_dash!=dash) {
+  fprintf(stderr,"dash=%d\n",dash);
+}
     if(last_ptt!=ptt) {
       g_idle_add(ptt_update,(gpointer)ptt);
     }
@@ -804,26 +813,28 @@ void ozy_send_buffer() {
       }
       }
       break;
-    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: // tx frequency
+    case 1: // tx frequency
       output_buffer[C0]=0x02;
-      long txFrequency=ddsFrequency;
+      long long txFrequency=ddsFrequency;
+/*
       if(mode==modeCWU) {
-        txFrequency+=cw_keyer_sidetone_frequency;
+        txFrequency=ddsFrequency+(long long)cw_keyer_sidetone_frequency;
       } else if(mode==modeCWL) {
-        txFrequency-=cw_keyer_sidetone_frequency;
+        txFrequency=ddsFrequency-(long long)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 2: // 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 3:
       {
       float d=(float)drive;
@@ -843,9 +854,9 @@ void ozy_send_buffer() {
         output_buffer[C2]|=0x02;
       }
       if(filter_board==APOLLO) {
-        output_buffer[C2]|=0x2C; // board, filter ,tuner
+        output_buffer[C2]|=0x2C;
       }
-      if((filter_board==APOLLO) && tune && apollo_tuner) {
+      if((filter_board==APOLLO) && tune) {
         output_buffer[C2]|=0x10;
       }
       output_buffer[C3]=0x00;
index 3b26efd1219fce59cfe9b22ce4898dc1031a7792..4898006c0140aa0549a0fc2d06fdc12bdaed1f8b 100644 (file)
@@ -251,9 +251,17 @@ void panadapter_update(float *data,int tx) {
             cairo_stroke(cr);
 
             // plot frequency markers
-            long divisor=20000;
             long f;
+            long divisor=20000;
             long half=(long)getSampleRate()/2L;
+            long frequency=getFrequency();
+/*
+            if(mode==modeCWU) {
+              frequency=frequency+cw_keyer_sidetone_frequency;
+            } else if(mode==modeCWL) {
+              frequency=frequency-cw_keyer_sidetone_frequency;
+            }
+*/
             switch(sample_rate) {
               case 48000:
                 divisor=5000L;
@@ -278,7 +286,7 @@ void panadapter_update(float *data,int tx) {
                 break;
             }
             for(i=0;i<display_width;i++) {
-                f = getFrequency() - half + (long) (hz_per_pixel * i);
+                f = frequency - half + (long) (hz_per_pixel * i);
                 if (f > 0) {
                     if ((f % divisor) < (long) hz_per_pixel) {
                         cairo_set_source_rgb (cr, 0, 1, 1);
@@ -304,8 +312,8 @@ void panadapter_update(float *data,int tx) {
             cairo_stroke(cr);
 
             // band edges
-            long min_display=getFrequency()-half;
-            long max_display=getFrequency()+half;
+            long min_display=frequency-half;
+            long max_display=frequency+half;
             BAND_LIMITS* bandLimits=getBandLimits(min_display,max_display);
             if(bandLimits!=NULL) {
                 cairo_set_source_rgb (cr, 1, 0, 0);
diff --git a/radio.c b/radio.c
index c013e53a561f2979b031df8e88f95dc7045968d5..a4996e83b1e55fb4f3fc0b89461eb20f47f32b52 100644 (file)
--- a/radio.c
+++ b/radio.c
@@ -58,8 +58,8 @@ int tx_out_of_band=0;
 
 int sample_rate=48000;
 int filter_board=ALEX;
-int pa=PA_ENABLED;
-int apollo_tuner=0;
+//int pa=PA_ENABLED;
+//int apollo_tuner=0;
 
 int updates_per_second=10;
 
@@ -397,10 +397,12 @@ void radioRestoreState() {
     if(value) sample_rate=atoi(value);
     value=getProperty("filter_board");
     if(value) filter_board=atoi(value);
+/*
     value=getProperty("apollo_tuner");
     if(value) apollo_tuner=atoi(value);
     value=getProperty("pa");
     if(value) pa=atoi(value);
+*/
     value=getProperty("updates_per_second");
     if(value) updates_per_second=atoi(value);
     value=getProperty("display_panadapter");
@@ -537,10 +539,12 @@ void radioSaveState() {
     setProperty("sample_rate",value);
     sprintf(value,"%d",filter_board);
     setProperty("filter_board",value);
+/*
     sprintf(value,"%d",apollo_tuner);
     setProperty("apollo_tuner",value);
     sprintf(value,"%d",pa);
     setProperty("pa",value);
+*/
     sprintf(value,"%d",updates_per_second);
     setProperty("updates_per_second",value);
     sprintf(value,"%d",display_panadapter);
diff --git a/radio.h b/radio.h
index fd17af956f904aef9bb4b2706b7cc3e7af1d9228..f5d5353cfbcfc3c3464a2f083da2699ccd1f6182 100644 (file)
--- a/radio.h
+++ b/radio.h
@@ -46,11 +46,12 @@ extern char property_path[];
 #define ALEX 1
 #define APOLLO 2
 
+/*
 #define PA_DISABLED 0
 #define PA_ENABLED 1
 
 #define APOLLO_TUNER 1
-
+*/
 #define KEYER_STRAIGHT 0
 #define KEYER_MODE_A 1
 #define KEYER_MODE_B 2
index 4e8085f7cccf6c8071c039889d2b5ca0365ff413..c39598903d1d41be8d67768ce11af585dea2f2de 100644 (file)
--- a/splash.c
+++ b/splash.c
@@ -70,7 +70,7 @@ void splash_show(char* image_name,int width,int height,int full_screen)
             G_CALLBACK (splash_configure_event_cb), NULL);
 
   char build[64];
-  sprintf(build,"build: %s %s",build_date, build_time);
+  sprintf(build,"build: %s %s",build_date, build_version);
 
   GtkWidget *pi_label=gtk_label_new("pihpsdr by John Melton g0orx/n6lyt");
   gtk_label_set_justify(GTK_LABEL(pi_label),GTK_JUSTIFY_LEFT);
index d377ae30c369b41f005ab42c1eeb03c59775dccc..e57fba1615f855729ae00b162e1c381ee5bea017 100644 (file)
--- a/toolbar.c
+++ b/toolbar.c
@@ -991,7 +991,6 @@ fprintf(stderr,"mox_cb\n");
 }
 
 int ptt_update(void *data) {
-fprintf(stderr,"ptt_update\n");
   int ptt=(int)data;
   if((mode==modeCWL || mode==modeCWU) && cw_keyer_internal==1) {
     // just ignore it
index c3bd1b1e0be3bcf119f9b7f9ad85e6442834b4fa..54d090c9d51ea92fad844cc1b4fd997a89d564bd 100644 (file)
--- a/version.c
+++ b/version.c
@@ -17,6 +17,6 @@
 *
 */
 
-char build_date[]=__DATE__;
-char build_time[]=__TIME__;
+char build_date[]=GIT_DATE;
+char build_version[]=GIT_VERSION;
 
index a2506271c77330a74212ee23c96c472455a98858..650786731e5829e989fa57d2e4ad470b233f0052 100644 (file)
--- a/version.h
+++ b/version.h
@@ -17,6 +17,6 @@
 *
 */
 
+extern char build_version[];
 extern char build_date[];
-extern char build_time[];
 
diff --git a/vfo.c b/vfo.c
index eb987d0021024cfa96532252194dd00f5793c18e..729cb65d9249aaea929815c602778c600aaf0675 100644 (file)
--- a/vfo.c
+++ b/vfo.c
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <net/if_arp.h>
+#include <net/if.h>
+#include <ifaddrs.h>
 
 #include "main.h"
 #include "agc.h"
@@ -40,9 +46,7 @@
 #include "toolbar.h"
 #include "wdsp.h"
 #include "wdsp_init.h"
-#ifdef LIMESDR
 #include "discovered.h"
-#endif
 
 static GtkWidget *parent_window;
 static int my_width;
@@ -146,6 +150,7 @@ static gboolean vfo_draw_cb (GtkWidget *widget,
 }
 
 int vfo_update(void *data) {
+    DISCOVERED *d=&discovered[selected_device];
     BANDSTACK_ENTRY* entry=bandstack_entry_get_current();
     FILTER* band_filters=filters[entry->mode];
     FILTER* band_filter=&band_filters[entry->filter];
@@ -158,9 +163,31 @@ int vfo_update(void *data) {
         cairo_select_font_face(cr, "Arial",
             CAIRO_FONT_SLANT_NORMAL,
             CAIRO_FONT_WEIGHT_BOLD);
-        //cairo_set_font_size(cr, 36);
-        cairo_set_font_size(cr, 28);
 
+        char text[128];
+        switch(d->protocol) {
+            case ORIGINAL_PROTOCOL:
+            case NEW_PROTOCOL:
+              sprintf(text,"%s (%s %d.%d) %s",
+                    d->name,
+                    d->protocol==ORIGINAL_PROTOCOL?"old":"new",
+                    d->software_version/10,
+                    d->software_version%10,
+                    inet_ntoa(d->info.network.address.sin_addr));
+              break;
+#ifdef LIMESDR
+            case LIMESDR_PROTOCOL:
+              sprintf(text,"%s\n",
+                    d->name);
+              break;
+#endif
+        }
+        cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
+        cairo_set_font_size(cr, 12);
+        cairo_move_to(cr, 5, 15);  
+        cairo_show_text(cr, text);
+
+        cairo_set_font_size(cr, 28);
         if(isTransmitting()) {
             cairo_set_source_rgb(cr, 1, 0, 0);
         } else {
@@ -168,13 +195,13 @@ int vfo_update(void *data) {
         }
 
         long long f=entry->frequencyA+ddsOffset;
-
         char sf[32];
         //sprintf(sf,"%0lld.%06lld MHz",entry->frequencyA/(long long)1000000,entry->frequencyA%(long long)1000000);
         sprintf(sf,"%0lld.%06lld MHz",f/(long long)1000000,f%(long long)1000000);
-        cairo_move_to(cr, 5, 30);  
+        cairo_move_to(cr, 5, 38);  
         cairo_show_text(cr, sf);
 
+        cairo_set_source_rgb(cr, 0, 1, 0);
         cairo_set_font_size(cr, 12);
 
         cairo_move_to(cr, (my_width/2)+40, 30);