mirror of
https://git.code.sf.net/p/fldigi/fldigi
synced 2026-08-13 17:47:54 -04:00
flrig auto off
* add ability to shutdown flrig/xcvr during fldigi
shutdown
This commit is contained in:
parent
8cc4f134c5
commit
ece3e24866
7 changed files with 75 additions and 32 deletions
|
|
@ -5785,9 +5785,9 @@ static void cb_btn_reconnect_flrig_server_mirror(Fl_Button*, void*) {
|
|||
reconnect_to_flrig();
|
||||
}
|
||||
|
||||
Fl_Check_Button *btn_fldigi_client_to_fldigi=(Fl_Check_Button *)0;
|
||||
Fl_Check_Button *btn_fldigi_client_to_flrig=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_fldigi_client_to_fldigi(Fl_Check_Button* o, void*) {
|
||||
static void cb_btn_fldigi_client_to_flrig(Fl_Check_Button* o, void*) {
|
||||
progdefaults.fldigi_client_to_flrig=o->value();
|
||||
if (o->value()) {
|
||||
progdefaults.chkUSEHAMLIBis = false;
|
||||
|
|
@ -5798,6 +5798,13 @@ if (o->value()) {
|
|||
progdefaults.changed=true;
|
||||
}
|
||||
|
||||
Fl_Check_Button *btn_flrig_auto_shutdown=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_flrig_auto_shutdown(Fl_Check_Button* o, void*) {
|
||||
progdefaults.flrig_auto_shutdown=o->value();
|
||||
progdefaults.changed=true;
|
||||
}
|
||||
|
||||
Fl_Group *grpRigCat=(Fl_Group *)0;
|
||||
|
||||
Fl_Check_Button *chkUSERIGCAT=(Fl_Check_Button *)0;
|
||||
|
|
@ -5805,7 +5812,7 @@ Fl_Check_Button *chkUSERIGCAT=(Fl_Check_Button *)0;
|
|||
static void cb_chkUSERIGCAT(Fl_Check_Button* o, void*) {
|
||||
if (o->value() == 1) {
|
||||
chkUSEHAMLIB->value(0);
|
||||
btn_fldigi_client_to_fldigi->value(0);
|
||||
btn_fldigi_client_to_flrig->value(0);
|
||||
progdefaults.chkUSERIGCATis = true;
|
||||
progdefaults.fldigi_client_to_flrig = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
|
|
@ -6363,7 +6370,7 @@ static void cb_chkUSEHAMLIB(Fl_Check_Button* o, void*) {
|
|||
progdefaults.chkUSEHAMLIBis = o->value();
|
||||
if (o->value() == 1) {
|
||||
chkUSERIGCAT->value(0);
|
||||
btn_fldigi_client_to_fldigi->value(0);
|
||||
btn_fldigi_client_to_flrig->value(0);
|
||||
progdefaults.chkUSERIGCATis = false;
|
||||
progdefaults.fldigi_client_to_flrig = false;
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
|
|
@ -14827,11 +14834,11 @@ ed)"));
|
|||
grpRigFlrig->box(FL_ENGRAVED_BOX);
|
||||
grpRigFlrig->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
|
||||
grpRigFlrig->hide();
|
||||
{ Fl_Group* o = new Fl_Group(209, 196, 580, 90, _("\"Disable PTT keys modem if multiple instances of fldigi (client)\nare connec\
|
||||
{ Fl_Group* o = new Fl_Group(209, 233, 580, 90, _("\"Disable PTT keys modem if multiple instances of fldigi (client)\nare connec\
|
||||
ted to a single flrig (server)."));
|
||||
o->box(FL_ENGRAVED_BOX);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
|
||||
{ Fl_Check_Button* o = chk_flrig_keys_modem = new Fl_Check_Button(439, 244, 183, 20, _("Flrig PTT keys modem"));
|
||||
{ Fl_Check_Button* o = chk_flrig_keys_modem = new Fl_Check_Button(439, 281, 183, 20, _("Flrig PTT keys modem"));
|
||||
chk_flrig_keys_modem->tooltip(_("\" \""));
|
||||
chk_flrig_keys_modem->down_box(FL_DOWN_BOX);
|
||||
chk_flrig_keys_modem->callback((Fl_Callback*)cb_chk_flrig_keys_modem);
|
||||
|
|
@ -14839,15 +14846,15 @@ ted to a single flrig (server)."));
|
|||
} // Fl_Check_Button* chk_flrig_keys_modem
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(209, 111, 580, 81, _("flrig xmlrpc server parameters\nthese controls are mirrored on the IO configu\
|
||||
{ Fl_Group* o = new Fl_Group(209, 148, 580, 81, _("flrig xmlrpc server parameters\nthese controls are mirrored on the IO configu\
|
||||
ration tab"));
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
|
||||
{ btnDefault_flrig_ip_mirror = new Fl_Button(613, 157, 73, 24, _("Default"));
|
||||
{ btnDefault_flrig_ip_mirror = new Fl_Button(613, 194, 73, 24, _("Default"));
|
||||
btnDefault_flrig_ip_mirror->tooltip(_("Returns IP Address and port\nnumber to the default value."));
|
||||
btnDefault_flrig_ip_mirror->callback((Fl_Callback*)cb_btnDefault_flrig_ip_mirror);
|
||||
} // Fl_Button* btnDefault_flrig_ip_mirror
|
||||
{ Fl_Input2* o = txt_flrig_ip_address_mirror = new Fl_Input2(244, 157, 230, 24, _("Addr"));
|
||||
{ Fl_Input2* o = txt_flrig_ip_address_mirror = new Fl_Input2(244, 194, 230, 24, _("Addr"));
|
||||
txt_flrig_ip_address_mirror->tooltip(_("IP Address for flrig interface\nIP Address format: nnn.nnn.nnn.nnn\nor name: \
|
||||
i.e. localhost"));
|
||||
txt_flrig_ip_address_mirror->box(FL_DOWN_BOX);
|
||||
|
|
@ -14863,7 +14870,7 @@ i.e. localhost"));
|
|||
o->labelsize(FL_NORMAL_SIZE);
|
||||
o->value(progdefaults.flrig_ip_address.c_str());
|
||||
} // Fl_Input2* txt_flrig_ip_address_mirror
|
||||
{ Fl_Input2* o = txt_flrig_ip_port_mirror = new Fl_Input2(518, 157, 55, 24, _("Port"));
|
||||
{ Fl_Input2* o = txt_flrig_ip_port_mirror = new Fl_Input2(518, 194, 55, 24, _("Port"));
|
||||
txt_flrig_ip_port_mirror->tooltip(_("IP Address Port Number"));
|
||||
txt_flrig_ip_port_mirror->box(FL_DOWN_BOX);
|
||||
txt_flrig_ip_port_mirror->color(FL_BACKGROUND2_COLOR);
|
||||
|
|
@ -14878,21 +14885,27 @@ i.e. localhost"));
|
|||
o->labelsize(FL_NORMAL_SIZE);
|
||||
o->value(progdefaults.flrig_ip_port.c_str());
|
||||
} // Fl_Input2* txt_flrig_ip_port_mirror
|
||||
{ btn_reconnect_flrig_server_mirror = new Fl_Button(693, 157, 82, 24, _("Reconnect"));
|
||||
{ btn_reconnect_flrig_server_mirror = new Fl_Button(693, 194, 82, 24, _("Reconnect"));
|
||||
btn_reconnect_flrig_server_mirror->tooltip(_("Press only if you change the address/port"));
|
||||
btn_reconnect_flrig_server_mirror->callback((Fl_Callback*)cb_btn_reconnect_flrig_server_mirror);
|
||||
} // Fl_Button* btn_reconnect_flrig_server_mirror
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(209, 54, 580, 52, _("flrig is the preferred method of tranceiver control"));
|
||||
{ Fl_Group* o = new Fl_Group(209, 54, 580, 90, _("flrig is the preferred method of tranceiver control"));
|
||||
o->box(FL_ENGRAVED_BOX);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
|
||||
{ Fl_Check_Button* o = btn_fldigi_client_to_fldigi = new Fl_Check_Button(234, 81, 70, 15, _("Enable flrig xcvr control with fldigi as client"));
|
||||
btn_fldigi_client_to_fldigi->tooltip(_("Disable if flrig not used."));
|
||||
btn_fldigi_client_to_fldigi->down_box(FL_DOWN_BOX);
|
||||
btn_fldigi_client_to_fldigi->callback((Fl_Callback*)cb_btn_fldigi_client_to_fldigi);
|
||||
{ Fl_Check_Button* o = btn_fldigi_client_to_flrig = new Fl_Check_Button(234, 81, 70, 15, _("Enable flrig xcvr control with fldigi as client"));
|
||||
btn_fldigi_client_to_flrig->tooltip(_("Disable if flrig not used."));
|
||||
btn_fldigi_client_to_flrig->down_box(FL_DOWN_BOX);
|
||||
btn_fldigi_client_to_flrig->callback((Fl_Callback*)cb_btn_fldigi_client_to_flrig);
|
||||
o->value(progdefaults.fldigi_client_to_flrig);
|
||||
} // Fl_Check_Button* btn_fldigi_client_to_fldigi
|
||||
} // Fl_Check_Button* btn_fldigi_client_to_flrig
|
||||
{ Fl_Check_Button* o = btn_flrig_auto_shutdown = new Fl_Check_Button(234, 112, 70, 15, _("Shutdown flrig with fldigi"));
|
||||
btn_flrig_auto_shutdown->tooltip(_("Disable if flrig not used."));
|
||||
btn_flrig_auto_shutdown->down_box(FL_DOWN_BOX);
|
||||
btn_flrig_auto_shutdown->callback((Fl_Callback*)cb_btn_flrig_auto_shutdown);
|
||||
o->value(progdefaults.flrig_auto_shutdown);
|
||||
} // Fl_Check_Button* btn_flrig_auto_shutdown
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
CONFIG_PAGE *p = new CONFIG_PAGE(o, _("Rig Control/flrig"));
|
||||
|
|
|
|||
|
|
@ -2326,7 +2326,7 @@ progdefaults.changed = true;}
|
|||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Logging/MacLogger} selected
|
||||
label {Logging/MacLogger}
|
||||
xywh {200 0 600 350} box ENGRAVED_BOX align 21 hide
|
||||
code0 {CONFIG_PAGE *p = new CONFIG_PAGE(o, _("Logging/MacLogger"));}
|
||||
code1 {config_pages.push_back(p);}
|
||||
|
|
@ -5524,7 +5524,7 @@ progdefaults.changed = true;} open
|
|||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Modem/TTY/nanoIO} open
|
||||
label {Modem/TTY/nanoIO}
|
||||
xywh {200 0 600 350} box FLAT_BOX align 21 hide
|
||||
code0 {CONFIG_PAGE *p = new CONFIG_PAGE(o, _("Modem/TTY/nanoIO"));}
|
||||
code1 {config_pages.push_back(p);}
|
||||
|
|
@ -7443,20 +7443,20 @@ progdefaults.changed = true;} open
|
|||
Fl_Group {} {
|
||||
label {"Disable PTT keys modem if multiple instances of fldigi (client)
|
||||
are connected to a single flrig (server).} open
|
||||
xywh {209 196 580 90} box ENGRAVED_BOX align 17
|
||||
xywh {209 233 580 90} box ENGRAVED_BOX align 17
|
||||
} {
|
||||
Fl_Check_Button chk_flrig_keys_modem {
|
||||
label {Flrig PTT keys modem}
|
||||
callback {progdefaults.flrig_keys_modem = o->value();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {" "} xywh {439 244 183 20} down_box DOWN_BOX
|
||||
tooltip {" "} xywh {439 281 183 20} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.flrig_keys_modem);}
|
||||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {flrig xmlrpc server parameters
|
||||
these controls are mirrored on the IO configuration tab} open
|
||||
xywh {209 111 580 81} box ENGRAVED_FRAME align 21
|
||||
xywh {209 148 580 81} box ENGRAVED_FRAME align 21
|
||||
} {
|
||||
Fl_Button btnDefault_flrig_ip_mirror {
|
||||
label Default
|
||||
|
|
@ -7465,7 +7465,7 @@ txt_flrig_ip_address_mirror->value(progdefaults.flrig_ip_address.c_str());
|
|||
txt_flrig_ip_port_mirror->value(progdefaults.flrig_ip_port.c_str());
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Returns IP Address and port
|
||||
number to the default value.} xywh {613 157 73 24}
|
||||
number to the default value.} xywh {613 194 73 24}
|
||||
}
|
||||
Fl_Input txt_flrig_ip_address_mirror {
|
||||
label Addr
|
||||
|
|
@ -7474,7 +7474,7 @@ txt_flrig_ip_address->value(progdefaults.flrig_ip_address.c_str());
|
|||
progdefaults.changed = true;}
|
||||
tooltip {IP Address for flrig interface
|
||||
IP Address format: nnn.nnn.nnn.nnn
|
||||
or name: i.e. localhost} xywh {244 157 230 24} align 8 when 1
|
||||
or name: i.e. localhost} xywh {244 194 230 24} align 8 when 1
|
||||
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
||||
code1 {o->value(progdefaults.flrig_ip_address.c_str());}
|
||||
class Fl_Input2
|
||||
|
|
@ -7484,7 +7484,7 @@ or name: i.e. localhost} xywh {244 157 230 24} align 8 when 1
|
|||
callback {progdefaults.flrig_ip_port = o->value();
|
||||
txt_flrig_ip_port->value(progdefaults.flrig_ip_port.c_str());
|
||||
progdefaults.changed = true;}
|
||||
tooltip {IP Address Port Number} xywh {518 157 55 24} align 8 when 1
|
||||
tooltip {IP Address Port Number} xywh {518 194 55 24} align 8 when 1
|
||||
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
||||
code1 {o->value(progdefaults.flrig_ip_port.c_str());}
|
||||
class Fl_Input2
|
||||
|
|
@ -7492,15 +7492,15 @@ progdefaults.changed = true;}
|
|||
Fl_Button btn_reconnect_flrig_server_mirror {
|
||||
label Reconnect
|
||||
callback {reconnect_to_flrig();}
|
||||
tooltip {Press only if you change the address/port} xywh {693 157 82 24}
|
||||
tooltip {Press only if you change the address/port} xywh {693 194 82 24}
|
||||
code0 {\#include "rigsupport.h"}
|
||||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {flrig is the preferred method of tranceiver control} open
|
||||
xywh {209 54 580 52} box ENGRAVED_BOX align 17
|
||||
xywh {209 54 580 90} box ENGRAVED_BOX align 17
|
||||
} {
|
||||
Fl_Check_Button btn_fldigi_client_to_fldigi {
|
||||
Fl_Check_Button btn_fldigi_client_to_flrig {
|
||||
label {Enable flrig xcvr control with fldigi as client}
|
||||
callback {progdefaults.fldigi_client_to_flrig=o->value();
|
||||
if (o->value()) {
|
||||
|
|
@ -7513,6 +7513,13 @@ progdefaults.changed=true;}
|
|||
tooltip {Disable if flrig not used.} xywh {234 81 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.fldigi_client_to_flrig);}
|
||||
}
|
||||
Fl_Check_Button btn_flrig_auto_shutdown {
|
||||
label {Shutdown flrig with fldigi}
|
||||
callback {progdefaults.flrig_auto_shutdown=o->value();
|
||||
progdefaults.changed=true;}
|
||||
tooltip {Disable if flrig not used.} xywh {234 112 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.flrig_auto_shutdown);}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Group grpRigCat {
|
||||
|
|
@ -7526,7 +7533,7 @@ progdefaults.changed=true;}
|
|||
label {Use RigCAT}
|
||||
callback {if (o->value() == 1) {
|
||||
chkUSEHAMLIB->value(0);
|
||||
btn_fldigi_client_to_fldigi->value(0);
|
||||
btn_fldigi_client_to_flrig->value(0);
|
||||
progdefaults.chkUSERIGCATis = true;
|
||||
progdefaults.fldigi_client_to_flrig = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
|
|
@ -8189,7 +8196,7 @@ progdefaults.changed=true;}
|
|||
callback {progdefaults.chkUSEHAMLIBis = o->value();
|
||||
if (o->value() == 1) {
|
||||
chkUSERIGCAT->value(0);
|
||||
btn_fldigi_client_to_fldigi->value(0);
|
||||
btn_fldigi_client_to_flrig->value(0);
|
||||
progdefaults.chkUSERIGCATis = false;
|
||||
progdefaults.fldigi_client_to_flrig = false;
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
|
|
@ -8199,7 +8206,7 @@ if (o->value() == 1) {
|
|||
progdefaults.initInterface();
|
||||
}
|
||||
|
||||
progdefaults.changed = true;}
|
||||
progdefaults.changed = true;} selected
|
||||
tooltip {Hamlib used for rig control} xywh {451 31 100 20} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Group grpHamlib {open
|
||||
|
|
|
|||
|
|
@ -692,7 +692,8 @@ extern Fl_Button *btnDefault_flrig_ip_mirror;
|
|||
extern Fl_Input2 *txt_flrig_ip_address_mirror;
|
||||
extern Fl_Input2 *txt_flrig_ip_port_mirror;
|
||||
extern Fl_Button *btn_reconnect_flrig_server_mirror;
|
||||
extern Fl_Check_Button *btn_fldigi_client_to_fldigi;
|
||||
extern Fl_Check_Button *btn_fldigi_client_to_flrig;
|
||||
extern Fl_Check_Button *btn_flrig_auto_shutdown;
|
||||
extern Fl_Group *grpRigCat;
|
||||
extern Fl_Check_Button *chkUSERIGCAT;
|
||||
extern Fl_Group *grpRigCAT;
|
||||
|
|
|
|||
|
|
@ -1225,6 +1225,9 @@
|
|||
ELEM_(bool, fldigi_client_to_flrig, "CLIENT_TO_FLRIG", \
|
||||
"True if flrig xmlrpc server is used for xcvr control", \
|
||||
false) \
|
||||
ELEM_(bool, flrig_auto_shutdown, "FLRIG_AUTO_SHUTDOWN", \
|
||||
"True to shutdown flrig when closing fldigi", \
|
||||
false) \
|
||||
ELEM_(bool, btnusb, "BTNUSB", \
|
||||
"This setting is currently unused", \
|
||||
true) \
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ extern bool connected_to_flrig;
|
|||
extern void xmlrpc_rig_set_qsy(long long rfc);
|
||||
extern bool xmlrpc_USB();
|
||||
extern void xmlrpc_send_command(std::string cmd);
|
||||
extern void xmlrpc_shutdown_flrig();
|
||||
|
||||
extern void FLRIG_set_flrig_ab(int n);
|
||||
extern void FLRIG_start_flrig_thread();
|
||||
|
|
|
|||
|
|
@ -1257,6 +1257,10 @@ void exit_process() {
|
|||
|
||||
kiss_close(false);
|
||||
maclogger_close();
|
||||
|
||||
if (progdefaults.flrig_auto_shutdown)
|
||||
xmlrpc_shutdown_flrig();
|
||||
|
||||
XML_RPC_Server::stop();
|
||||
|
||||
if (progdefaults.usepskrep)
|
||||
|
|
|
|||
|
|
@ -1083,3 +1083,17 @@ void xmlrpc_send_command(std::string cmd)
|
|||
} catch (...) {}
|
||||
}
|
||||
|
||||
void xmlrpc_shutdown_flrig()
|
||||
{
|
||||
if (!connected_to_flrig) return;
|
||||
guard_lock flrig_lock(&mutex_flrig);
|
||||
|
||||
XmlRpcValue val, result;
|
||||
try {
|
||||
if (!flrig_client->execute("rig.shutdown", XmlRpcValue(), result, timeout)) {
|
||||
LOG_ERROR("%s", "rig.shutdown failed");
|
||||
} else {
|
||||
LOG_VERBOSE("%s", "rig.shutdown OK");
|
||||
}
|
||||
} catch (...) {}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue