Skip to content

Commit

Permalink
fixed TX ANT 1 bug. Fixed filter change in CTUN. Fixed step over cent…
Browse files Browse the repository at this point in the history
…er in CTUN. Added Hide button.
  • Loading branch information
g0orx committed Dec 4, 2016
1 parent c2428c2 commit 06d4976
Show file tree
Hide file tree
Showing 12 changed files with 215 additions and 68 deletions.
3 changes: 3 additions & 0 deletions Makefile
Expand Up @@ -143,6 +143,7 @@ filter_menu.c \
noise_menu.c \
agc_menu.c \
fm_menu.c \
test_menu.c \
rit.c \
meter.c \
mode.c \
Expand Down Expand Up @@ -198,6 +199,7 @@ filter_menu.h \
noise_menu.h \
agc_menu.h \
fm_menu.h \
test_menu.h \
rit.h \
meter.h \
mode.h \
Expand Down Expand Up @@ -250,6 +252,7 @@ filter_menu.o \
noise_menu.o \
agc_menu.o \
fm_menu.o \
test_menu.o \
rit.o \
meter.o \
mode.o \
Expand Down
1 change: 1 addition & 0 deletions ant_menu.c
Expand Up @@ -203,6 +203,7 @@ void ant_menu(GtkWidget *parent) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx1_b), band->alexTxAntenna==0);
gtk_widget_show(tx1_b);
gtk_grid_attach(GTK_GRID(grid),tx1_b,8,i+2,1,1);
g_signal_connect(tx1_b,"pressed",G_CALLBACK(tx_ant_cb),(gpointer)((i<<4)+0));

GtkWidget *tx2_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(tx1_b));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx2_b), band->alexTxAntenna==1);
Expand Down
28 changes: 16 additions & 12 deletions main.c
Expand Up @@ -65,14 +65,13 @@
#include "psk_waterfall.h"
#endif

#define VFO_HEIGHT ((display_height/32)*4)
//#define VFO_HEIGHT ((display_height/32)*4)
#define VFO_HEIGHT ((display_height/32)*6)
#define VFO_WIDTH ((display_width/32)*16)
#define MENU_HEIGHT VFO_HEIGHT
//#define MENU_WIDTH ((display_width/32)*3)
#define MENU_WIDTH ((display_width/32)*8)
#define RIT_WIDTH ((MENU_WIDTH/3)*2)
#define METER_HEIGHT VFO_HEIGHT
//#define METER_WIDTH ((display_width/32)*13)
#define METER_WIDTH ((display_width/32)*8)
#define PANADAPTER_HEIGHT ((display_height/32)*8)
#define SLIDERS_HEIGHT ((display_height/32)*6)
Expand Down Expand Up @@ -536,6 +535,11 @@ fprintf(stderr,"%p protocol=%d name=%s\n",d,d->protocol,d->name);
}
}

static gboolean minimize_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) {
gtk_window_iconify(GTK_WINDOW(window));
return TRUE;
}

static void start_radio() {
int y;
fprintf(stderr,"start: selected radio=%p device=%d\n",radio,radio->device);
Expand Down Expand Up @@ -612,7 +616,6 @@ fprintf(stderr,"start: selected radio=%p device=%d\n",radio,radio->device);
gtk_container_add(GTK_CONTAINER(window), fixed);
y=0;

fprintf(stderr,"vfo_height=%d\n",VFO_HEIGHT);
vfo = vfo_init(VFO_WIDTH,VFO_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),vfo,0,0);

Expand All @@ -621,12 +624,17 @@ fprintf(stderr,"vfo_height=%d\n",VFO_HEIGHT);
rit_control = rit_init(RIT_WIDTH,MENU_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),rit_control,VFO_WIDTH,y);

fprintf(stderr,"menu_height=%d\n",MENU_HEIGHT);
GtkWidget *minimize_b=gtk_button_new_with_label("Hide");
gtk_widget_override_font(minimize_b, pango_font_description_from_string("FreeMono Bold 10"));
gtk_widget_set_size_request (minimize_b, MENU_WIDTH-RIT_WIDTH, MENU_HEIGHT/2);
g_signal_connect (minimize_b, "button-press-event", G_CALLBACK(minimize_cb), NULL);
gtk_widget_show(minimize_b);
gtk_fixed_put(GTK_FIXED(fixed),minimize_b,VFO_WIDTH+((MENU_WIDTH/3)*2),y);

