Upstream version 3.03AM

pull/2/head
Stelios Bounanos 2008-09-10 04:43:38 +01:00
rodzic 4975a5d6ea
commit 28abb21cfd
16 zmienionych plików z 341 dodań i 194 usunięć

Wyświetl plik

@ -35,6 +35,12 @@ Change Log:
replays audio history buffer.
20) OS X resize handle / button overlay fixed
21) Modified sound port Event Log message.
22) Added Callsign to Title Bar "NO CALLSIGN SET" if the MyCallsign is
void.
23) Added "log.clear" to xmlrpc command set - clears the data in the
logbook fields.
24) If compiled into the executable the xmlrpc server is always started.
ARQ server is also started. Both can be serviced concurrently.
3.02
1) Added hamlib interface for rig control

Wyświetl plik

@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may
dnl contain other characters or be empty
m4_define(FLDIGI_MAJOR, [3])
m4_define(FLDIGI_MINOR, [0])
m4_define(FLDIGI_PATCH, [3AL])
m4_define(FLDIGI_PATCH, [3AM])
AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com])

Wyświetl plik

@ -30,6 +30,8 @@ progdefaults.secText = o->value();
progdefaults.secText.append(" ");
txtSecondary->value(progdefaults.secText.c_str());
}
progdefaults.myCall = o->value();
update_main_title();
progdefaults.changed = true;
}
@ -405,45 +407,13 @@ o->value(1);
progdefaults.changed = true;
}
Fl_Check_Button *chkUSERIGCAT=(Fl_Check_Button *)0;
static void cb_chkUSERIGCAT(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEMEMMAP->value(0);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[3]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
} else {
if (btnPTT[3]->value() == 1)
btnPTT[0]->value(1);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;
}
static void cb_btnPTT2(Fl_Round_Button* o, void*) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[4]->value(0);
o->value(1);
progdefaults.changed = true;
}
Fl_Check_Button *chkUSEHAMLIB=(Fl_Check_Button *)0;
static void cb_chkUSEHAMLIB(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
chkUSEMEMMAP->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[2]->value(0);
@ -477,7 +447,7 @@ static void cb_mnuBaudRate(Fl_Choice*, void*) {
progdefaults.changed = true;
}
static void cb_btnPTT3(Fl_Round_Button* o, void*) {
static void cb_btnPTT2(Fl_Round_Button* o, void*) {
btnPTT[0]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
@ -492,12 +462,47 @@ static void cb_inpRIGdev(Fl_Input_Choice*, void*) {
progdefaults.changed = true;
}
Fl_Check_Button *chkUSERIGCAT=(Fl_Check_Button *)0;
static void cb_chkUSERIGCAT(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEMEMMAP->value(0);
chkUSEXMLRPC->value(0);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[3]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
} else {
if (btnPTT[3]->value() == 1)
btnPTT[0]->value(1);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;
}
static void cb_btnPTT3(Fl_Round_Button* o, void*) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[4]->value(0);
o->value(1);
progdefaults.changed = true;
}
Fl_Check_Button *chkUSEMEMMAP=(Fl_Check_Button *)0;
static void cb_chkUSEMEMMAP(Fl_Check_Button* o, void*) {
if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[1]->value(0);
@ -525,6 +530,26 @@ o->value(1);
progdefaults.changed = true;
}
Fl_Check_Button *chkUSEXMLRPC=(Fl_Check_Button *)0;
static void cb_chkUSEXMLRPC(Fl_Check_Button* o, void*) {
if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEMEMMAP->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;
}
Fl_Button *btnInit_Interface=(Fl_Button *)0;
static void cb_btnInit_Interface(Fl_Button*, void*) {
@ -1416,6 +1441,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
tabOperator->selection_color((Fl_Color)51);
tabOperator->callback((Fl_Callback*)cb_tabOperator);
tabOperator->when(FL_WHEN_CHANGED);
tabOperator->hide();
{ inpMyCallsign = new Fl_Input(78, 36, 85, 24, "Callsign:");
inpMyCallsign->callback((Fl_Callback*)cb_inpMyCallsign);
} // Fl_Input* inpMyCallsign
@ -1626,7 +1652,8 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
o->hide();
{ Fl_Group* o = new Fl_Group(5, 56, 390, 158);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnWaterfallHistoryDefault = new Fl_Check_Button(15, 66, 170, 20, "Click Replays History");
{ Fl_Check_Button* o = btnWaterfallHistoryDefault = new Fl_Check_Button(15, 66, 266, 20, "Lft/Rt Click Replays History always");
btnWaterfallHistoryDefault->tooltip("Disabled - Ctrl-Lft click plays history");
btnWaterfallHistoryDefault->down_box(FL_DOWN_BOX);
btnWaterfallHistoryDefault->callback((Fl_Callback*)cb_btnWaterfallHistoryDefault);
o->value(progdefaults.WaterfallHistoryDefault);
@ -1713,7 +1740,6 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
tabVideo->end();
} // Fl_Group* tabVideo
{ tabRig = new Fl_Group(0, 25, 400, 195, "Rig");
tabRig->hide();
{ Fl_Group* o = new Fl_Group(10, 36, 185, 150, "Ptt");
o->box(FL_ENGRAVED_FRAME);
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
@ -1756,24 +1782,8 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
} // Fl_Round_Button* btnPTT[4]
o->end();
} // Fl_Group* o
{ Fl_Tabs* o = new Fl_Tabs(200, 34, 200, 152);
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "RigCAT");
{ chkUSERIGCAT = new Fl_Check_Button(345, 75, 20, 20, "use rigCAT");
chkUSERIGCAT->down_box(FL_DOWN_BOX);
chkUSERIGCAT->callback((Fl_Callback*)cb_chkUSERIGCAT);
chkUSERIGCAT->align(FL_ALIGN_LEFT);
} // Fl_Check_Button* chkUSERIGCAT
{ btnPTT[3] = new Fl_Round_Button(345, 105, 20, 19, "use RigCAT PTT");
btnPTT[3]->down_box(FL_DIAMOND_DOWN_BOX);
btnPTT[3]->selection_color((Fl_Color)1);
btnPTT[3]->callback((Fl_Callback*)cb_btnPTT2);
btnPTT[3]->align(FL_ALIGN_LEFT);
btnPTT[3]->deactivate();
} // Fl_Round_Button* btnPTT[3]
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "Hamlib");
o->hide();
{ Fl_Tabs* o = new Fl_Tabs(200, 34, 200, 150);
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "Ham");
{ chkUSEHAMLIB = new Fl_Check_Button(350, 64, 20, 20, "use Hamlib");
chkUSEHAMLIB->down_box(FL_DOWN_BOX);
chkUSEHAMLIB->callback((Fl_Callback*)cb_chkUSEHAMLIB);
@ -1802,7 +1812,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
{ btnPTT[1] = new Fl_Round_Button(350, 83, 20, 20, "use Hamlib PTT");
btnPTT[1]->down_box(FL_DIAMOND_DOWN_BOX);
btnPTT[1]->selection_color((Fl_Color)1);
btnPTT[1]->callback((Fl_Callback*)cb_btnPTT3);
btnPTT[1]->callback((Fl_Callback*)cb_btnPTT2);
btnPTT[1]->align(FL_ALIGN_LEFT);
btnPTT[1]->deactivate();
} // Fl_Round_Button* btnPTT[1]
@ -1812,20 +1822,63 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
} // Fl_Input_Choice* inpRIGdev
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "Memmap");
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "RigCAT");
o->hide();
{ chkUSEMEMMAP = new Fl_Check_Button(345, 75, 20, 20, "use Memmap");
{ chkUSERIGCAT = new Fl_Check_Button(350, 121, 20, 20, "use rigCAT");
chkUSERIGCAT->down_box(FL_DOWN_BOX);
chkUSERIGCAT->callback((Fl_Callback*)cb_chkUSERIGCAT);
chkUSERIGCAT->align(FL_ALIGN_LEFT);
} // Fl_Check_Button* chkUSERIGCAT
{ btnPTT[3] = new Fl_Round_Button(350, 147, 20, 19, "use RigCAT PTT");
btnPTT[3]->down_box(FL_DIAMOND_DOWN_BOX);
btnPTT[3]->selection_color((Fl_Color)1);
btnPTT[3]->callback((Fl_Callback*)cb_btnPTT3);
btnPTT[3]->align(FL_ALIGN_LEFT);
btnPTT[3]->deactivate();
} // Fl_Round_Button* btnPTT[3]
{ Fl_Output* o = new Fl_Output(205, 65, 190, 50);
o->type(12);
o->box(FL_BORDER_BOX);
o->color(FL_LIGHT1);
o->value("Control specified in rig.xml\nfile");
} // Fl_Output* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "Mem");
o->hide();
{ chkUSEMEMMAP = new Fl_Check_Button(350, 131, 20, 20, "use Memmap");
chkUSEMEMMAP->down_box(FL_DOWN_BOX);
chkUSEMEMMAP->callback((Fl_Callback*)cb_chkUSEMEMMAP);
chkUSEMEMMAP->align(FL_ALIGN_LEFT);
} // Fl_Check_Button* chkUSEMEMMAP
{ btnPTT[2] = new Fl_Round_Button(345, 105, 20, 20, "use Memmap PTT");
{ btnPTT[2] = new Fl_Round_Button(350, 151, 20, 20, "use Memmap PTT");
btnPTT[2]->down_box(FL_DIAMOND_DOWN_BOX);
btnPTT[2]->selection_color((Fl_Color)1);
btnPTT[2]->callback((Fl_Callback*)cb_btnPTT4);
btnPTT[2]->align(FL_ALIGN_LEFT);
btnPTT[2]->deactivate();
} // Fl_Round_Button* btnPTT[2]
{ Fl_Output* o = new Fl_Output(205, 70, 190, 58);
o->type(12);
o->box(FL_BORDER_BOX);
o->color(FL_LIGHT1);
o->value("Control via Memory Mapped\nshared variables\nie: Kachina program");
} // Fl_Output* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(200, 60, 200, 120, "Ext");
o->hide();
{ chkUSEXMLRPC = new Fl_Check_Button(366, 142, 20, 20, "use xmlrpc program");
chkUSEXMLRPC->down_box(FL_DOWN_BOX);
chkUSEXMLRPC->callback((Fl_Callback*)cb_chkUSEXMLRPC);
chkUSEXMLRPC->align(FL_ALIGN_LEFT);
} // Fl_Check_Button* chkUSEXMLRPC
{ Fl_Output* o = new Fl_Output(205, 67, 190, 58);
o->type(12);
o->box(FL_BORDER_BOX);
o->color(FL_LIGHT1);
o->value("Rig control via external\nprogram using xmlrpc\nremote calls.");
} // Fl_Output* o
o->end();
} // Fl_Group* o
o->end();

Wyświetl plik

@ -46,8 +46,8 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
} {
Fl_Group tabOperator {
label Oper
callback {progdefaults.changed = true;} open selected
xywh {0 25 400 195} color 51 selection_color 51 when 1
callback {progdefaults.changed = true;} open
xywh {0 25 400 195} color 51 selection_color 51 when 1 hide
} {
Fl_Input inpMyCallsign {
label {Callsign:}
@ -61,6 +61,8 @@ progdefaults.secText = o->value();
progdefaults.secText.append(" ");
txtSecondary->value(progdefaults.secText.c_str());
}
progdefaults.myCall = o->value();
update_main_title();
progdefaults.changed = true;}
xywh {78 36 85 24}
}
@ -359,10 +361,10 @@ progdefaults.changed = true;
xywh {5 56 390 158} box ENGRAVED_FRAME
} {
Fl_Check_Button btnWaterfallHistoryDefault {
label {Click Replays History}
label {Lft/Rt Click Replays History always}
callback {progdefaults.WaterfallHistoryDefault = o->value();
progdefaults.changed = true;}
xywh {15 66 170 20} down_box DOWN_BOX
tooltip {Disabled - Ctrl-Lft click plays history} xywh {15 66 266 20} down_box DOWN_BOX
code0 {o->value(progdefaults.WaterfallHistoryDefault);}
}
}
@ -445,8 +447,8 @@ progdefaults.changed = true;}
}
}
Fl_Group tabRig {
label Rig
xywh {0 25 400 195} hide
label Rig open
xywh {0 25 400 195}
} {
Fl_Group {} {
label Ptt open
@ -507,55 +509,18 @@ progdefaults.changed = true;}
}
}
Fl_Tabs {} {open
xywh {200 34 200 152}
xywh {200 34 200 150}
} {
Fl_Group {} {
label RigCAT open
label Ham open selected
xywh {200 60 200 120}
} {
Fl_Check_Button chkUSERIGCAT {
label {use rigCAT}
callback {if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEMEMMAP->value(0);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[3]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
} else {
if (btnPTT[3]->value() == 1)
btnPTT[0]->value(1);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;}
xywh {345 75 20 20} down_box DOWN_BOX align 4
}
Fl_Round_Button {btnPTT[3]} {
label {use RigCAT PTT}
callback {btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[4]->value(0);
o->value(1);
progdefaults.changed = true;}
xywh {345 105 20 19} down_box DIAMOND_DOWN_BOX selection_color 1 align 4 deactivate
}
}
Fl_Group {} {
label Hamlib open
xywh {200 60 200 120} hide
} {
Fl_Check_Button chkUSEHAMLIB {
label {use Hamlib}
callback {if (o->value() == 1) {
chkUSEMEMMAP->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[2]->value(0);
@ -602,12 +567,55 @@ progdefaults.changed = true;}
}
Fl_Input_Choice inpRIGdev {
label {Port:}
callback {progdefaults.changed = true;} open selected
callback {progdefaults.changed = true;} open
xywh {246 130 144 22} deactivate
} {}
}
Fl_Group {} {
label Memmap open
label RigCAT open
xywh {200 60 200 120} hide
} {
Fl_Check_Button chkUSERIGCAT {
label {use rigCAT}
callback {if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEMEMMAP->value(0);
chkUSEXMLRPC->value(0);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[3]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
} else {
if (btnPTT[3]->value() == 1)
btnPTT[0]->value(1);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;}
xywh {350 121 20 20} down_box DOWN_BOX align 4
}
Fl_Round_Button {btnPTT[3]} {
label {use RigCAT PTT}
callback {btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[4]->value(0);
o->value(1);
progdefaults.changed = true;}
xywh {350 147 20 19} down_box DIAMOND_DOWN_BOX selection_color 1 align 4 deactivate
}
Fl_Output {} {
xywh {205 65 190 50} type Multiline box BORDER_BOX color 50
code0 {o->value("Control specified in rig.xml\\nfile");}
}
}
Fl_Group {} {
label Mem open
xywh {200 60 200 120} hide
} {
Fl_Check_Button chkUSEMEMMAP {
@ -615,6 +623,7 @@ progdefaults.changed = true;}
callback {if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[1]->value(0);
@ -631,7 +640,7 @@ progdefaults.changed = true;}
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;}
xywh {345 75 20 20} down_box DOWN_BOX align 4
xywh {350 131 20 20} down_box DOWN_BOX align 4
}
Fl_Round_Button {btnPTT[2]} {
label {use Memmap PTT}
@ -641,7 +650,39 @@ btnPTT[3]->value(0);
btnPTT[4]->value(0);
o->value(1);
progdefaults.changed = true;}
xywh {345 105 20 20} down_box DIAMOND_DOWN_BOX selection_color 1 align 4 deactivate
xywh {350 151 20 20} down_box DIAMOND_DOWN_BOX selection_color 1 align 4 deactivate
}
Fl_Output {} {
xywh {205 70 190 58} type Multiline box BORDER_BOX color 50
code0 {o->value("Control via Memory Mapped\\nshared variables\\nie: Kachina program");}
}
}
Fl_Group {} {
label Ext open
xywh {200 60 200 120} hide
} {
Fl_Check_Button chkUSEXMLRPC {
label {use xmlrpc program}
callback {if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEMEMMAP->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->activate();
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
}
for (int i = 0; i < 4; btnPTT[i++]->redraw());
progdefaults.changed = true;}
xywh {366 142 20 20} down_box DOWN_BOX align 4
}
Fl_Output {} {
xywh {205 67 190 58} type Multiline box BORDER_BOX color 50
code0 {o->value("Rig control via external\\nprogram using xmlrpc\\nremote calls.");}
}
}
}

