show_xvtr();
}
+static void newpa_cb(GtkWidget *widget, gpointer data) {
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
+ new_pa_board=1;
+ } else {
+ new_pa_board=0;
+ }
+}
void ant_menu(GtkWidget *parent) {
parent_window=parent;
g_signal_connect(xvtr_rb,"toggled",G_CALLBACK(xvtr_rb_cb),NULL);
gtk_grid_attach(GTK_GRID(grid),xvtr_rb,2,0,1,1);
+ if ((protocol == NEW_PROTOCOL && (device == NEW_DEVICE_HERMES || device == NEW_DEVICE_ANGELIA || device == NEW_DEVICE_ORION)) ||
+ (protocol == ORIGINAL_PROTOCOL && (device == DEVICE_HERMES || device == DEVICE_ANGELIA || device == DEVICE_ORION))) {
+
+ //
+ // ANAN-100/200: There is an "old" (Rev. 15/16) and "new" (Rev. 24) PA board
+ // around which differs in relay settings for using EXT1,2 and
+ // differs in how to do PS feedback.
+ //
+ GtkWidget *new_pa_b = gtk_check_button_new_with_label("ANAN 100/200 new PA board");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(new_pa_b), new_pa_board);
+ gtk_grid_attach(GTK_GRID(grid), new_pa_b, 3, 0, 1, 1);
+ g_signal_connect(new_pa_b, "toggled", G_CALLBACK(newpa_cb), NULL);
+ }
+
if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) {
GtkWidget *rx_ant_label=gtk_label_new("Receive");
case 19:
chk_data(frame[1],txdrive,"TX DRIVE");
chk_data(frame[2] & 0x3F,hermes_config,"HERMES CONFIG");
- chk_data(frame[2] & 0x40, alex_manual,"ALEX manual HPF/LPF");
- chk_data(frame[2] & 0x80, vna ,"VNA mode");
+ chk_data((frame[2] >> 6) & 0x01, alex_manual,"ALEX manual HPF/LPF");
+ chk_data((frame[2] >> 7) & 0x01, vna ,"VNA mode");
chk_data(frame[3] & 0x1F,alex_hpf,"ALEX HPF");
- chk_data(frame[3] & 0x20,alex_bypass,"ALEX Bypass HPFs");
- chk_data(frame[3] & 0x40,lna6m,"ALEX 6m LNA");
- chk_data(frame[3] & 0x80,alexTRdisable,"ALEX T/R disable");
+ chk_data((frame[3] >> 5) & 0x01,alex_bypass,"ALEX Bypass HPFs");
+ chk_data((frame[3] >> 6) & 0x01,lna6m,"ALEX 6m LNA");
+ chk_data((frame[3] >> 7) & 0x01,alexTRdisable,"ALEX T/R disable");
chk_data(frame[4],alex_lpf,"ALEX LPF");
// reset TX level. Leve a little head-room for noise
txdrv_dbl=(double) txdrive * 0.00390625; // div. by. 256
i=0; // flag used here for "filter bypass"
if (rxFrequency<1800000L) i=1;
#ifdef PURESIGNAL
- // Bypass HPFs (only) if using EXT1 for PURESIGNAL feedback!
- // "relay chatter" is not necessary if using bypass input
+ // Bypass HPFs if using EXT1 for PURESIGNAL feedback!
if (isTransmitting() && transmitter->puresignal && receiver[PS_RX_FEEDBACK]->alex_antenna == 6) i=1;
#endif
if (i) {
i=receiver[PS_RX_FEEDBACK]->alex_antenna; // 0, 6, or 7
}
#endif
- if (device == NEW_DEVICE_ORION2) i +=100;
- if (new_pa_board) i += 1000;
+ if (device == DEVICE_ORION2) {
+ i +=100;
+ } else if (new_pa_board) {
+ // New-PA setting invalid on ANAN-7000,8000
+ i +=1000;
+ }
//
- // There are combinations which the user may have selected but do not work,
- // for example, using EXT1 for PS input on "new PA" or ANAN-7000 (i==106, 1006)
- // and here we do not set any bit.
+ // There are several combination which do not exist (no jacket present)
+ // or which do not work (using EXT1-on-TX with ANAN-7000).
+ // In these cases, fall back to a "reasonable" case (e.g. use EXT1 if
+ // there is no EXT2).
+ // As a result, the "New PA board" setting is overriden for PURESIGNAL
+ // feedback: EXT1 assumes old PA board and ByPass assumes new PA board.
//
switch(i) {
- case 3: // EXT1 with old pa board
- case 6: // EXT1-on-TX with old pa board
+ case 3: // EXT1 with old pa board
+ case 6: // EXT1-on-TX with old pa board
+ case 1006: // EXT1-on-TX with new pa board: impossible, *assume* old pa board present
alex0 |= ALEX_RX_ANTENNA_EXT1 | ALEX_RX_ANTENNA_BYPASS;
break;
- case 4: // EXT with old pa board
+ case 4: // EXT2 with old pa board
alex0 |= ALEX_RX_ANTENNA_EXT2 | ALEX_RX_ANTENNA_BYPASS;
break;
- case 5: // XVTR with old pa board
+ case 5: // XVTR with old pa board
alex0 |= ALEX_RX_ANTENNA_XVTR | ALEX_RX_ANTENNA_BYPASS;
break;
- case 103: // EXT1 with ANAN-7000
+ case 104: // EXT2 with ANAN-7000: does not exit, use EXT2
+ case 103: // EXT1 with ANAN-7000
alex0 |= ALEX_RX_ANTENNA_EXT1 | ANAN7000_RX_SELECT;
break;
- case 105: // XVTR with ANAN-7000
+ case 105: // XVTR with ANAN-7000
alex0 |= ALEX_RX_ANTENNA_XVTR | ANAN7000_RX_SELECT;
break;
- case 107: // ByPass-on-TX with ANAN-7000
+ case 106: // EXT1-on-TX with ANAN-7000: does not exist, use ByPass
+ case 107: // Bypass-on-TX with ANAN-7000
alex0 |= ALEX_RX_ANTENNA_BYPASS;
break;
- case 1003: // EXT1 with new pa board
+ case 1003: // EXT1 with new PA board
alex0 |= ALEX_RX_ANTENNA_EXT1;
break;
- case 1004: // EXT 2 with new pa board
+ case 1004: // EXT2 with new PA board
alex0 |= ALEX_RX_ANTENNA_EXT2;
break;
- case 1005: // XVTR with new pa board
+ case 1005: // XVRT with new PA board
alex0 |= ALEX_RX_ANTENNA_XVTR;
break;
- case 1007: // ByPass-on-TX with new pa board
+ case 7: // Bypass-on-TX with old PA board: does not exist, *assume* new pa board present
+ case 1007: // Bypass-on-TX with new PA board
alex0 |= ALEX_RX_ANTENNA_BYPASS;
break;
}
#ifdef PURESIGNAL
if (isTransmitting() && transmitter->puresignal) i=receiver[PS_RX_FEEDBACK]->alex_antenna;
#endif
- if (device == DEVICE_ORION2) i +=100;
- if (new_pa_board) i +=1000;
+ if (device == DEVICE_ORION2) {
+ i +=100;
+ } else if (new_pa_board) {
+ // New-PA setting invalid on ANAN-7000,8000
+ i +=1000;
+ }
+ //
+ // There are several combination which do not exist (no jacket present)
+ // or which do not work (using EXT1-on-TX with ANAN-7000).
+ // In these cases, fall back to a "reasonable" case (e.g. use EXT1 if
+ // there is no EXT2).
+ // As a result, the "New PA board" setting is overriden for PURESIGNAL
+ // feedback: EXT1 assumes old PA board and ByPass assumes new PA board.
+ //
switch(i) {
case 3: // EXT1 with old pa board
case 6: // EXT1-on-TX with old pa board
+ case 1006: // EXT1-on-TX with new pa board: impossible, *assume* old pa board present
output_buffer[C3] |= 0xC0;
break;
case 4: // EXT2 with old pa board
case 5: // XVTR with old pa board
output_buffer[C3] |= 0xE0;
break;
+ case 104: // EXT2 with ANAN-7000: does not exit, use EXT2
case 103: // EXT1 with ANAN-7000
output_buffer[C3]|= 0x40;
break;
case 105: // XVTR with ANAN-7000
output_buffer[C3]|= 0x60;
break;
+ case 106: // EXT1-on-TX with ANAN-7000: does not exist, use ByPass
case 107: // Bypass-on-TX with ANAN-7000
output_buffer[C3]|= 0x20;
break;
case 1005: // XVRT with new PA board
output_buffer[C3] |= 0x60;
break;
+ case 7: // Bypass-on-TX with old PA board: does not exist, *assume* new pa board present
case 1007: // Bypass-on-TX with new PA board
output_buffer[C3] |= 0x80;
break;
if (isTransmitting() && transmitter->puresignal && receiver[PS_RX_FEEDBACK]->alex_antenna == 6) {
output_buffer[C2] |= 0x40; // enable manual filter selection
output_buffer[C3] &= 0x80; // preserve ONLY "PA enable" bit and clear all filters including "6m LNA"
- output_buffer[C3] |= 0x40; // bypass all filters
+ output_buffer[C3] |= 0x20; // bypass all filters
}
#endif
}
}
}
-static void newpa_cb(GtkWidget *widget, gpointer data) {
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
- new_pa_board=1;
- } else {
- new_pa_board=0;
- }
-}
-
static void alex_cb(GtkWidget *widget, gpointer data) {
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
filter_board = ALEX;
g_signal_connect(apollo_b, "toggled", G_CALLBACK(apollo_cb), NULL);
g_signal_connect(charly25_b, "toggled", G_CALLBACK(charly25_cb), NULL);
- if ((protocol == NEW_PROTOCOL && (device == NEW_DEVICE_HERMES || device == NEW_DEVICE_ANGELIA || device == NEW_DEVICE_ORION)) ||
- (protocol == ORIGINAL_PROTOCOL && (device == DEVICE_HERMES || device == DEVICE_ANGELIA || device == DEVICE_ORION))) {
-
- //
- // ANAN-100/200: There is an "old" (Rev. 15/16) and "new" (Rev. 24) PA board
- // around which differs in relay settings for using EXT1,2 and
- // differs in how to do PS feedback.
- //
- GtkWidget *new_pa_b = gtk_check_button_new_with_label("ANAN 100/200 new PA board");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(new_pa_b), new_pa_board);
- gtk_grid_attach(GTK_GRID(grid), new_pa_b, x, 6, 1, 1);
- g_signal_connect(new_pa_b, "toggled", G_CALLBACK(newpa_cb), NULL);
- }
-
x++;
}