//menu = menu_init(MENU_WIDTH,MENU_HEIGHT,window);
menu = new_menu_init(MENU_WIDTH-RIT_WIDTH,MENU_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),menu,VFO_WIDTH+((MENU_WIDTH/3)*2),y);
menu = new_menu_init(MENU_WIDTH-RIT_WIDTH,MENU_HEIGHT/2,window);
gtk_fixed_put(GTK_FIXED(fixed),menu,VFO_WIDTH+((MENU_WIDTH/3)*2),y+(MENU_HEIGHT/2));

fprintf(stderr,"meter_height=%d\n",METER_HEIGHT);
meter = meter_init(METER_WIDTH,METER_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),meter,VFO_WIDTH+MENU_WIDTH,y);
y+=VFO_HEIGHT;
Expand All @@ -646,7 +654,6 @@ fprintf(stderr,"meter_height=%d\n",METER_HEIGHT);
height+=SLIDERS_HEIGHT/2;
}
}
fprintf(stderr,"panadapter_height=%d\n",height);
panadapter = panadapter_init(display_width,height);
gtk_fixed_put(GTK_FIXED(fixed),panadapter,0,VFO_HEIGHT);
y+=height;
Expand All @@ -667,7 +674,6 @@ fprintf(stderr,"panadapter_height=%d\n",height);
if(!display_toolbar) {
height+=TOOLBAR_HEIGHT;
}
fprintf(stderr,"waterfall_height=%d\n",height);
waterfall = waterfall_init(display_width,height);
gtk_fixed_put(GTK_FIXED(fixed),waterfall,0,y);
y+=height;
Expand All @@ -689,14 +695,12 @@ fprintf(stderr,"waterfall_height=%d\n",height);
#endif

if(display_sliders) {
fprintf(stderr,"sliders_height=%d\n",SLIDERS_HEIGHT);
sliders = sliders_init(display_width,SLIDERS_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),sliders,0,y);
y+=SLIDERS_HEIGHT;
}

if(display_toolbar) {
fprintf(stderr,"toolbar_height=%d\n",TOOLBAR_HEIGHT);
toolbar = toolbar_init(display_width,TOOLBAR_HEIGHT,window);
gtk_fixed_put(GTK_FIXED(fixed),toolbar,0,y);
y+=TOOLBAR_HEIGHT;
Expand Down
2 changes: 1 addition & 1 deletion meter.c
Expand Up @@ -317,7 +317,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub

cairo_set_font_size(cr, 12);
sprintf(sf,"%d dBm",(int)level);
cairo_move_to(cr, text_location, 45);
cairo_move_to(cr, text_location, meter_height-30);
cairo_show_text(cr, sf);

#ifdef FREEDV
Expand Down
16 changes: 16 additions & 0 deletions new_menu.c
Expand Up @@ -47,6 +47,7 @@
#include "noise_menu.h"
#include "agc_menu.h"
#include "fm_menu.h"
#include "test_menu.h"


static GtkWidget *parent_window=NULL;
Expand Down Expand Up @@ -238,6 +239,16 @@ static gboolean fm_cb (GtkWidget *widget, GdkEventButton *event, gpointer data)
return TRUE;
}

void start_test() {
cleanup();
test_menu(parent_window);
}

static gboolean test_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) {
start_test();
return TRUE;
}

static gboolean new_menu_pressed_event_cb (GtkWidget *widget,
GdkEventButton *event,
gpointer data)
Expand Down Expand Up @@ -361,6 +372,11 @@ static gboolean new_menu_pressed_event_cb (GtkWidget *widget,
g_signal_connect (agc_b, "button-press-event", G_CALLBACK(agc_cb), NULL);
gtk_grid_attach(GTK_GRID(grid),agc_b,5,4,1,1);

/*
GtkWidget *test_b=gtk_button_new_with_label("Test");
g_signal_connect (test_b, "button-press-event", G_CALLBACK(test_cb), NULL);
gtk_grid_attach(GTK_GRID(grid),test_b,0,5,1,1);
*/

gtk_container_add(GTK_CONTAINER(content),grid);

Expand Down
42 changes: 20 additions & 22 deletions radio.c
Expand Up @@ -340,36 +340,34 @@ void setFrequency(long long f) {
BAND *band=band_get_current_band();
BANDSTACK_ENTRY* entry=bandstack_entry_get_current();

if(entry->frequencyA!=f) {
switch(protocol) {
case NEW_PROTOCOL:
case ORIGINAL_PROTOCOL:
if(ctun) {
long long minf=entry->frequencyA-(long long)(sample_rate/2);
long long maxf=entry->frequencyA+(long long)(sample_rate/2);
if(f<minf) f=minf;
if(f>maxf) f=maxf;
ddsOffset=f-entry->frequencyA;
wdsp_set_offset(ddsOffset);
return;
} else {
entry->frequencyA=f;
}
break;
#ifdef LIMESDR
case LIMESDR_PROTOCOL:
{
switch(protocol) {
case NEW_PROTOCOL:
case ORIGINAL_PROTOCOL:
if(ctun) {
long long minf=entry->frequencyA-(long long)(sample_rate/2);
long long maxf=entry->frequencyA+(long long)(sample_rate/2);
if(f<minf) f=minf;
if(f>maxf) f=maxf;
ddsOffset=f-entry->frequencyA;
wdsp_set_offset(ddsOffset);
return;
}
break;
} else {
entry->frequencyA=f;
}
break;
#ifdef LIMESDR
case LIMESDR_PROTOCOL:
{
long long minf=entry->frequencyA-(long long)(sample_rate/2);
long long maxf=entry->frequencyA+(long long)(sample_rate/2);
if(f<minf) f=minf;
if(f>maxf) f=maxf;
ddsOffset=f-entry->frequencyA;
wdsp_set_offset(ddsOffset);
return;
}
break;
#endif
}
}

displayFrequency=f;
Expand Down
45 changes: 29 additions & 16 deletions rigctl.c
@@ -1,4 +1,5 @@
/* TS-2000 emulation via TCP

/* S-2000 emulation via TCP
* Copyright (C) 2016 Steve Wilson <wevets@gmail.com>
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
Expand Down Expand Up @@ -36,13 +37,14 @@
#include "wdsp_init.h"
#include "bandstack.h"
#include "vfo.h"
#include "sliders.h"
#include <pthread.h>

// IP stuff below
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr

#define RIGCTL_DEBUG
#undef RIGCTL_DEBUG

// the port client will be connecting to
#define PORT 19090 // This is the HAMLIB port
Expand Down Expand Up @@ -194,10 +196,6 @@ static void * rigctl (void * arg) {
// Response - AG<0/1>123; Where 123 is 0-260
if(len>4) { // Set Audio Gain
volume = (double) atoi(&cmd_input[3])/260;
/* KA6S - This crashes the system
BUG
set_af_gain(volume);
*/
g_idle_add(update_af_gain,NULL);
} else { // Read Audio Gain
sprintf(msg,"AG0%03d;",2.6 * volume);
Expand Down Expand Up @@ -327,9 +325,6 @@ static void * rigctl (void * arg) {
if(len == 13) { //We are receiving freq info
long long new_freqA = atoll(&cmd_input[2]);
setFrequency(new_freqA);
// KA6S - this kills the system pretty quickly - it freezes
// vfo_update(NULL);
// BUG
g_idle_add(vfo_update,NULL);
} else {
if(len==2) {
Expand All @@ -342,6 +337,7 @@ static void * rigctl (void * arg) {
if(len==13) { //We are receiving freq info
long long new_freqA = atoll(&cmd_input[2]);
setFrequency(new_freqA);
g_idle_add(vfo_update,NULL);
} else if(len == 2) {
sprintf(msg,"FB%011d;",getFrequency());
send_resp(msg);
Expand Down Expand Up @@ -511,12 +507,20 @@ static void * rigctl (void * arg) {
entry= (BANDSTACK_ENTRY *)
bandstack_entry_get_current();
entry->mode=new_mode;
// BUG - kills the system when there is some
// GPIO activity and Mode sets occur. Used twittling the
// frequency along with setting mode between USB/LSB with
// flrig. Tried doing the g_idle_add trick - but don't know the
// the magic to get that to compile without warnings
setMode(entry->mode);
// Moved the vfo_update down after filter updated. (John G0ORX)
//g_idle_add(vfo_update,NULL);

FILTER* band_filters=filters[entry->mode];
FILTER* band_filter=&band_filters[entry->filter];
setFilter(band_filter->low,band_filter->high);
/* Need a way to update VFO info here..*/
g_idle_add(vfo_update,NULL);
} else { // Read Mode
int curr_mode;
switch (mode) {
Expand Down Expand Up @@ -559,8 +563,11 @@ static void * rigctl (void * arg) {
send_resp(msg);
} else {
int tval = atoi(&cmd_input[2]);
new_vol = (double) tval/100;
set_mic_gain(new_vol);
new_vol = (double) tval/2;
//set_mic_gain(new_vol);
double *p_mic_gain=malloc(sizeof(double));
*p_mic_gain=new_vol;
g_idle_add(update_mic_gain,(void *)p_mic_gain);
}
}
else if(strcmp(cmd_str,"ML")==0) { // Set/read the monitor function level
Expand Down Expand Up @@ -669,9 +676,12 @@ static void * rigctl (void * arg) {
//Scales to 0.00-1.00

double drive_val =
(double)(atoi(&cmd_input[2]))/10;
(double)(atoi(&cmd_input[2]));
// setDrive(drive_val);
set_drive(drive_val);
double *p_drive=malloc(sizeof(double));
*p_drive=drive_val;
g_idle_add(update_drive,(gpointer)p_drive);
//set_drive(drive_val);
}
}
else if(strcmp(cmd_str,"PI")==0) { // STore the programmable memory channel
Expand Down Expand Up @@ -736,8 +746,11 @@ static void * rigctl (void * arg) {
// Scale from -20 - 120
if(len>4) { // Set Audio Gain
int base_value = atoi(&cmd_input[2]);
float new_gain = ((((float) base_value)/255) * 140) - 20;
set_agc_gain(new_gain);
double new_gain = ((((double) base_value)/255) * 140) - 20;
//set_agc_gain(new_gain);
double *p_gain=malloc(sizeof(double));
*p_gain=new_gain;
g_idle_add(update_agc_gain,(gpointer)p_gain);
} else { // Read Audio Gain
sprintf(msg,"RG%03d;",(255/140)*(agc_gain+20));
send_resp(msg);
Expand Down Expand Up @@ -1014,7 +1027,7 @@ int init_server () {
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
if (socket_desc == -1)
{
fprintf(stderr,"RIGCTL: Could not create socket\n");
fprintf(stderr,"RIGCTL: Could not create socket");
}
fprintf(stderr, "RIGCTL: Socket created\n");

Expand Down
19 changes: 19 additions & 0 deletions sliders.c
Expand Up @@ -20,6 +20,7 @@
#include <gtk/gtk.h>
#include <semaphore.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include "sliders.h"
Expand Down Expand Up @@ -156,6 +157,12 @@ void set_agc_gain(double value) {
}
}

int update_agc_gain(void *data) {
set_agc_gain(*(double*)data);
free(data);
return 0;
}

static void afgain_value_changed_cb(GtkWidget *widget, gpointer data) {
volume=gtk_range_get_value(GTK_RANGE(af_gain_scale))/100.0;
SetRXAPanelGain1 (CHANNEL_RX0, volume);
Expand Down Expand Up @@ -240,6 +247,12 @@ void set_mic_gain(double value) {
}
}

int update_mic_gain(void *data) {
set_mic_gain(*(double*)data);
free(data);
return 0;
}

void set_drive(double value) {
setDrive(value);
if(display_sliders) {
Expand Down Expand Up @@ -276,6 +289,12 @@ static void drive_value_changed_cb(GtkWidget *widget, gpointer data) {
setDrive(gtk_range_get_value(GTK_RANGE(drive_scale)));
}

int update_drive(void *data) {
set_drive(*(double *)data);
free(data);
return 0;
}

void set_tune(double value) {
setTuneDrive(value);
if(display_sliders) {
Expand Down

0 comments on commit 06d4976

Please sign in to comment.