* Fixed error in parsing returned heard list
  * Fixed save filename for # trigger
    - filename was not being saved with the .txt extension
    - append existing file
  * Changed time out processing of delayed response
    - added user configuration item for time out duration
pull/1/head
David Freese 2015-07-18 09:55:16 -05:00
rodzic 93196764e3
commit 7bdf051c3d
14 zmienionych plików z 164 dodań i 89 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#include "gettext.h"
#include "confdialog.h"
@ -2852,11 +2852,6 @@ btn_fsqbaud[2]->value(0);
progdefaults.changed = true;
}
static void cb_QTC(Fl_Input* o, void*) {
progdefaults.fsqQTCtext = o->value();
progdefaults.changed = true;
}
Fl_Choice *sel_fsq_frequency=(Fl_Choice *)0;
static void cb_sel_fsq_frequency(Fl_Choice* o, void*) {
@ -2878,6 +2873,18 @@ static void cb_btn_fsq_lowercase(Fl_Check_Button* o, void*) {
progdefaults.changed = true;
}
Fl_Counter *cntr_FSQ_time_out=(Fl_Counter *)0;
static void cb_cntr_FSQ_time_out(Fl_Counter* o, void*) {
progdefaults.fsq_time_out = o->value();
progdefaults.changed = true;
}
static void cb_QTC(Fl_Input* o, void*) {
progdefaults.fsqQTCtext = o->value();
progdefaults.changed = true;
}
Fl_Output *txtAuditLog=(Fl_Output *)0;
Fl_Light_Button *btn_enable_auditlog=(Fl_Light_Button *)0;
@ -5522,7 +5529,6 @@ Fl_Double_Window* ConfigureDialog() {
tabOperator->tooltip(_("Operator information"));
tabOperator->callback((Fl_Callback*)cb_tabOperator);
tabOperator->when(FL_WHEN_CHANGED);
tabOperator->hide();
{ Fl_Group* o = new Fl_Group(55, 35, 490, 170, _("Station"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
@ -5640,6 +5646,7 @@ Fl_Double_Window* ConfigureDialog() {
} // Fl_Group* tabOperator
{ tabUI = new Fl_Group(0, 25, 600, 355, _("UI"));
tabUI->tooltip(_("User Interface"));
tabUI->hide();
{ tabsUI = new Fl_Tabs(0, 25, 600, 355);
tabsUI->selection_color(FL_LIGHT1);
{ tabBrowser = new Fl_Group(0, 50, 600, 330, _("Browser"));
@ -7220,7 +7227,6 @@ i on a\ntouch screen device such as a tablet."));
tabsModems->selection_color(FL_LIGHT1);
tabsModems->align(Fl_Align(FL_ALIGN_TOP_RIGHT));
{ tabCW = new Fl_Group(0, 50, 600, 330, _("CW"));
tabCW->hide();
{ tabsCW = new Fl_Tabs(0, 50, 600, 330);
tabsCW->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 75, 600, 305, _("General"));
@ -8005,10 +8011,11 @@ i on a\ntouch screen device such as a tablet."));
tabFeld->end();
} // Fl_Group* tabFeld
{ tabFSQ = new Fl_Group(0, 50, 600, 330, _("FSQ"));
tabFSQ->hide();
{ Fl_Group* o = new Fl_Group(5, 60, 585, 80, _("Rx Parameters"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Value_Slider* o = valhits = new Fl_Value_Slider(140, 72, 125, 21, _("Min Hits"));
{ Fl_Value_Slider* o = valhits = new Fl_Value_Slider(140, 72, 125, 22, _("Min Hits"));
valhits->tooltip(_("Minimum # hits in tone detector"));
valhits->type(5);
valhits->minimum(3);
@ -8027,7 +8034,7 @@ i on a\ntouch screen device such as a tablet."));
o->add("None"); o->add("300 Hz"); o->add("400 Hz"); o->add("500 Hz");
o->value(progdefaults.fsq_img_filter);
} // Fl_Choice* sel_fsq_lpf
{ Fl_Value_Slider* o = sldrMovAvg = new Fl_Value_Slider(410, 72, 125, 21, _("MovAvg:"));
{ Fl_Value_Slider* o = sldrMovAvg = new Fl_Value_Slider(410, 72, 125, 22, _("MovAvg:"));
sldrMovAvg->tooltip(_("Filter FFT output"));
sldrMovAvg->type(1);
sldrMovAvg->minimum(1);
@ -8051,31 +8058,26 @@ i on a\ntouch screen device such as a tablet."));
{ Fl_Group* o = new Fl_Group(5, 150, 585, 135, _("Tx Parameters"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Round_Button* o = btn_fsqbaud[0] = new Fl_Round_Button(90, 180, 55, 15, _("2 baud"));
{ Fl_Round_Button* o = btn_fsqbaud[0] = new Fl_Round_Button(90, 173, 55, 15, _("2 baud"));
btn_fsqbaud[0]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[0]->callback((Fl_Callback*)cb_btn_fsqbaud);
o->value(progdefaults.fsqbaud == 2);
} // Fl_Round_Button* btn_fsqbaud[0]
{ Fl_Round_Button* o = btn_fsqbaud[1] = new Fl_Round_Button(198, 180, 55, 15, _("3 baud"));
{ Fl_Round_Button* o = btn_fsqbaud[1] = new Fl_Round_Button(198, 173, 55, 15, _("3 baud"));
btn_fsqbaud[1]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[1]->callback((Fl_Callback*)cb_btn_fsqbaud1);
o->value(progdefaults.fsqbaud == 3);
} // Fl_Round_Button* btn_fsqbaud[1]
{ Fl_Round_Button* o = btn_fsqbaud[2] = new Fl_Round_Button(306, 180, 55, 15, _("4.5 baud"));
{ Fl_Round_Button* o = btn_fsqbaud[2] = new Fl_Round_Button(306, 173, 55, 15, _("4.5 baud"));
btn_fsqbaud[2]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[2]->callback((Fl_Callback*)cb_btn_fsqbaud2);
o->value(progdefaults.fsqbaud == 4.5);
} // Fl_Round_Button* btn_fsqbaud[2]
{ Fl_Round_Button* o = btn_fsqbaud[3] = new Fl_Round_Button(415, 180, 55, 15, _("6 baud"));
{ Fl_Round_Button* o = btn_fsqbaud[3] = new Fl_Round_Button(415, 173, 55, 15, _("6 baud"));
btn_fsqbaud[3]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[3]->callback((Fl_Callback*)cb_btn_fsqbaud3);
o->value(progdefaults.fsqbaud == 6);
} // Fl_Round_Button* btn_fsqbaud[3]
{ Fl_Input* o = new Fl_Input(90, 253, 456, 23, _("QTC:"));
o->tooltip(_("Enter QTC text"));
o->callback((Fl_Callback*)cb_QTC);
o->value(progdefaults.fsqQTCtext.c_str());
} // Fl_Input* o
{ Fl_Choice* o = sel_fsq_frequency = new Fl_Choice(250, 219, 102, 21, _("Center freq"));
sel_fsq_frequency->down_box(FL_BORDER_BOX);
sel_fsq_frequency->callback((Fl_Callback*)cb_sel_fsq_frequency);
@ -8084,19 +8086,35 @@ i on a\ntouch screen device such as a tablet."));
o->add("1150"); o->add("1500"); o->add("Variable");
o->value(progdefaults.fsq_frequency);
} // Fl_Choice* sel_fsq_frequency
{ Fl_Choice* o = sel_fsq_sounder = new Fl_Choice(90, 214, 102, 21, _("Sounder"));
{ Fl_Choice* o = sel_fsq_sounder = new Fl_Choice(90, 195, 102, 21, _("Sounder"));
sel_fsq_sounder->tooltip(_("Send beacon every ..."));
sel_fsq_sounder->down_box(FL_BORDER_BOX);
sel_fsq_sounder->callback((Fl_Callback*)cb_sel_fsq_sounder);
o->add("OFF"); o->add("1 min"); o->add("10 min"); o->add("30 min");
o->value(progdefaults.fsq_sounder);
} // Fl_Choice* sel_fsq_sounder
{ Fl_Check_Button* o = btn_fsq_lowercase = new Fl_Check_Button(306, 217, 70, 15, _("MYCALL always lower case"));
{ Fl_Check_Button* o = btn_fsq_lowercase = new Fl_Check_Button(306, 198, 70, 15, _("MYCALL always lower case"));
btn_fsq_lowercase->tooltip(_("convert operator callsign to lower case"));
btn_fsq_lowercase->down_box(FL_DOWN_BOX);
btn_fsq_lowercase->callback((Fl_Callback*)cb_btn_fsq_lowercase);
o->value(progdefaults.fsq_lowercase);
} // Fl_Check_Button* btn_fsq_lowercase
{ Fl_Counter* o = cntr_FSQ_time_out = new Fl_Counter(90, 223, 102, 22, _("Time out"));
cntr_FSQ_time_out->tooltip(_("Time out xmt attempt in XX seconds"));
cntr_FSQ_time_out->type(1);
cntr_FSQ_time_out->minimum(2);
cntr_FSQ_time_out->maximum(20);
cntr_FSQ_time_out->step(1);
cntr_FSQ_time_out->value(6);
cntr_FSQ_time_out->callback((Fl_Callback*)cb_cntr_FSQ_time_out);
cntr_FSQ_time_out->align(Fl_Align(FL_ALIGN_LEFT));
o->value(progdefaults.fsq_time_out);
} // Fl_Counter* cntr_FSQ_time_out
{ Fl_Input* o = new Fl_Input(90, 253, 456, 23, _("QTC:"));
o->tooltip(_("Enter QTC text"));
o->callback((Fl_Callback*)cb_QTC);
o->value(progdefaults.fsqQTCtext.c_str());
} // Fl_Input* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 291, 585, 80, _("Logging"));

Wyświetl plik

@ -1,5 +1,5 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0302
version 1.0303
i18n_type 1
i18n_include "gettext.h"
i18n_function _
@ -151,8 +151,7 @@ Function {cbRxFontBrowser(Fl_Widget*, void*)} {open private return_type void
font_browser->hide();
progdefaults.changed = true;} {selected
}
progdefaults.changed = true;} {}
}
Function {cbTxFontBrowser(Fl_Widget*, void*)} {open private return_type void
@ -359,8 +358,8 @@ static const char szProsigns[] = "~|%|&|+|=|{|}|<|>|[|]| ";} {}
} {
Fl_Group tabOperator {
label Operator
callback {progdefaults.changed = true;} open
tooltip {Operator information} xywh {0 25 600 355} when 1 hide
callback {progdefaults.changed = true;} open selected
tooltip {Operator information} xywh {0 25 600 355} when 1
} {
Fl_Group {} {
label Station open
@ -450,7 +449,7 @@ progdefaults.changed = true;}
}
Fl_Group tabUI {
label UI open
tooltip {User Interface} xywh {0 25 600 355}
tooltip {User Interface} xywh {0 25 600 355} hide
} {
Fl_Tabs tabsUI {open
xywh {0 25 600 355} selection_color 50
@ -2828,7 +2827,7 @@ behaves inside the waterfall} xywh {65 207 150 22} box DOWN_BOX color 7 align 8
} {
Fl_Group tabCW {
label CW open
xywh {0 50 600 330} hide
xywh {0 50 600 330}
} {
Fl_Tabs tabsCW {open
xywh {0 50 600 330} selection_color 50
@ -3435,7 +3434,7 @@ progdefaults.changed = true;}
}
Fl_Group tabFSQ {
label FSQ open
xywh {0 50 600 330}
xywh {0 50 600 330} hide
} {
Fl_Group {} {
label {Rx Parameters} open
@ -3445,7 +3444,7 @@ progdefaults.changed = true;}
label {Min Hits}
callback {progdefaults.fsqhits=(int)o->value();
progdefaults.changed = true;}
tooltip {Minimum \# hits in tone detector} xywh {140 72 125 21} type {Horz Knob} align 8 minimum 3 maximum 6 step 1 value 3 textsize 14
tooltip {Minimum \# hits in tone detector} xywh {140 72 125 22} type {Horz Knob} align 8 minimum 3 maximum 6 step 1 value 3 textsize 14
code0 {o->value(progdefaults.fsqhits);}
}
Fl_Choice sel_fsq_lpf {
@ -3460,7 +3459,7 @@ progdefaults.changed = true;} open
label {MovAvg:}
callback {progdefaults.fsq_movavg = o->value();
progdefaults.changed = true;}
tooltip {Filter FFT output} xywh {410 72 125 21} type Horizontal align 4 minimum 1 maximum 4 step 1 value 4 textsize 14
tooltip {Filter FFT output} xywh {410 72 125 22} type Horizontal align 4 minimum 1 maximum 4 step 1 value 4 textsize 14
code0 {o->value(progdefaults.fsq_movavg);}
}
Fl_Choice sel_fsq_heard_aging {
@ -3485,7 +3484,7 @@ btn_fsqbaud[2]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;}
xywh {90 180 55 15} down_box ROUND_DOWN_BOX
xywh {90 173 55 15} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.fsqbaud == 2);}
}
Fl_Round_Button {btn_fsqbaud[1]} {
@ -3497,7 +3496,7 @@ btn_fsqbaud[2]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;}
xywh {198 180 55 15} down_box ROUND_DOWN_BOX
xywh {198 173 55 15} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.fsqbaud == 3);}
}
Fl_Round_Button {btn_fsqbaud[2]} {
@ -3509,7 +3508,7 @@ btn_fsqbaud[1]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;}
xywh {306 180 55 15} down_box ROUND_DOWN_BOX
xywh {306 173 55 15} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.fsqbaud == 4.5);}
}
Fl_Round_Button {btn_fsqbaud[3]} {
@ -3521,16 +3520,9 @@ btn_fsqbaud[1]->value(0);
btn_fsqbaud[2]->value(0);
}
progdefaults.changed = true;}
xywh {415 180 55 15} down_box ROUND_DOWN_BOX
xywh {415 173 55 15} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.fsqbaud == 6);}
}
Fl_Input {} {
label {QTC:}
callback {progdefaults.fsqQTCtext = o->value();
progdefaults.changed = true;}
tooltip {Enter QTC text} xywh {90 253 456 23}
code0 {o->value(progdefaults.fsqQTCtext.c_str());}
}
Fl_Choice sel_fsq_frequency {
label {Center freq}
callback {progdefaults.fsq_frequency=o->value();
@ -3543,7 +3535,7 @@ progdefaults.changed = true;} open
label Sounder
callback {progdefaults.fsq_sounder=o->value();
progdefaults.changed = true;} open
tooltip {Send beacon every ...} xywh {90 214 102 21} down_box BORDER_BOX
tooltip {Send beacon every ...} xywh {90 195 102 21} down_box BORDER_BOX
code0 {o->add("OFF"); o->add("1 min"); o->add("10 min"); o->add("30 min");}
code1 {o->value(progdefaults.fsq_sounder);}
} {}
@ -3551,9 +3543,23 @@ progdefaults.changed = true;} open
label {MYCALL always lower case}
callback {progdefaults.fsq_lowercase=o->value();
progdefaults.changed = true;}
tooltip {convert operator callsign to lower case} xywh {306 217 70 15} down_box DOWN_BOX
tooltip {convert operator callsign to lower case} xywh {306 198 70 15} down_box DOWN_BOX
code0 {o->value(progdefaults.fsq_lowercase);}
}
Fl_Counter cntr_FSQ_time_out {
label {Time out}
callback {progdefaults.fsq_time_out = o->value();
progdefaults.changed = true;}
tooltip {Time out xmt attempt in XX seconds} xywh {90 223 102 22} type Simple align 4 minimum 2 maximum 20 step 1 value 6
code0 {o->value(progdefaults.fsq_time_out);}
}
Fl_Input {} {
label {QTC:}
callback {progdefaults.fsqQTCtext = o->value();
progdefaults.changed = true;}
tooltip {Enter QTC text} xywh {90 253 456 23}
code0 {o->value(progdefaults.fsqQTCtext.c_str());}
}
}
Fl_Group {} {
label Logging open

Wyświetl plik

@ -8447,7 +8447,7 @@ void cb_heard_send_msg(Fl_Widget *w, void*)
fsq_tx_text->add(fsq_selected_call.c_str());
fsq_tx_text->add("#[");
fsq_tx_text->add(active_modem->fsq_mycall());
fsq_tx_text->add("] ");
fsq_tx_text->add("]");
fsq_tx_text->add(msg.c_str());
fsq_tx_text->add("^r");
start_tx();

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#include "gettext.h"
#include "notifydialog.h"

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#include "gettext.h"
#include "record_browse.h"

Wyświetl plik

@ -411,7 +411,7 @@ void fsq::parse_rx_text()
}
state = TEXT;
size_t p = rx_text.rfind(':');
size_t p = rx_text.find(':');
if (p == std::string::npos ||
p == 0 ||
rx_text.length() < p + 2) {
@ -547,6 +547,8 @@ void fsq::parse_rx_text()
void fsq::parse_space(bool all)
{
std::cout << rx_text << "\n";
if (all)
display_fsq_rx_text(toprint.append(rx_text).append("\n"), FTextBase::CTRL);
else
@ -690,17 +692,18 @@ void fsq::parse_pound(std::string relay)
else fname = station_calling;
fname.append(".txt");
}
if (fname.find(".txt") == std::string::npos) fname.append(".txt");
if (rx_text[rx_text.length() -1] != '\n') rx_text.append("\n");
std::ofstream rxfile;
fname.insert(0, TempDir);
if (!named_file) {
if (named_file) {
rxfile.open(fname.c_str(), ios::app);
} else {
rxfile.open(fname.c_str(), ios::out);
}
if (!rxfile) return;
rxfile << rx_text.substr(p2+1);
if (!named_file) rxfile << "\n";
rxfile.close();
display_fsq_rx_text(toprint.append(rx_text).append("\n"));
@ -1006,7 +1009,7 @@ void fsq::process_symbol(int sym)
if (rx_text.length() > 32768) rx_text.clear();
if ( fsq_squelch_open() || !progStatus.sqlonoff ) {
rx_text += curr_ch;
if (b_eol || b_eot) {
if (b_eot) {
parse_rx_text();
if (state == TEXT)
ch_sqlch_open = false;
@ -1429,7 +1432,7 @@ double fsq::xmtdelay() // in seconds
return delay;
}
static int xmt_tries = 8;
static float xmt_tries = 6.0; // timeout in nn seconds
void fsq_repeat_last_command()
{
@ -1447,52 +1450,53 @@ void timed_xmt(void *who)
fsq *me = (fsq *)who;
if (me != active_modem) return;
if (trx_state == STATE_TX) {
Fl::repeat_timeout(me->xmtdelay(), timed_xmt, me);
return;
}
if (me->fsq_squelch_open() && xmt_tries) {
xmt_tries--;
if ((trx_state == STATE_TX || me->fsq_squelch_open()) && xmt_tries > 0) {
float delay = me->xmtdelay();
xmt_tries -= delay;
if (xmt_tries <= 0) {
std::string failed = "\nTimed out waiting to transmit:\n \"";
failed.append(me->xmt_string).append("\"\n");
display_fsq_rx_text(failed);
fsq_que_clear();
return;
}
Fl::repeat_timeout(me->xmtdelay(), timed_xmt, me);
Fl::repeat_timeout(delay, timed_xmt, me);
return;
}
fsq_que_clear();
if (fsq_tx_text->eot()) fsq_transmit_string(me->xmt_string);
}
static double secs = 0;
static float secs = 0;
void fsq_add_tx_timeout(void *who)
{
fsq *me = (fsq *)who;
if (me != active_modem) return;
Fl::add_timeout(secs + me->xmtdelay(), timed_xmt, me);
Fl::add_timeout(secs, timed_xmt, me);
}
void fsq::reply(std::string s)
{
write_fsq_que(std::string("REPLY: ").append(s));
xmt_string = s;
xmt_string.append("^r");
xmt_tries = 16;
xmt_tries = progdefaults.fsq_time_out;
secs = 0.1;
Fl::awake(fsq_add_tx_timeout, this);
}
void fsq::delayed_reply(std::string s, int delay)
{
write_fsq_que(std::string("DELAYED REPLY: ").append(s));
xmt_string = s;
xmt_string.append("^r");
xmt_tries = 16;
xmt_tries = progdefaults.fsq_time_out;
secs = delay;
Fl::awake(fsq_add_tx_timeout, this);
}
static int try_tries = 8;
static float try_tries = 6.0;
void try_transmit(void *who)
{
@ -1503,13 +1507,14 @@ void try_transmit(void *who)
display_fsq_rx_text("\nWait for Rx!\n", FTextBase::ALTR);
return;
}
if (me->fsq_squelch_open() && try_tries) {
try_tries--;
if (me->fsq_squelch_open() && try_tries > 0) {
float delay = me->xmtdelay();
try_tries -= delay;
if (try_tries <= 0) {
display_fsq_rx_text("\nSquelch open. Transmit timed out!\n", FTextBase::ALTR);
return;
}
Fl::repeat_timeout(me->xmtdelay(), try_transmit, me);
Fl::repeat_timeout(delay, try_transmit, me);
return;
}
fsq_tx_text->add("^r");
@ -1519,8 +1524,8 @@ void try_transmit(void *who)
void fsq_transmit(void *who)
{
fsq *me = (fsq *)who;
try_tries = 16;
Fl::add_timeout(0, try_transmit, me);//me->xmtdelay(), try_transmit, me);
try_tries = progdefaults.fsq_time_out;
Fl::add_timeout(0, try_transmit, me);
}
//==============================================================================

Wyświetl plik

@ -44,11 +44,12 @@ using namespace std;
//
// External fsq monitor dialog
//
//
Fl_Double_Window *fsqMonitor = 0;
static Fl_Button *btnCloseMonitor;
FTextRX *fsq_monitor = 0;
FTextRX *fsq_que = 0;
static void cb_btnCloseMonitor(Fl_Button*, void*) {
progStatus.fsqMONITORxpos = fsqMonitor->x();
@ -67,22 +68,47 @@ Fl_Double_Window* create_fsqMonitor(void)
progStatus.fsqMONITORwidth, progStatus.fsqMONITORheight,
_("FSQ monitor"));
fsq_monitor = new FTextRX(
Panel *monitor_panel = new Panel(
2, 2,
w->w() - 4, w->h() - 28);
fsq_monitor->color(
fl_rgb_color(
0.98*progdefaults.RxColor.R,
0.98*progdefaults.RxColor.G,
0.98*progdefaults.RxColor.B),
progdefaults.RxTxSelectcolor);
fsq_monitor->setFont(progdefaults.RxFontnbr);
fsq_monitor->setFontSize(progdefaults.RxFontsize);
fsq_monitor->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
fsq_monitor = new FTextRX(
monitor_panel->x(), monitor_panel->y(),
monitor_panel->w(), 7*monitor_panel->h()/8);
fsq_monitor->color(
fl_rgb_color(
0.98*progdefaults.RxColor.R,
0.98*progdefaults.RxColor.G,
0.98*progdefaults.RxColor.B),
progdefaults.RxTxSelectcolor);
fsq_monitor->setFont(progdefaults.RxFontnbr);
fsq_monitor->setFontSize(progdefaults.RxFontsize);
fsq_monitor->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
fsq_que = new FTextRX(
fsq_monitor->x(), fsq_monitor->y() + fsq_monitor->h(),
fsq_monitor->w(), monitor_panel->h() - fsq_monitor->h());
fsq_que->color(
fl_rgb_color(
0.98*progdefaults.RxColor.R,
0.98*progdefaults.RxColor.G,
0.98*progdefaults.RxColor.B),
progdefaults.RxTxSelectcolor);
fsq_que->setFont(progdefaults.RxFontnbr);
fsq_que->setFontSize(progdefaults.RxFontsize);
fsq_que->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
Fl_Box *minbox = new Fl_Box(
monitor_panel->x(), monitor_panel->y() + 66,
monitor_panel->w(), monitor_panel->h() - 132);
minbox->hide();
monitor_panel->resizable(minbox);
monitor_panel->end();
Fl_Group *g = new Fl_Group(
fsq_monitor->x(), fsq_monitor->y() + fsq_monitor->h() + 2,
fsq_monitor->w(), 22);
fsq_monitor->x(), monitor_panel->y() + monitor_panel->h() + 2,
fsq_monitor->w(), 22);
Fl_Group *g1 = new Fl_Group(
g->x(), g->y() + 2, g->w() - 80, g->h());
g1->box(FL_FLAT_BOX);
@ -99,7 +125,7 @@ Fl_Double_Window* create_fsqMonitor(void)
w->end();
w->callback((Fl_Callback*)cb_btnCloseMonitor);
w->resizable(fsq_monitor);
w->resizable(monitor_panel);
w->size_range( 300, 200 );
w->xclass(PACKAGE_NAME);
@ -167,3 +193,15 @@ void write_fsqDebug(string s, int style)
REQ(&FTextRX::addstr, fsq_debug, s, style);
}
#endif
void fsq_que_clear()
{
REQ(&FTextRX::clear, fsq_que);
}
void write_fsq_que(std::string s)
{
if (!fsq_que) return;
REQ(&FTextRX::clear, fsq_que);
REQ(&FTextRX::addstr, fsq_que, s, FTextBase::ALTR);
}

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#ifndef confdialog_h
#define confdialog_h
@ -320,6 +320,7 @@ extern Fl_Round_Button *btn_fsqbaud[4];
extern Fl_Choice *sel_fsq_frequency;
extern Fl_Choice *sel_fsq_sounder;
extern Fl_Check_Button *btn_fsq_lowercase;
extern Fl_Counter *cntr_FSQ_time_out;
extern Fl_Output *txtAuditLog;
extern Fl_Light_Button *btn_enable_auditlog;
extern Fl_Button *btn_select_auditlog;

Wyświetl plik

@ -663,6 +663,9 @@
"0 - NO, 1 - YES\n" \
"convert operator MYCALL to lower case for directed call triggers", \
0) \
ELEM_(int, fsq_time_out, "FSQTIMEOUT", \
"Time out auto replies after XX seconds", \
6) \
ELEM_(bool, fsq_enable_heard_log, "FSQ_ENABLE_HEARD_LOG", \
"FSQ enable heard log file", \
1) \

Wyświetl plik

@ -27,6 +27,7 @@
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Pack.H>
#include <string>
#include "combo.h"
//#include "Fl_Tile_Check.h"
@ -130,7 +131,8 @@ extern FTextTX *fsq_tx_text;
extern Fl_Browser *fsq_heard;
extern Fl_Double_Window *fsqMonitor;
extern FTextRX *fsq_monitor;
extern FTextRX *fsq_monitor;
extern FTextRX *fsq_que;
extern Fl_Double_Window *create_fsqMonitor();
extern void open_fsqMonitor();
extern void close_fsqMonitor();
@ -141,6 +143,8 @@ extern void open_fsqDebug();
extern void close_fsqDebug();
extern void write_fsqDebug(int ch, int style = FTextBase::RECV);
extern void write_fsqDebug(std::string s, int style = FTextBase::RECV);
extern void fsq_que_clear();
extern void write_fsq_que(std::string s);
extern void fsq_disableshift();
extern void fsq_enableshift();

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#ifndef lgbook_h
#define lgbook_h

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#ifndef notifydialog_h
#define notifydialog_h

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#ifndef record_browse_h
#define record_browse_h

Wyświetl plik

@ -1,4 +1,4 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0302
// generated by Fast Light User Interface Designer (fluid) version 1.0303
#include "gettext.h"
#include "lgbook.h"