Wyświetl plik

@ -1608,6 +1608,15 @@ int below(Fl_Widget* w)
return (a & FL_ALIGN_BOTTOM) ? w->y() + w->h() + FL_NORMAL_SIZE : w->y() + w->h();
}
char main_window_title[256];
void update_main_title() {
snprintf(main_window_title, sizeof(main_window_title),
"%s %s -- %s",
PACKAGE_NAME, PACKAGE_VERSION,
progdefaults.myCall.empty() ? "NO CALLSIGN SET" : progdefaults.myCall.c_str());
if (fl_digi_main != NULL)
fl_digi_main->label(main_window_title);
}
void create_fl_digi_main() {
@ -1616,7 +1625,8 @@ void create_fl_digi_main() {
if (twoscopes) WNOM -= 2*DEFAULT_SW;
fl_digi_main = new Fl_Double_Window(WNOM, HNOM, PACKAGE_NAME" "PACKAGE_VERSION);//"fldigi");
update_main_title();
fl_digi_main = new Fl_Double_Window(WNOM, HNOM, main_window_title);
mnu = new Fl_Menu_Bar(0, 0, WNOM - 150 - pad, Hmenu);
// FL_NORMAL_SIZE may have changed; update the menu items
for (size_t i = 0; i < sizeof(menu_)/sizeof(menu_[0]); i++)

Wyświetl plik

@ -80,12 +80,12 @@ const struct mode_info_t mode_info[NUM_MODES] = {
{ MODE_BPSK31, &psk31_modem, "BPSK31", "BPSK-31", "PSK31", "PSK31" },
{ MODE_QPSK31, &qpsk31_modem, "QPSK31", "QPSK-31", "QPSK31", "QPSK31" },
{ MODE_PSK63, &psk63_modem, "PSK-63", "BPSK-63", "PSK63", "PSK63" },
{ MODE_PSK63, &psk63_modem, "BPSK63", "BPSK-63", "PSK63", "PSK63" },
{ MODE_QPSK63, &qpsk63_modem, "QPSK63", "QPSK-63", "QPSK63", "QPSK63" },
{ MODE_PSK125, &psk125_modem, "PSK125", "BPSK-125", "PSK125", "PSK125" },
{ MODE_QPSK125, &qpsk125_modem, "QPSK-125", "QPSK-125", "QPSK125", "PSK125" },
{ MODE_PSK250, &psk250_modem, "PSK-250", "BPSK-250", "PSK250", "PSK250" },
{ MODE_QPSK250, &qpsk250_modem, "QPSK-250", "QPSK-250", "QPSK250", "QPSK250" },
{ MODE_PSK125, &psk125_modem, "BPSK125", "BPSK-125", "PSK125", "PSK125" },
{ MODE_QPSK125, &qpsk125_modem, "QPSK125", "QPSK-125", "QPSK125", "PSK125" },
{ MODE_PSK250, &psk250_modem, "BPSK250", "BPSK-250", "PSK250", "PSK250" },
{ MODE_QPSK250, &qpsk250_modem, "QPSK250", "QPSK-250", "QPSK250", "QPSK250" },
{ MODE_OLIVIA, &olivia_modem, "OLIVIA", "Olivia", "", "OLIVIA" },

Wyświetl plik

@ -67,13 +67,15 @@ extern Fl_Round_Button *btnDTRplusV;
#include <FL/Fl_Input_Choice.H>
extern Fl_Input_Choice *inpTTYdev;
extern Fl_Round_Button *btnPTT[5];
extern Fl_Check_Button *chkUSERIGCAT;
extern Fl_Check_Button *chkUSEHAMLIB;
extern Fl_ComboBox *cboHamlibRig;
#include <FL/Fl_Choice.H>
extern Fl_Choice *mnuBaudRate;
extern Fl_Input_Choice *inpRIGdev;
extern Fl_Check_Button *chkUSERIGCAT;
#include <FL/Fl_Output.H>
extern Fl_Check_Button *chkUSEMEMMAP;
extern Fl_Check_Button *chkUSEXMLRPC;
extern Fl_Button *btnInit_Interface;
extern Fl_Group *tabQRZ;
extern Fl_Check_Button *btnQRZnotavailable;

Wyświetl plik

@ -141,6 +141,7 @@ struct configuration {
int chkUSEMEMMAPis;
int chkUSEHAMLIBis;
int chkUSERIGCATis;
int chkUSEXMLRPCis;
string PTTdev;
string CWFSKport;
string HamRigDevice;

Wyświetl plik

@ -95,6 +95,7 @@ extern Digiscope *digiscope;
extern void toggleRSID();
extern void create_fl_digi_main();
extern void update_main_title();
extern Fl_Menu_Item menu_[];
extern Fl_Menu_Item *getMenuItem(const char *caption);
extern void activate_rig_menu_item(bool b);

Wyświetl plik

@ -359,6 +359,9 @@ public:
qsy->deactivate();
wfdisp->useBands(!on);
}
void setXMLRPC(bool on) {
wfdisp->useBands(!on);
}
double Pwr(int i) { return wfdisp->Pwr(i); }
int handle(int event);

Wyświetl plik

@ -273,7 +273,7 @@ int main(int argc, char ** argv)
arq_init();
#if USE_XMLRPC
if (progdefaults.xmlrpc_server)
// if (progdefaults.xmlrpc_server)
XML_RPC_Server::start(progdefaults.xmlrpc_address.c_str(), progdefaults.xmlrpc_port.c_str());
#endif
@ -442,7 +442,7 @@ int parse_args(int argc, char **argv, int& idx)
#endif
OPT_CONFIG_DIR, OPT_EXPERIMENTAL, OPT_ARQ_ADDRESS, OPT_ARQ_PORT,
#if USE_XMLRPC
OPT_CONFIG_XMLRPC, OPT_CONFIG_XMLRPC_ADDRESS, OPT_CONFIG_XMLRPC_PORT,
OPT_CONFIG_XMLRPC_ADDRESS, OPT_CONFIG_XMLRPC_PORT,
#endif
OPT_FONT, OPT_WFALL_WIDTH, OPT_WFALL_HEIGHT,
OPT_WINDOW_WIDTH, OPT_WINDOW_HEIGHT,
@ -468,7 +468,6 @@ int parse_args(int argc, char **argv, int& idx)
{ "arq-server-port", 1, 0, OPT_ARQ_PORT },
#if USE_XMLRPC
{ "xmlrpc-server", 0, 0, OPT_CONFIG_XMLRPC },
{ "xmlrpc-server-address", 1, 0, OPT_CONFIG_XMLRPC_ADDRESS },
{ "xmlrpc-server-port", 1, 0, OPT_CONFIG_XMLRPC_PORT },
#endif
@ -536,9 +535,6 @@ int parse_args(int argc, char **argv, int& idx)
break;
#if USE_XMLRPC
case OPT_CONFIG_XMLRPC:
progdefaults.xmlrpc_server = true;
break;
case OPT_CONFIG_XMLRPC_ADDRESS:
progdefaults.xmlrpc_address = optarg;
break;

Wyświetl plik

@ -144,8 +144,10 @@ bool bSend0x06 = false;
void process_msgque()
{
memset(txmsgst.buffer, ARQBUFSIZ, 0);
int nbytes = msgrcv (txmsgid, (void *)&txmsgst, ARQBUFSIZ, 0, IPC_NOWAIT);
if (nbytes > 0) {
arqtext.clear();
arqtext = txmsgst.buffer;
parse_arqtext();
if (arqtext.length() > 0) {

Wyświetl plik

@ -160,6 +160,7 @@ configuration progdefaults = {
0, // int chkUSEMEMMAPis
0, // int chkUSEHAMLIBis
0, // int chkUSERIGCATis
0, // int chkUSEXMLRPCis
#if defined(__linux__)
"/dev/ttyS0", // string PTTdev
"/dev/ttyS1", // string CWFSKport
@ -317,7 +318,7 @@ enum TAG { \
BTNUSB, BTNPTTIS,
RTSPTT, DTRPTT, RTSPLUS, DTRPLUS,
CHOICEHAMLIBIS, CHKUSEMEMMAPIS,
CHKUSEHAMLIBIS, CHKUSERIGCATIS,
CHKUSEHAMLIBIS, CHKUSERIGCATIS, CHKUSEXMLRPCIS,
HAMRIGNAME, HAMRIGDEVICE, HAMRIGBAUDRATE,
PTTDEV,
SECONDARYTEXT,
@ -507,6 +508,7 @@ void configuration::writeDefaultsXML()
writeXMLint(f, "CHKUSEMEMMAPIS", chkUSEMEMMAPis);
writeXMLint(f, "CHKUSEHAMLIBIS", chkUSEHAMLIBis);
writeXMLint(f, "CHKUSERIGCATIS", chkUSERIGCATis);
writeXMLint(f, "CHKUSEXMLRPCIS", chkUSEXMLRPCis);
writeXMLstr(f, "HAMRIGNAME", HamRigName);
writeXMLstr(f, "HAMRIGDEVICE", HamRigDevice);
writeXMLint(f, "HAMRIGBAUDRATE", HamRigBaudrate);
@ -921,6 +923,9 @@ bool configuration::readDefaultsXML()
case CHKUSERIGCATIS :
chkUSERIGCATis = atoi(xml->getNodeData());
break;
case CHKUSEXMLRPCIS :
chkUSEXMLRPCis = atoi(xml->getNodeData());
break;
case HAMRIGNAME :
HamRigName = xml->getNodeData();
break;
@ -1266,6 +1271,7 @@ bool configuration::readDefaultsXML()
else if (!strcmp("CHKUSEMEMMAPIS", nodeName)) tag = CHKUSEMEMMAPIS;
else if (!strcmp("CHKUSEHAMLIBIS", nodeName)) tag = CHKUSEHAMLIBIS;
else if (!strcmp("CHKUSERIGCATIS", nodeName)) tag = CHKUSERIGCATIS;
else if (!strcmp("CHKUSEXMLRPCIS", nodeName)) tag = CHKUSEXMLRPCIS;
else if (!strcmp("HAMRIGNAME", nodeName)) tag = HAMRIGNAME;
else if (!strcmp("HAMRIGDEVICE", nodeName)) tag = HAMRIGDEVICE;
else if (!strcmp("HAMRIGBAUDRATE", nodeName)) tag = HAMRIGBAUDRATE;
@ -1470,25 +1476,36 @@ int configuration::setDefaults() {
inpTTYdev->value(PTTdev.c_str());
if(chkUSEMEMMAPis) {
chkUSEMEMMAP->value(1); chkUSEHAMLIB->value(0); chkUSERIGCAT->value(0);
chkUSEMEMMAP->value(1);
chkUSEHAMLIB->value(0); chkUSERIGCAT->value(0); chkUSEXMLRPC->value(0);
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
btnPTT[1]->deactivate(); btnPTT[2]->activate(); btnPTT[3]->deactivate();
} else if (chkUSEHAMLIBis) {
chkUSEMEMMAP->value(0); chkUSERIGCAT->value(0); chkUSEHAMLIB->value(1);
chkUSEHAMLIB->value(1);
chkUSEMEMMAP->value(0); chkUSERIGCAT->value(0); chkUSEXMLRPC->value(0);
cboHamlibRig->activate();
inpRIGdev->activate();
mnuBaudRate->activate();
btnPTT[1]->activate(); btnPTT[2]->deactivate(); btnPTT[3]->deactivate();
} else if (chkUSERIGCATis) {
chkUSEMEMMAP->value(0); chkUSEHAMLIB->value(0); chkUSERIGCAT->value(1);
chkUSERIGCAT->value(1);
chkUSEMEMMAP->value(0); chkUSEHAMLIB->value(0); chkUSEXMLRPC->value(0);
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
btnPTT[1]->deactivate(); btnPTT[2]->deactivate(); btnPTT[3]->activate();
} else {
} else if (chkUSEXMLRPCis) {
chkUSEXMLRPC->value(1);
chkUSEMEMMAP->value(0); chkUSEHAMLIB->value(0); chkUSERIGCAT->value(0);
cboHamlibRig->deactivate();
inpRIGdev->deactivate();
mnuBaudRate->deactivate();
btnPTT[1]->deactivate(); btnPTT[2]->deactivate(); btnPTT[3]->deactivate();
} else {
chkUSEMEMMAP->value(0); chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0); chkUSEHAMLIB->value(0); chkUSEXMLRPC->value(0);
btnPTT[1]->deactivate(); btnPTT[2]->deactivate(); btnPTT[3]->deactivate();
}
@ -1689,6 +1706,12 @@ void configuration::initInterface() {
activate_rig_menu_item(true);
}
#endif
} else if (chkUSEXMLRPCis) {
cboBand->hide();
btnSideband->hide();
wf->USB(true);
wf->setXMLRPC(1);
activate_rig_menu_item(false);
} else {
wf->USB(true);
cboBand->show();

Wyświetl plik

@ -55,6 +55,8 @@
#include "rigio.h"
#include "debug.h"
string strOK = "OK";
using namespace std;
struct rpc_method
@ -586,7 +588,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(&modem::searchUp, active_modem);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -601,7 +604,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(&modem::searchDown, active_modem);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -663,6 +667,19 @@ public:
}
};
void xmlrpc_set_qsy(long long f, long long fmid)
{
LOG_DEBUG("rfc = %ld, audio = %ld", f, fmid);
if (active_modem->freqlocked() == true) {
active_modem->set_freqlock(false);
active_modem->set_freq((int)fmid);
active_modem->set_freqlock(true);
} else
active_modem->set_freq((int)fmid);
wf->rfcarrier(f);
wf->movetocenter();
}
class Main_set_freq : public xmlrpc_c::method
{
public:
@ -673,13 +690,18 @@ public:
}
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
double d = wf->rfcarrier();
double rfc = params.getDouble(0, 0.0);
double d = params.getDouble(0, 0.0);
long long int rfc = (long long int)d;
int mc = active_modem->get_freq();
rigCAT_set_qsy((long long int)rfc, mc);
rigMEM_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSEXMLRPCis)
xmlrpc_set_qsy(rfc, mc);
if (progdefaults.chkUSERIGCATis)
rigCAT_set_qsy(rfc, mc);
if (progdefaults.chkUSEMEMMAPis)
rigMEM_set_qsy(rfc, mc);
#if USE_HAMLIB
hamlib_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSEHAMLIBis)
hamlib_set_qsy(rfc, mc);
#endif
*retval = xmlrpc_c::value_double(d);
}
@ -697,10 +719,15 @@ public:
{
double rfc = wf->rfcarrier() + params.getDouble(0);
int mc = active_modem->get_freq();
rigCAT_set_qsy((long long int)rfc, mc);
rigMEM_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSEXMLRPCis)
xmlrpc_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSERIGCATis)
rigCAT_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSEMEMMAPis)
rigMEM_set_qsy((long long int)rfc, mc);
#if USE_HAMLIB
hamlib_set_qsy((long long int)rfc, mc);
if (progdefaults.chkUSEHAMLIBis)
hamlib_set_qsy((long long int)rfc, mc);
#endif
*retval = xmlrpc_c::value_double(rfc);
}
@ -992,7 +1019,8 @@ public:
REQ(set_button, btnRSID, false);
REQ(set_button, wf->xmtrcv, true);
}
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1011,7 +1039,8 @@ public:
REQ(set_button, btnRSID, false);
REQ(set_button, btnTune, !btnTune->value());
}
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1029,7 +1058,8 @@ public:
REQ(set_button, wf->xmtrcv, false);
else if (btnRSID->value())
REQ(set_button, btnRSID, false);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1045,7 +1075,8 @@ public:
{
if (trx_state == STATE_TX || trx_state == STATE_TUNE)
REQ(abort_tx);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1060,7 +1091,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(&Main_run_macro::run_macro, params.getInt(0, 0, MAXMACROS-1));
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
static void run_macro(int i) { macros.execute(i); }
};
@ -1091,7 +1123,8 @@ public:
{
if (!(wf->xmtrcv->value() || btnTune->value() || btnRSID->value()))
REQ(set_button, btnRSID, true);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1265,6 +1298,22 @@ public:
}
};
class Log_clear : public xmlrpc_c::method
{
public:
Log_clear()
{
_signature = "s:n";
_help = "Clears the contents of the log fields.";
}
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(clearQSO);
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
// =============================================================================
class Text_get_rx_length : public xmlrpc_c::method
@ -1278,6 +1327,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
*retval = xmlrpc_c::value_int(ReceiveText->buffer()->length());
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1319,7 +1370,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(&FTextBase::clear, ReceiveText);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1371,7 +1423,8 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
REQ(&FTextBase::clear, TransmitText);
*retval = xmlrpc_c::value_nil();
// *retval = xmlrpc_c::value_nil();
*retval = xmlrpc_c::value_string(strOK);
}
};
@ -1463,6 +1516,7 @@ void XML_RPC_Server::add_methods(void)
methods->push_back(rpc_method(new Log_get_notes, "log.get_notes"));
methods->push_back(rpc_method(new Log_get_locator, "log.get_locator"));
methods->push_back(rpc_method(new Log_get_az, "log.get_az"));
methods->push_back(rpc_method(new Log_clear, "log.clear"));
methods->push_back(rpc_method(new Text_get_rx_length, "text.get_rx_length"));
methods->push_back(rpc_method(new Text_get_rx, "text.get_rx"));

Wyświetl plik

@ -48,8 +48,6 @@ static long int hamlib_freq;
static rmode_t hamlib_rmode = RIG_MODE_USB;
static pbwidth_t hamlib_pbwidth = 3000;
// FIXME: remove static int ioctl_bits;
static int dummy = 0;
static void *hamlib_loop(void *args);
@ -63,35 +61,6 @@ void show_error(const char* msg1, const char* msg2 = 0)
LOG_ERROR("%s", error.c_str());
}
/* FIXME: remove this function
bool hamlib_setRTSDTR()
{
if (progdefaults.RTSplus == false && progdefaults.DTRplus == false)
return true;
int hamlibfd = open(progdefaults.HamRigDevice.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
if (hamlibfd < 0) {
show_error("Cannot open PTT device", progdefaults.HamRigDevice.c_str());
return false;
}
ioctl(hamlibfd, TIOCMGET, &ioctl_bits);
if (progdefaults.RTSplus)
ioctl_bits |= TIOCM_RTS; // set RTS bit
else
ioctl_bits &= ~TIOCM_RTS; // clear RTS bit
if (progdefaults.DTRplus)
ioctl_bits |= TIOCM_DTR; // set DTR bit
else
ioctl_bits &= ~TIOCM_DTR; // clear DTR bit
ioctl(hamlibfd, TIOCMSET, &ioctl_bits);
close(hamlibfd);
return true;
}
*/
#ifdef __CYGWIN__
// convert COMx to /dev/ttySy with y = x - 1
static void adjust_port(string& port)
@ -148,10 +117,6 @@ bool hamlib_init(bool bPtt)
return false;
}
// if (hamlib_setRTSDTR() == false) {
// return -1;
// }
try {
model = (*prig)->rig_model;
xcvr->init(model);
@ -169,21 +134,14 @@ bool hamlib_init(bool bPtt)
return false;
}
// if (hamlib_setRTSDTR() == false)
// return -1;
MilliSleep(200);
// char temp[80];
// xcvr->getConf("dtr_state", temp);
// LOG_DEBUG("Hamlib DTR = %s", temp);
try {
need_freq = true;
freq = xcvr->getFreq();
if (freq == 0) {
xcvr->close();
show_error(__func__, "transceiver not responding");
show_error(__func__, "Rig not responding");
return false;
}
}
@ -239,7 +197,6 @@ void hamlib_close(void)
hamlib_exit = true;
int count = 20;
while (!hamlib_closed) {
// cerr << "." << flush;
MilliSleep(50);
if (!count--) {
show_error(__func__, "Hamlib stuck, transceiver on fire");
@ -389,9 +346,8 @@ static void *hamlib_loop(void *args)
}
}
catch (const RigException& Ex) {
show_error(__func__, "No transceiver comms");
show_error(__func__, "Rig not responding: freq");
freqok = false;
hamlib_exit = true;
}
}
if (hamlib_exit)
@ -403,9 +359,8 @@ static void *hamlib_loop(void *args)
modeok = true;
}
catch (const RigException& Ex) {
show_error(__func__, "No transceiver comms");
show_error(__func__, "Rig not responding: mode");
modeok = false;
hamlib_exit = true;
}
}
fl_unlock (&hamlib_mutex);

Wyświetl plik

@ -441,7 +441,7 @@ void rigCAT_setfreq(long long f)
list<XMLIOS>::iterator itrCmd;
string strCmd;
LOG_DEBUG("set frequency");
LOG_DEBUG("set frequency %ld", f);
itrCmd = commands.begin();
while (itrCmd != commands.end()) {