kopia lustrzana https://github.com/jamescoxon/dl-fldigi
flmsg interface
* Added xmlrpc procedures to specifically to allow flmsg i/o using ARQ protocol. - main.flmsg_online main.flmsg_available main.flmsg_transferpull/4/head
rodzic
5b367fb638
commit
aa6592c59b
|
@ -107,7 +107,7 @@ over HF and VHF radio.Additional information on flarq is available here:
|
|||
</ul>
|
||||
|
||||
The reception of a flwrap and flmsg files can be automated by selecting
|
||||
the "Enable detection & extraction" option. The wrap program
|
||||
the "Enable detection" option. The wrap program
|
||||
can then be used to test for validity and data extraction at some later
|
||||
time. fldigi can recognize flmsg data files and automatically
|
||||
open the flmsg program with the newly received data stream. It
|
||||
|
@ -115,6 +115,10 @@ can also transfer the data stream to flmsg and instruct flmsg to save
|
|||
the data file, unwrap and decode it, display the data in a fully
|
||||
formatted html page and then exit. Pressing "Locate flmsg"
|
||||
performs differently on the different OS that are supported.
|
||||
|
||||
The ability to transfer incoming flmsg data streams directly to an executing
|
||||
flmsg was introduced with flmsg 3.0. Check that option if you are using flmsg
|
||||
3.0 or greater.
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
|
|
|
@ -4858,6 +4858,13 @@ static void cb_sldr_extract_timeout(Fl_Value_Slider* o, void*) {
|
|||
progdefaults.changed=true;
|
||||
}
|
||||
|
||||
Fl_Check_Button *chk_transfer__to_open_flmsg=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_chk_transfer__to_open_flmsg(Fl_Check_Button* o, void*) {
|
||||
progdefaults.flmsg_transfer_direct = o->value();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Group *tabPskmail=(Fl_Group *)0;
|
||||
|
||||
Fl_Counter2 *cntServerCarrier=(Fl_Counter2 *)0;
|
||||
|
@ -10909,7 +10916,6 @@ gured on the\n\"Notifications\" configure dialog."));
|
|||
{ tabsMisc = new Fl_Tabs(0, 25, 600, 360);
|
||||
tabsMisc->selection_color(FL_LIGHT1);
|
||||
{ tabCPUspeed = new Fl_Group(0, 50, 600, 335, _("CPU"));
|
||||
tabCPUspeed->hide();
|
||||
{ Fl_Group* o = new Fl_Group(55, 75, 490, 51);
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
|
||||
|
@ -10942,22 +10948,22 @@ gured on the\n\"Notifications\" configure dialog."));
|
|||
} // Fl_Check_Button* chk_open_wrap_folder
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(50, 141, 500, 130, _("Reception of flmsg files"));
|
||||
{ Fl_Group* o = new Fl_Group(50, 141, 500, 199, _("Reception of flmsg files"));
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
|
||||
{ Fl_Check_Button* o = chk_open_flmsg = new Fl_Check_Button(104, 168, 136, 20, _("Open with flmsg"));
|
||||
{ Fl_Check_Button* o = chk_open_flmsg = new Fl_Check_Button(104, 241, 136, 20, _("Open with flmsg"));
|
||||
chk_open_flmsg->tooltip(_("Open message with flmsg"));
|
||||
chk_open_flmsg->down_box(FL_DOWN_BOX);
|
||||
chk_open_flmsg->callback((Fl_Callback*)cb_chk_open_flmsg);
|
||||
o->value(progdefaults.open_flmsg);
|
||||
} // Fl_Check_Button* chk_open_flmsg
|
||||
{ Fl_Check_Button* o = chk_open_flmsg_print = new Fl_Check_Button(310, 168, 136, 20, _("Open in browser"));
|
||||
{ Fl_Check_Button* o = chk_open_flmsg_print = new Fl_Check_Button(310, 241, 136, 20, _("Open in browser"));
|
||||
chk_open_flmsg_print->tooltip(_("Open file with default browser"));
|
||||
chk_open_flmsg_print->down_box(FL_DOWN_BOX);
|
||||
chk_open_flmsg_print->callback((Fl_Callback*)cb_chk_open_flmsg_print);
|
||||
o->value(progdefaults.open_flmsg_print);
|
||||
} // Fl_Check_Button* chk_open_flmsg_print
|
||||
{ Fl_Input2* o = txt_flmsg_pathname = new Fl_Input2(104, 199, 330, 24, _("flmsg:"));
|
||||
{ Fl_Input2* o = txt_flmsg_pathname = new Fl_Input2(104, 271, 330, 24, _("flmsg:"));
|
||||
txt_flmsg_pathname->tooltip(_("Enter full path-filename for flmsg"));
|
||||
txt_flmsg_pathname->box(FL_DOWN_BOX);
|
||||
txt_flmsg_pathname->color(FL_BACKGROUND2_COLOR);
|
||||
|
@ -10971,24 +10977,36 @@ gured on the\n\"Notifications\" configure dialog."));
|
|||
txt_flmsg_pathname->when(FL_WHEN_CHANGED);
|
||||
o->value(progdefaults.flmsg_pathname.c_str());
|
||||
} // Fl_Input2* txt_flmsg_pathname
|
||||
{ btn_select_flmsg = new Fl_Button(441, 199, 100, 24, _("Locate flmsg"));
|
||||
{ btn_select_flmsg = new Fl_Button(441, 271, 100, 24, _("Locate flmsg"));
|
||||
btn_select_flmsg->tooltip(_("Locate flmsg executable"));
|
||||
btn_select_flmsg->callback((Fl_Callback*)cb_btn_select_flmsg);
|
||||
} // Fl_Button* btn_select_flmsg
|
||||
{ Fl_Value_Slider* o = sldr_extract_timeout = new Fl_Value_Slider(70, 237, 364, 21, _("Timeout (secs)"));
|
||||
{ Fl_Value_Slider* o = sldr_extract_timeout = new Fl_Value_Slider(70, 309, 364, 21, _("Timeout (secs)"));
|
||||
sldr_extract_timeout->tooltip(_("Extract times out after NN seconds of inactivity."));
|
||||
sldr_extract_timeout->type(5);
|
||||
sldr_extract_timeout->color(FL_LIGHT3);
|
||||
sldr_extract_timeout->selection_color(FL_FOREGROUND_COLOR);
|
||||
sldr_extract_timeout->minimum(1);
|
||||
sldr_extract_timeout->maximum(10);
|
||||
sldr_extract_timeout->maximum(20);
|
||||
sldr_extract_timeout->step(0.5);
|
||||
sldr_extract_timeout->value(4);
|
||||
sldr_extract_timeout->value(10);
|
||||
sldr_extract_timeout->textsize(14);
|
||||
sldr_extract_timeout->callback((Fl_Callback*)cb_sldr_extract_timeout);
|
||||
sldr_extract_timeout->align(Fl_Align(FL_ALIGN_RIGHT));
|
||||
o->value(progdefaults.extract_timeout);
|
||||
} // Fl_Value_Slider* sldr_extract_timeout
|
||||
{ Fl_Group* o = new Fl_Group(55, 160, 490, 76, _("Selection of transfer direct takes precedence\nover all other flmsg reception\
|
||||
settings"));
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
|
||||
{ Fl_Check_Button* o = chk_transfer__to_open_flmsg = new Fl_Check_Button(160, 204, 271, 20, _("Transfer direct to executing flmsg"));
|
||||
chk_transfer__to_open_flmsg->tooltip(_("Send data stream directly to executing flmsg"));
|
||||
chk_transfer__to_open_flmsg->down_box(FL_DOWN_BOX);
|
||||
chk_transfer__to_open_flmsg->callback((Fl_Callback*)cb_chk_transfer__to_open_flmsg);
|
||||
o->value(progdefaults.flmsg_transfer_direct);
|
||||
} // Fl_Check_Button* chk_transfer__to_open_flmsg
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
tabNBEMS->end();
|
||||
|
@ -11388,6 +11406,7 @@ earch for station name"));
|
|||
tabWX->end();
|
||||
} // Fl_Group* tabWX
|
||||
{ tabKML = new Fl_Group(0, 50, 600, 335, _("KML"));
|
||||
tabKML->hide();
|
||||
{ Fl_Input* o = btnKmlSaveDir = new Fl_Input(26, 75, 390, 24, _("KML files directory"));
|
||||
btnKmlSaveDir->tooltip(_("Where generated KML documents are stored."));
|
||||
btnKmlSaveDir->callback((Fl_Callback*)cb_btnKmlSaveDir);
|
||||
|
|
|
@ -359,7 +359,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
static const char szProsigns[] = "~|%|&|+|=|{|}|<|>|[|]| ";} {}
|
||||
Fl_Window {} {
|
||||
label {Fldigi configuration} open
|
||||
xywh {900 170 600 415} type Double color 45 selection_color 51 labelsize 18 align 80 non_modal visible
|
||||
xywh {1076 134 600 415} type Double color 45 selection_color 51 labelsize 18 align 80 non_modal visible
|
||||
} {
|
||||
Fl_Tabs tabsConfigure {open
|
||||
xywh {0 0 600 390} color 50 selection_color 50
|
||||
|
@ -5991,7 +5991,7 @@ progdefaults.changed = true;}
|
|||
} {
|
||||
Fl_Group tabCPUspeed {
|
||||
label CPU open
|
||||
xywh {0 50 600 335} hide
|
||||
xywh {0 50 600 335}
|
||||
} {
|
||||
Fl_Group {} {open
|
||||
xywh {55 75 490 51} box ENGRAVED_FRAME align 21
|
||||
|
@ -6030,42 +6030,55 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Group {} {
|
||||
label {Reception of flmsg files} open
|
||||
xywh {50 141 500 130} box ENGRAVED_FRAME align 21
|
||||
xywh {50 141 500 199} box ENGRAVED_FRAME align 21
|
||||
} {
|
||||
Fl_Check_Button chk_open_flmsg {
|
||||
label {Open with flmsg}
|
||||
callback {progdefaults.open_flmsg = o->value();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Open message with flmsg} xywh {104 168 136 20} down_box DOWN_BOX
|
||||
tooltip {Open message with flmsg} xywh {104 241 136 20} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.open_flmsg);}
|
||||
}
|
||||
Fl_Check_Button chk_open_flmsg_print {
|
||||
label {Open in browser}
|
||||
callback {progdefaults.open_flmsg_print = o->value();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Open file with default browser} xywh {310 168 136 20} down_box DOWN_BOX
|
||||
tooltip {Open file with default browser} xywh {310 241 136 20} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.open_flmsg_print);}
|
||||
}
|
||||
Fl_Input txt_flmsg_pathname {
|
||||
label {flmsg:}
|
||||
callback {progdefaults.flmsg_pathname = o->value();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Enter full path-filename for flmsg} xywh {104 199 330 24} when 1
|
||||
tooltip {Enter full path-filename for flmsg} xywh {104 271 330 24} when 1
|
||||
code0 {o->value(progdefaults.flmsg_pathname.c_str());}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btn_select_flmsg {
|
||||
label {Locate flmsg}
|
||||
callback {select_flmsg_pathname();}
|
||||
tooltip {Locate flmsg executable} xywh {441 199 100 24}
|
||||
tooltip {Locate flmsg executable} xywh {441 271 100 24}
|
||||
}
|
||||
Fl_Value_Slider sldr_extract_timeout {
|
||||
label {Timeout (secs)}
|
||||
callback {progdefaults.extract_timeout=o->value();
|
||||
progdefaults.changed=true;}
|
||||
tooltip {Extract times out after NN seconds of inactivity.} xywh {70 237 364 21} type {Horz Knob} color 54 selection_color 0 align 8 minimum 1 maximum 10 step 0.5 value 4 textsize 14
|
||||
tooltip {Extract times out after NN seconds of inactivity.} xywh {70 309 364 21} type {Horz Knob} color 54 selection_color 0 align 8 minimum 1 maximum 20 step 0.5 value 10 textsize 14
|
||||
code0 {o->value(progdefaults.extract_timeout);}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Selection of transfer direct takes precedence
|
||||
over all other flmsg reception settings} open
|
||||
xywh {55 160 490 76} box ENGRAVED_FRAME align 17
|
||||
} {
|
||||
Fl_Check_Button chk_transfer__to_open_flmsg {
|
||||
label {Transfer direct to executing flmsg}
|
||||
callback {progdefaults.flmsg_transfer_direct = o->value();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Send data stream directly to executing flmsg} xywh {160 204 271 20} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.flmsg_transfer_direct);}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Group tabPskmail {
|
||||
|
@ -6436,7 +6449,7 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Group tabKML {
|
||||
label KML open
|
||||
xywh {0 50 600 335}
|
||||
xywh {0 50 600 335} hide
|
||||
} {
|
||||
Fl_Input btnKmlSaveDir {
|
||||
label {KML files directory}
|
||||
|
|
|
@ -593,6 +593,7 @@ extern Fl_Check_Button *chk_open_flmsg_print;
|
|||
extern Fl_Input2 *txt_flmsg_pathname;
|
||||
extern Fl_Button *btn_select_flmsg;
|
||||
extern Fl_Value_Slider *sldr_extract_timeout;
|
||||
extern Fl_Check_Button *chk_transfer__to_open_flmsg;
|
||||
extern Fl_Group *tabPskmail;
|
||||
extern Fl_Counter2 *cntServerCarrier;
|
||||
extern Fl_Counter2 *cntServerOffset;
|
||||
|
|
|
@ -872,6 +872,9 @@
|
|||
ELEM_(bool, open_flmsg, "OPEN_FLMSG", \
|
||||
"Open flmsg with the autoextract file", \
|
||||
true) \
|
||||
ELEM_(bool, flmsg_transfer_direct, "FLMSG_TRANSFER_DIRECT", \
|
||||
"Transfer incoming flmsg autosend file to open flmsg application", \
|
||||
true) \
|
||||
ELEM_(bool, open_flmsg_print, "OPEN_FLMSG_PRINT", \
|
||||
"Open flmsg with the autoextract file\nprint to browser\nclose flmsg", \
|
||||
true) \
|
||||
|
|
|
@ -50,4 +50,8 @@ extern void xmlrpc_set_qsy(long long rfc);
|
|||
extern int xmltest_char();
|
||||
extern bool xmltest_char_available;
|
||||
extern int number_of_samples(std::string s);
|
||||
|
||||
extern bool flmsg_online;
|
||||
extern std::string flmsg_data;
|
||||
|
||||
#endif // XMLRPC_H
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "icons.h"
|
||||
#include "qrunner.h"
|
||||
#include "timeops.h"
|
||||
#include "xmlrpc.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -127,6 +128,11 @@ void invoke_flmsg()
|
|||
rx_extract_msg.append(FLMSG_WRAP_recv_dir);
|
||||
put_status(rx_extract_msg.c_str(), 20, STATUS_CLEAR);
|
||||
|
||||
if (flmsg_online && progdefaults.flmsg_transfer_direct) {
|
||||
flmsg_data = rx_buff;
|
||||
return;
|
||||
}
|
||||
|
||||
if (progdefaults.open_nbems_folder)
|
||||
open_recv_folder(FLMSG_WRAP_recv_dir.c_str());
|
||||
|
||||
|
|
|
@ -1572,6 +1572,83 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// flmsg i/o
|
||||
//----------------------------------------------------------------------
|
||||
bool flmsg_online = false;
|
||||
void flmsg_defeat(void *)
|
||||
{
|
||||
flmsg_online = false;
|
||||
}
|
||||
|
||||
class Main_flmsg_online : public xmlrpc_c::method
|
||||
{
|
||||
public:
|
||||
Main_flmsg_online()
|
||||
{
|
||||
_signature = "n:n";
|
||||
_help = "flmsg online indication";
|
||||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
XMLRPC_LOCK;
|
||||
flmsg_online = true;
|
||||
Fl::remove_timeout(flmsg_defeat);
|
||||
Fl::add_timeout(0.5, flmsg_defeat);
|
||||
}
|
||||
};
|
||||
|
||||
string flmsg_data;
|
||||
|
||||
class Main_flmsg_available : public xmlrpc_c::method
|
||||
{
|
||||
public:
|
||||
Main_flmsg_available()
|
||||
{
|
||||
_signature = "n:n";
|
||||
_help = "flmsg data available";
|
||||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
XMLRPC_LOCK;
|
||||
int data_ready = (int)flmsg_data.size();
|
||||
*retval = xmlrpc_c::value_int(data_ready);
|
||||
}
|
||||
};
|
||||
|
||||
class Main_flmsg_transfer : public xmlrpc_c::method
|
||||
{
|
||||
public:
|
||||
Main_flmsg_transfer()
|
||||
{
|
||||
_signature = "n:n";
|
||||
_help = "data transfer to flmsg";
|
||||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
XMLRPC_LOCK;
|
||||
string tempstr = flmsg_data;
|
||||
*retval = xmlrpc_c::value_string(tempstr);
|
||||
flmsg_data.clear();
|
||||
}
|
||||
};
|
||||
|
||||
class Main_flmsg_squelch : public xmlrpc_c::method
|
||||
{
|
||||
public:
|
||||
Main_flmsg_squelch()
|
||||
{
|
||||
_signature = "b:n";
|
||||
_help = "Returns the squelch state.";
|
||||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
*retval = xmlrpc_c::value_boolean(active_modem->get_metric() > progStatus.sldrSquelchValue);
|
||||
}
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
class Main_run_macro : public xmlrpc_c::method
|
||||
{
|
||||
public:
|
||||
|
@ -3312,192 +3389,197 @@ struct Navtex_send_message : public xmlrpc_c::method
|
|||
|
||||
// method list: ELEM_(class_name, "method_name")
|
||||
#undef ELEM_
|
||||
#define METHOD_LIST \
|
||||
ELEM_(Fldigi_list, "fldigi.list") \
|
||||
ELEM_(Fldigi_name, "fldigi.name") \
|
||||
ELEM_(Fldigi_version_struct, "fldigi.version_struct") \
|
||||
ELEM_(Fldigi_version_string, "fldigi.version") \
|
||||
ELEM_(Fldigi_name_version, "fldigi.name_version") \
|
||||
ELEM_(Fldigi_config_dir, "fldigi.config_dir") \
|
||||
ELEM_(Fldigi_terminate, "fldigi.terminate") \
|
||||
#define METHOD_LIST \
|
||||
ELEM_(Fldigi_list, "fldigi.list") \
|
||||
ELEM_(Fldigi_name, "fldigi.name") \
|
||||
ELEM_(Fldigi_version_struct, "fldigi.version_struct") \
|
||||
ELEM_(Fldigi_version_string, "fldigi.version") \
|
||||
ELEM_(Fldigi_name_version, "fldigi.name_version") \
|
||||
ELEM_(Fldigi_config_dir, "fldigi.config_dir") \
|
||||
ELEM_(Fldigi_terminate, "fldigi.terminate") \
|
||||
\
|
||||
ELEM_(Modem_get_name, "modem.get_name") \
|
||||
ELEM_(Modem_get_names, "modem.get_names") \
|
||||
ELEM_(Modem_get_id, "modem.get_id") \
|
||||
ELEM_(Modem_get_max_id, "modem.get_max_id") \
|
||||
ELEM_(Modem_set_by_name, "modem.set_by_name") \
|
||||
ELEM_(Modem_set_by_id, "modem.set_by_id") \
|
||||
ELEM_(Modem_get_name, "modem.get_name") \
|
||||
ELEM_(Modem_get_names, "modem.get_names") \
|
||||
ELEM_(Modem_get_id, "modem.get_id") \
|
||||
ELEM_(Modem_get_max_id, "modem.get_max_id") \
|
||||
ELEM_(Modem_set_by_name, "modem.set_by_name") \
|
||||
ELEM_(Modem_set_by_id, "modem.set_by_id") \
|
||||
\
|
||||
ELEM_(Modem_set_carrier, "modem.set_carrier") \
|
||||
ELEM_(Modem_inc_carrier, "modem.inc_carrier") \
|
||||
ELEM_(Modem_get_carrier, "modem.get_carrier") \
|
||||
ELEM_(Modem_set_carrier, "modem.set_carrier") \
|
||||
ELEM_(Modem_inc_carrier, "modem.inc_carrier") \
|
||||
ELEM_(Modem_get_carrier, "modem.get_carrier") \
|
||||
\
|
||||
ELEM_(Modem_get_afc_sr, "modem.get_afc_search_range") \
|
||||
ELEM_(Modem_set_afc_sr, "modem.set_afc_search_range") \
|
||||
ELEM_(Modem_inc_afc_sr, "modem.inc_afc_search_range") \
|
||||
ELEM_(Modem_get_afc_sr, "modem.get_afc_search_range") \
|
||||
ELEM_(Modem_set_afc_sr, "modem.set_afc_search_range") \
|
||||
ELEM_(Modem_inc_afc_sr, "modem.inc_afc_search_range") \
|
||||
\
|
||||
ELEM_(Modem_get_bw, "modem.get_bandwidth") \
|
||||
ELEM_(Modem_set_bw, "modem.set_bandwidth") \
|
||||
ELEM_(Modem_inc_bw, "modem.inc_bandwidth") \
|
||||
ELEM_(Modem_get_bw, "modem.get_bandwidth") \
|
||||
ELEM_(Modem_set_bw, "modem.set_bandwidth") \
|
||||
ELEM_(Modem_inc_bw, "modem.inc_bandwidth") \
|
||||
\
|
||||
ELEM_(Modem_get_quality, "modem.get_quality") \
|
||||
ELEM_(Modem_search_up, "modem.search_up") \
|
||||
ELEM_(Modem_search_down, "modem.search_down") \
|
||||
ELEM_(Modem_get_quality, "modem.get_quality") \
|
||||
ELEM_(Modem_search_up, "modem.search_up") \
|
||||
ELEM_(Modem_search_down, "modem.search_down") \
|
||||
\
|
||||
ELEM_(Modem_olivia_set_bandwidth, "modem.olivia.set_bandwidth") \
|
||||
ELEM_(Modem_olivia_get_bandwidth, "modem.olivia.get_bandwidth") \
|
||||
ELEM_(Modem_olivia_set_tones, "modem.olivia.set_tones") \
|
||||
ELEM_(Modem_olivia_get_tones, "modem.olivia.get_tones") \
|
||||
ELEM_(Modem_olivia_set_bandwidth, "modem.olivia.set_bandwidth") \
|
||||
ELEM_(Modem_olivia_get_bandwidth, "modem.olivia.get_bandwidth") \
|
||||
ELEM_(Modem_olivia_set_tones, "modem.olivia.set_tones") \
|
||||
ELEM_(Modem_olivia_get_tones, "modem.olivia.get_tones") \
|
||||
\
|
||||
ELEM_(Main_get_status1, "main.get_status1") \
|
||||
ELEM_(Main_get_status2, "main.get_status2") \
|
||||
ELEM_(Main_get_status1, "main.get_status1") \
|
||||
ELEM_(Main_get_status2, "main.get_status2") \
|
||||
\
|
||||
ELEM_(Main_get_sb, "main.get_sideband") \
|
||||
ELEM_(Main_set_sb, "main.set_sideband") \
|
||||
ELEM_(Main_get_wf_sideband, "main.get_wf_sideband") \
|
||||
ELEM_(Main_set_wf_sideband, "main.set_wf_sideband") \
|
||||
ELEM_(Main_get_freq, "main.get_frequency") \
|
||||
ELEM_(Main_set_freq, "main.set_frequency") \
|
||||
ELEM_(Main_inc_freq, "main.inc_frequency") \
|
||||
ELEM_(Main_get_sb, "main.get_sideband") \
|
||||
ELEM_(Main_set_sb, "main.set_sideband") \
|
||||
ELEM_(Main_get_wf_sideband, "main.get_wf_sideband") \
|
||||
ELEM_(Main_set_wf_sideband, "main.set_wf_sideband") \
|
||||
ELEM_(Main_get_freq, "main.get_frequency") \
|
||||
ELEM_(Main_set_freq, "main.set_frequency") \
|
||||
ELEM_(Main_inc_freq, "main.inc_frequency") \
|
||||
\
|
||||
ELEM_(Main_get_afc, "main.get_afc") \
|
||||
ELEM_(Main_set_afc, "main.set_afc") \
|
||||
ELEM_(Main_toggle_afc, "main.toggle_afc") \
|
||||
ELEM_(Main_get_afc, "main.get_afc") \
|
||||
ELEM_(Main_set_afc, "main.set_afc") \
|
||||
ELEM_(Main_toggle_afc, "main.toggle_afc") \
|
||||
\
|
||||
ELEM_(Main_get_sql, "main.get_squelch") \
|
||||
ELEM_(Main_set_sql, "main.set_squelch") \
|
||||
ELEM_(Main_toggle_sql, "main.toggle_squelch") \
|
||||
ELEM_(Main_get_sql, "main.get_squelch") \
|
||||
ELEM_(Main_set_sql, "main.set_squelch") \
|
||||
ELEM_(Main_toggle_sql, "main.toggle_squelch") \
|
||||
\
|
||||
ELEM_(Main_get_sql_level, "main.get_squelch_level") \
|
||||
ELEM_(Main_set_sql_level, "main.set_squelch_level") \
|
||||
ELEM_(Main_inc_sql_level, "main.inc_squelch_level") \
|
||||
ELEM_(Main_get_sql_level, "main.get_squelch_level") \
|
||||
ELEM_(Main_set_sql_level, "main.set_squelch_level") \
|
||||
ELEM_(Main_inc_sql_level, "main.inc_squelch_level") \
|
||||
\
|
||||
ELEM_(Main_get_rev, "main.get_reverse") \
|
||||
ELEM_(Main_set_rev, "main.set_reverse") \
|
||||
ELEM_(Main_toggle_rev, "main.toggle_reverse") \
|
||||
ELEM_(Main_get_rev, "main.get_reverse") \
|
||||
ELEM_(Main_set_rev, "main.set_reverse") \
|
||||
ELEM_(Main_toggle_rev, "main.toggle_reverse") \
|
||||
\
|
||||
ELEM_(Main_get_lock, "main.get_lock") \
|
||||
ELEM_(Main_set_lock, "main.set_lock") \
|
||||
ELEM_(Main_toggle_lock, "main.toggle_lock") \
|
||||
ELEM_(Main_get_lock, "main.get_lock") \
|
||||
ELEM_(Main_set_lock, "main.set_lock") \
|
||||
ELEM_(Main_toggle_lock, "main.toggle_lock") \
|
||||
\
|
||||
ELEM_(Main_get_txid, "main.get_txid") \
|
||||
ELEM_(Main_set_txid, "main.set_txid") \
|
||||
ELEM_(Main_toggle_txid, "main.toggle_txid") \
|
||||
ELEM_(Main_get_txid, "main.get_txid") \
|
||||
ELEM_(Main_set_txid, "main.set_txid") \
|
||||
ELEM_(Main_toggle_txid, "main.toggle_txid") \
|
||||
\
|
||||
ELEM_(Main_get_rsid, "main.get_rsid") \
|
||||
ELEM_(Main_set_rsid, "main.set_rsid") \
|
||||
ELEM_(Main_toggle_rsid, "main.toggle_rsid") \
|
||||
ELEM_(Main_get_rsid, "main.get_rsid") \
|
||||
ELEM_(Main_set_rsid, "main.set_rsid") \
|
||||
ELEM_(Main_toggle_rsid, "main.toggle_rsid") \
|
||||
\
|
||||
ELEM_(Main_get_trx_status, "main.get_trx_status") \
|
||||
ELEM_(Main_tx, "main.tx") \
|
||||
ELEM_(Main_tune, "main.tune") \
|
||||
ELEM_(Main_rsid, "main.rsid") \
|
||||
ELEM_(Main_rx, "main.rx") \
|
||||
ELEM_(Main_rx_tx, "main.rx_tx") \
|
||||
ELEM_(Main_rx_only, "main.rx_only") \
|
||||
ELEM_(Main_abort, "main.abort") \
|
||||
ELEM_(Main_get_trx_status, "main.get_trx_status") \
|
||||
ELEM_(Main_tx, "main.tx") \
|
||||
ELEM_(Main_tune, "main.tune") \
|
||||
ELEM_(Main_rsid, "main.rsid") \
|
||||
ELEM_(Main_rx, "main.rx") \
|
||||
ELEM_(Main_rx_tx, "main.rx_tx") \
|
||||
ELEM_(Main_rx_only, "main.rx_only") \
|
||||
ELEM_(Main_abort, "main.abort") \
|
||||
\
|
||||
ELEM_(Main_get_trx_state, "main.get_trx_state") \
|
||||
ELEM_(Main_get_tx_timing, "main.get_tx_timing") \
|
||||
ELEM_(Main_get_char_rates, "main.get_char_rates") \
|
||||
ELEM_(Main_get_char_timing, "main.get_char_timing") \
|
||||
ELEM_(Main_set_rig_name, "main.set_rig_name") \
|
||||
ELEM_(Main_set_rig_frequency, "main.set_rig_frequency") \
|
||||
ELEM_(Main_set_rig_modes, "main.set_rig_modes") \
|
||||
ELEM_(Main_set_rig_mode, "main.set_rig_mode") \
|
||||
ELEM_(Main_get_rig_modes, "main.get_rig_modes") \
|
||||
ELEM_(Main_get_rig_mode, "main.get_rig_mode") \
|
||||
ELEM_(Main_set_rig_bandwidths, "main.set_rig_bandwidths") \
|
||||
ELEM_(Main_set_rig_bandwidth, "main.set_rig_bandwidth") \
|
||||
ELEM_(Main_get_rig_bandwidth, "main.get_rig_bandwidth") \
|
||||
ELEM_(Main_get_rig_bandwidths, "main.get_rig_bandwidths") \
|
||||
ELEM_(Main_get_trx_state, "main.get_trx_state") \
|
||||
ELEM_(Main_get_tx_timing, "main.get_tx_timing") \
|
||||
ELEM_(Main_get_char_rates, "main.get_char_rates") \
|
||||
ELEM_(Main_get_char_timing, "main.get_char_timing") \
|
||||
ELEM_(Main_set_rig_name, "main.set_rig_name") \
|
||||
ELEM_(Main_set_rig_frequency, "main.set_rig_frequency") \
|
||||
ELEM_(Main_set_rig_modes, "main.set_rig_modes") \
|
||||
ELEM_(Main_set_rig_mode, "main.set_rig_mode") \
|
||||
ELEM_(Main_get_rig_modes, "main.get_rig_modes") \
|
||||
ELEM_(Main_get_rig_mode, "main.get_rig_mode") \
|
||||
ELEM_(Main_set_rig_bandwidths, "main.set_rig_bandwidths") \
|
||||
ELEM_(Main_set_rig_bandwidth, "main.set_rig_bandwidth") \
|
||||
ELEM_(Main_get_rig_bandwidth, "main.get_rig_bandwidth") \
|
||||
ELEM_(Main_get_rig_bandwidths, "main.get_rig_bandwidths") \
|
||||
\
|
||||
ELEM_(Main_run_macro, "main.run_macro") \
|
||||
ELEM_(Main_get_max_macro_id, "main.get_max_macro_id") \
|
||||
ELEM_(Main_run_macro, "main.run_macro") \
|
||||
ELEM_(Main_get_max_macro_id, "main.get_max_macro_id") \
|
||||
\
|
||||
ELEM_(Rig_set_name, "rig.set_name") \
|
||||
ELEM_(Rig_get_name, "rig.get_name") \
|
||||
ELEM_(Rig_set_frequency, "rig.set_frequency") \
|
||||
ELEM_(Rig_set_smeter, "rig.set_smeter") \
|
||||
ELEM_(Rig_set_pwrmeter, "rig.set_pwrmeter") \
|
||||
ELEM_(Rig_set_modes, "rig.set_modes") \
|
||||
ELEM_(Rig_set_mode, "rig.set_mode") \
|
||||
ELEM_(Rig_get_modes, "rig.get_modes") \
|
||||
ELEM_(Rig_get_mode, "rig.get_mode") \
|
||||
ELEM_(Rig_set_bandwidths, "rig.set_bandwidths") \
|
||||
ELEM_(Rig_set_bandwidth, "rig.set_bandwidth") \
|
||||
ELEM_(Rig_get_freq, "rig.get_frequency") \
|
||||
ELEM_(Rig_get_bandwidth, "rig.get_bandwidth") \
|
||||
ELEM_(Rig_get_bandwidths, "rig.get_bandwidths") \
|
||||
ELEM_(Rig_get_notch, "rig.get_notch") \
|
||||
ELEM_(Rig_set_notch, "rig.set_notch") \
|
||||
ELEM_(Rig_take_control, "rig.take_control") \
|
||||
ELEM_(Rig_release_control, "rig.release_control") \
|
||||
ELEM_(Rig_set_name, "rig.set_name") \
|
||||
ELEM_(Rig_get_name, "rig.get_name") \
|
||||
ELEM_(Rig_set_frequency, "rig.set_frequency") \
|
||||
ELEM_(Rig_set_smeter, "rig.set_smeter") \
|
||||
ELEM_(Rig_set_pwrmeter, "rig.set_pwrmeter") \
|
||||
ELEM_(Rig_set_modes, "rig.set_modes") \
|
||||
ELEM_(Rig_set_mode, "rig.set_mode") \
|
||||
ELEM_(Rig_get_modes, "rig.get_modes") \
|
||||
ELEM_(Rig_get_mode, "rig.get_mode") \
|
||||
ELEM_(Rig_set_bandwidths, "rig.set_bandwidths") \
|
||||
ELEM_(Rig_set_bandwidth, "rig.set_bandwidth") \
|
||||
ELEM_(Rig_get_freq, "rig.get_frequency") \
|
||||
ELEM_(Rig_get_bandwidth, "rig.get_bandwidth") \
|
||||
ELEM_(Rig_get_bandwidths, "rig.get_bandwidths") \
|
||||
ELEM_(Rig_get_notch, "rig.get_notch") \
|
||||
ELEM_(Rig_set_notch, "rig.set_notch") \
|
||||
ELEM_(Rig_take_control, "rig.take_control") \
|
||||
ELEM_(Rig_release_control, "rig.release_control") \
|
||||
\
|
||||
ELEM_(Log_get_freq, "log.get_frequency") \
|
||||
ELEM_(Log_get_time_on, "log.get_time_on") \
|
||||
ELEM_(Log_get_time_off, "log.get_time_off") \
|
||||
ELEM_(Log_get_call, "log.get_call") \
|
||||
ELEM_(Log_get_name, "log.get_name") \
|
||||
ELEM_(Log_get_rst_in, "log.get_rst_in") \
|
||||
ELEM_(Log_get_rst_out, "log.get_rst_out") \
|
||||
ELEM_(Log_set_rst_in, "log.set_rst_in") \
|
||||
ELEM_(Log_set_rst_out, "log.set_rst_out") \
|
||||
ELEM_(Log_get_serial_number, "log.get_serial_number") \
|
||||
ELEM_(Log_set_serial_number, "log.set_serial_number") \
|
||||
ELEM_(Log_get_serial_number_sent, "log.get_serial_number_sent") \
|
||||
ELEM_(Log_get_exchange, "log.get_exchange") \
|
||||
ELEM_(Log_set_exchange, "log.set_exchange") \
|
||||
ELEM_(Log_get_state, "log.get_state") \
|
||||
ELEM_(Log_get_province, "log.get_province") \
|
||||
ELEM_(Log_get_country, "log.get_country") \
|
||||
ELEM_(Log_get_qth, "log.get_qth") \
|
||||
ELEM_(Log_get_band, "log.get_band") \
|
||||
ELEM_(Log_get_sb, "log.get_sideband") \
|
||||
ELEM_(Log_get_notes, "log.get_notes") \
|
||||
ELEM_(Log_get_locator, "log.get_locator") \
|
||||
ELEM_(Log_get_az, "log.get_az") \
|
||||
ELEM_(Log_clear, "log.clear") \
|
||||
ELEM_(Log_set_call, "log.set_call") \
|
||||
ELEM_(Log_set_name, "log.set_name") \
|
||||
ELEM_(Log_set_qth, "log.set_qth") \
|
||||
ELEM_(Log_set_locator, "log.set_locator") \
|
||||
ELEM_(Log_set_rst_in, "log.set_rst_in") \
|
||||
ELEM_(Log_set_rst_out, "log.set_rst_out") \
|
||||
ELEM_(Log_get_freq, "log.get_frequency") \
|
||||
ELEM_(Log_get_time_on, "log.get_time_on") \
|
||||
ELEM_(Log_get_time_off, "log.get_time_off") \
|
||||
ELEM_(Log_get_call, "log.get_call") \
|
||||
ELEM_(Log_get_name, "log.get_name") \
|
||||
ELEM_(Log_get_rst_in, "log.get_rst_in") \
|
||||
ELEM_(Log_get_rst_out, "log.get_rst_out") \
|
||||
ELEM_(Log_set_rst_in, "log.set_rst_in") \
|
||||
ELEM_(Log_set_rst_out, "log.set_rst_out") \
|
||||
ELEM_(Log_get_serial_number, "log.get_serial_number") \
|
||||
ELEM_(Log_set_serial_number, "log.set_serial_number") \
|
||||
ELEM_(Log_get_serial_number_sent, "log.get_serial_number_sent") \
|
||||
ELEM_(Log_get_exchange, "log.get_exchange") \
|
||||
ELEM_(Log_set_exchange, "log.set_exchange") \
|
||||
ELEM_(Log_get_state, "log.get_state") \
|
||||
ELEM_(Log_get_province, "log.get_province") \
|
||||
ELEM_(Log_get_country, "log.get_country") \
|
||||
ELEM_(Log_get_qth, "log.get_qth") \
|
||||
ELEM_(Log_get_band, "log.get_band") \
|
||||
ELEM_(Log_get_sb, "log.get_sideband") \
|
||||
ELEM_(Log_get_notes, "log.get_notes") \
|
||||
ELEM_(Log_get_locator, "log.get_locator") \
|
||||
ELEM_(Log_get_az, "log.get_az") \
|
||||
ELEM_(Log_clear, "log.clear") \
|
||||
ELEM_(Log_set_call, "log.set_call") \
|
||||
ELEM_(Log_set_name, "log.set_name") \
|
||||
ELEM_(Log_set_qth, "log.set_qth") \
|
||||
ELEM_(Log_set_locator, "log.set_locator") \
|
||||
ELEM_(Log_set_rst_in, "log.set_rst_in") \
|
||||
ELEM_(Log_set_rst_out, "log.set_rst_out") \
|
||||
\
|
||||
ELEM_(Io_in_use, "io.in_use") \
|
||||
ELEM_(Io_enable_kiss, "io.enable_kiss") \
|
||||
ELEM_(Io_enable_arq, "io.enable_arq") \
|
||||
ELEM_(Main_flmsg_online, "main.flmsg_online") \
|
||||
ELEM_(Main_flmsg_available, "main.flmsg_available") \
|
||||
ELEM_(Main_flmsg_transfer, "main.flmsg_transfer") \
|
||||
ELEM_(Main_flmsg_squelch, "main.flmsg_squelch") \
|
||||
\
|
||||
ELEM_(Text_get_rx_length, "text.get_rx_length") \
|
||||
ELEM_(Text_get_rx, "text.get_rx") \
|
||||
ELEM_(Text_clear_rx, "text.clear_rx") \
|
||||
ELEM_(Text_add_tx, "text.add_tx") \
|
||||
ELEM_(Text_add_tx_bytes, "text.add_tx_bytes") \
|
||||
ELEM_(Text_clear_tx, "text.clear_tx") \
|
||||
ELEM_(Io_in_use, "io.in_use") \
|
||||
ELEM_(Io_enable_kiss, "io.enable_kiss") \
|
||||
ELEM_(Io_enable_arq, "io.enable_arq") \
|
||||
\
|
||||
ELEM_(RXTX_get_data, "rxtx.get_data") \
|
||||
ELEM_(RX_get_data, "rx.get_data") \
|
||||
ELEM_(TX_get_data, "tx.get_data") \
|
||||
ELEM_(Text_get_rx_length, "text.get_rx_length") \
|
||||
ELEM_(Text_get_rx, "text.get_rx") \
|
||||
ELEM_(Text_clear_rx, "text.clear_rx") \
|
||||
ELEM_(Text_add_tx, "text.add_tx") \
|
||||
ELEM_(Text_add_tx_bytes, "text.add_tx_bytes") \
|
||||
ELEM_(Text_clear_tx, "text.clear_tx") \
|
||||
\
|
||||
ELEM_(Spot_get_auto, "spot.get_auto") \
|
||||
ELEM_(Spot_set_auto, "spot.set_auto") \
|
||||
ELEM_(Spot_toggle_auto, "spot.toggle_auto") \
|
||||
ELEM_(Spot_pskrep_get_count, "spot.pskrep.get_count") \
|
||||
ELEM_(RXTX_get_data, "rxtx.get_data") \
|
||||
ELEM_(RX_get_data, "rx.get_data") \
|
||||
ELEM_(TX_get_data, "tx.get_data") \
|
||||
\
|
||||
ELEM_(Wefax_state_string, "wefax.state_string") \
|
||||
ELEM_(Wefax_skip_apt, "wefax.skip_apt") \
|
||||
ELEM_(Wefax_skip_phasing, "wefax.skip_phasing") \
|
||||
ELEM_(Wefax_set_tx_abort_flag, "wefax.set_tx_abort_flag") \
|
||||
ELEM_(Wefax_end_reception, "wefax.end_reception") \
|
||||
ELEM_(Wefax_start_manual_reception, "wefax.start_manual_reception") \
|
||||
ELEM_(Wefax_set_adif_log, "wefax.set_adif_log") \
|
||||
ELEM_(Wefax_set_max_lines, "wefax.set_max_lines") \
|
||||
ELEM_(Wefax_get_received_file, "wefax.get_received_file") \
|
||||
ELEM_(Wefax_send_file, "wefax.send_file") \
|
||||
ELEM_(Spot_get_auto, "spot.get_auto") \
|
||||
ELEM_(Spot_set_auto, "spot.set_auto") \
|
||||
ELEM_(Spot_toggle_auto, "spot.toggle_auto") \
|
||||
ELEM_(Spot_pskrep_get_count, "spot.pskrep.get_count") \
|
||||
\
|
||||
ELEM_(Navtex_get_message, "navtex.get_message") \
|
||||
ELEM_(Navtex_send_message, "navtex.send_message") \
|
||||
ELEM_(Wefax_state_string, "wefax.state_string") \
|
||||
ELEM_(Wefax_skip_apt, "wefax.skip_apt") \
|
||||
ELEM_(Wefax_skip_phasing, "wefax.skip_phasing") \
|
||||
ELEM_(Wefax_set_tx_abort_flag, "wefax.set_tx_abort_flag") \
|
||||
ELEM_(Wefax_end_reception, "wefax.end_reception") \
|
||||
ELEM_(Wefax_start_manual_reception, "wefax.start_manual_reception") \
|
||||
ELEM_(Wefax_set_adif_log, "wefax.set_adif_log") \
|
||||
ELEM_(Wefax_set_max_lines, "wefax.set_max_lines") \
|
||||
ELEM_(Wefax_get_received_file, "wefax.get_received_file") \
|
||||
ELEM_(Wefax_send_file, "wefax.send_file") \
|
||||
\
|
||||
ELEM_(Navtex_get_message, "navtex.get_message") \
|
||||
ELEM_(Navtex_send_message, "navtex.send_message") \
|
||||
|
||||
struct rm_pred
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue