kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Merge with upstream
commit
4b41ce093d
|
@ -19,6 +19,14 @@ Change Log:
|
|||
Skipped text
|
||||
Alternate (quick view) text
|
||||
Background
|
||||
10) Changed the way that RTS/DTR PTT is used with rig.xml files
|
||||
11) Updated regular expression parser
|
||||
12) Modified <EXEC> passing of fd's to child processes
|
||||
13) Changed "no color" buttons to background vice background2 (white).
|
||||
Setting -bg <color> on command line switch now controls the "no color"
|
||||
value for the macro buttons.
|
||||
14) Fixed macro timer to properly reset if <TIMER> re-invoked during
|
||||
timeout period.
|
||||
|
||||
3.02
|
||||
1) Added hamlib interface for rig control
|
||||
|
|
|
@ -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, [3AG])
|
||||
m4_define(FLDIGI_PATCH, [3AI])
|
||||
|
||||
AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com])
|
||||
|
||||
|
|
|
@ -214,6 +214,11 @@ void Fl_ComboBox::value( const char *s )
|
|||
Output->value(datalist[i]->s);
|
||||
}
|
||||
|
||||
void Fl_ComboBox::put_value(const char *s)
|
||||
{
|
||||
value(s);
|
||||
}
|
||||
|
||||
void Fl_ComboBox::index(int i)
|
||||
{
|
||||
if (i >= 0 && i < listsize)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0109
|
||||
// generated by Fast Light User Interface Designer (fluid) version 1.0108
|
||||
|
||||
#include "confdialog.h"
|
||||
#include <config.h>
|
||||
|
@ -764,7 +764,7 @@ progdefaults.changed = true;
|
|||
Fl_Value_Slider *valPCMvolume=(Fl_Value_Slider *)0;
|
||||
|
||||
static void cb_valPCMvolume(Fl_Value_Slider* o, void*) {
|
||||
setPCMvolume(o->value() / 100.0);
|
||||
setPCMvolume(o->value());
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -2002,12 +2002,11 @@ l with your sound hardware.");
|
|||
valPCMvolume->type(5);
|
||||
valPCMvolume->color((Fl_Color)26);
|
||||
valPCMvolume->selection_color((Fl_Color)1);
|
||||
valPCMvolume->step(0.01);
|
||||
valPCMvolume->value(0.8);
|
||||
valPCMvolume->textsize(14);
|
||||
valPCMvolume->callback((Fl_Callback*)cb_valPCMvolume);
|
||||
valPCMvolume->align(FL_ALIGN_RIGHT);
|
||||
valPCMvolume->range(0.0, 100.0);
|
||||
valPCMvolume->step(1.0);
|
||||
} // Fl_Value_Slider* valPCMvolume
|
||||
{ Fl_Input_Choice* o = menuMix = new Fl_Input_Choice(105, 90, 110, 25, "Device");
|
||||
menuMix->callback((Fl_Callback*)cb_menuMix);
|
||||
|
@ -2188,6 +2187,7 @@ l with your sound hardware.");
|
|||
cntCWdash2dot->type(1);
|
||||
cntCWdash2dot->minimum(2.5);
|
||||
cntCWdash2dot->maximum(4);
|
||||
cntCWdash2dot->step(0.1);
|
||||
cntCWdash2dot->value(3);
|
||||
cntCWdash2dot->callback((Fl_Callback*)cb_cntCWdash2dot);
|
||||
cntCWdash2dot->align(FL_ALIGN_LEFT);
|
||||
|
@ -2197,6 +2197,7 @@ l with your sound hardware.");
|
|||
cntCWrisetime->type(1);
|
||||
cntCWrisetime->minimum(0);
|
||||
cntCWrisetime->maximum(15);
|
||||
cntCWrisetime->step(0.1);
|
||||
cntCWrisetime->value(4);
|
||||
cntCWrisetime->callback((Fl_Callback*)cb_cntCWrisetime);
|
||||
cntCWrisetime->align(FL_ALIGN_LEFT);
|
||||
|
@ -2259,6 +2260,7 @@ l with your sound hardware.");
|
|||
valTHOR_BW->type(1);
|
||||
valTHOR_BW->minimum(1);
|
||||
valTHOR_BW->maximum(2);
|
||||
valTHOR_BW->step(0.1);
|
||||
valTHOR_BW->value(1.5);
|
||||
valTHOR_BW->callback((Fl_Callback*)cb_valTHOR_BW);
|
||||
o->value(progdefaults.THOR_BW);
|
||||
|
@ -2308,6 +2310,7 @@ l with your sound hardware.");
|
|||
valDominoEX_BW->type(1);
|
||||
valDominoEX_BW->minimum(1);
|
||||
valDominoEX_BW->maximum(2);
|
||||
valDominoEX_BW->step(0.1);
|
||||
valDominoEX_BW->value(1.5);
|
||||
valDominoEX_BW->callback((Fl_Callback*)cb_valDominoEX_BW);
|
||||
o->value(progdefaults.DOMINOEX_BW);
|
||||
|
@ -2551,7 +2554,7 @@ l with your sound hardware.");
|
|||
btnMT63_8bit->callback((Fl_Callback*)cb_btnMT63_8bit);
|
||||
o->value(progdefaults.mt63_8bit);
|
||||
} // Fl_Check_Button* btnMT63_8bit
|
||||
{ Fl_Check_Button* o = btnmt63_interleave = new Fl_Check_Button(55, 120, 134, 15, "64 bit interleave");
|
||||
{ Fl_Check_Button* o = btnmt63_interleave = new Fl_Check_Button(55, 120, 186, 15, "64 bit interleave (long)");
|
||||
btnmt63_interleave->down_box(FL_DOWN_BOX);
|
||||
btnmt63_interleave->callback((Fl_Callback*)cb_btnmt63_interleave);
|
||||
o->value(0);if (progdefaults.mt63_interleave == 64) o->value(1);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0109
|
||||
version 1.0108
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
decl {\#include <config.h>} {}
|
||||
|
@ -908,12 +908,10 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Value_Slider valPCMvolume {
|
||||
label PCM
|
||||
callback {setPCMvolume(o->value() / 100.0);
|
||||
callback {setPCMvolume(o->value());
|
||||
progdefaults.changed = true;}
|
||||
xywh {19 125 340 21} type {Horz Knob} color 26 selection_color 1 align 8 value 0.8 textsize 14
|
||||
xywh {19 125 340 21} type {Horz Knob} color 26 selection_color 1 align 8 step 0.01 value 0.8 textsize 14
|
||||
code0 {extern void setPCMvolume(double);}
|
||||
code1 {valPCMvolume->range(0.0, 100.0);}
|
||||
code2 {valPCMvolume->step(1.0);}
|
||||
}
|
||||
Fl_Input_Choice menuMix {
|
||||
label Device
|
||||
|
@ -1089,14 +1087,14 @@ progdefaults.changed = true;}
|
|||
label {Dash/Dot}
|
||||
callback {progdefaults.CWdash2dot=o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {205 185 64 21} type Simple align 4 minimum 2.5 maximum 4 value 3
|
||||
xywh {205 185 64 21} type Simple align 4 minimum 2.5 maximum 4 step 0.1 value 3
|
||||
code0 {o->value(progdefaults.CWdash2dot);}
|
||||
}
|
||||
Fl_Counter cntCWrisetime {
|
||||
label Edge
|
||||
callback {progdefaults.CWrisetime=o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {325 185 65 21} type Simple align 4 minimum 0 maximum 15 value 4
|
||||
xywh {325 185 65 21} type Simple align 4 minimum 0 maximum 15 step 0.1 value 4
|
||||
code0 {o->value(progdefaults.CWrisetime);}
|
||||
}
|
||||
Fl_Counter cntCWdefWPM {
|
||||
|
@ -1151,7 +1149,7 @@ progdefaults.changed = true;}
|
|||
callback {progdefaults.THOR_BW = o->value();
|
||||
resetTHOR();
|
||||
progdefaults.changed = true;}
|
||||
xywh {20 130 63 21} type Simple minimum 1 maximum 2 value 1.5
|
||||
xywh {20 130 63 21} type Simple minimum 1 maximum 2 step 0.1 value 1.5
|
||||
code0 {o->value(progdefaults.THOR_BW);}
|
||||
}
|
||||
Fl_Check_Button valTHOR_FILTER {
|
||||
|
@ -1199,7 +1197,7 @@ progdefaults.changed = true;}
|
|||
callback {progdefaults.DOMINOEX_BW = o->value();
|
||||
resetDOMEX();
|
||||
progdefaults.changed = true;}
|
||||
xywh {20 130 63 21} type Simple minimum 1 maximum 2 value 1.5
|
||||
xywh {20 130 63 21} type Simple minimum 1 maximum 2 step 0.1 value 1.5
|
||||
code0 {o->value(progdefaults.DOMINOEX_BW);}
|
||||
}
|
||||
Fl_Check_Button valDominoEX_FILTER {
|
||||
|
@ -1468,13 +1466,13 @@ progdefaults.changed = true;}
|
|||
code0 {o->value(progdefaults.mt63_8bit);}
|
||||
}
|
||||
Fl_Check_Button btnmt63_interleave {
|
||||
label {64 bit interleave}
|
||||
label {64 bit interleave (long)}
|
||||
callback {if (o->value() == 1)
|
||||
progdefaults.mt63_interleave = 64;
|
||||
else
|
||||
progdefaults.mt63_interleave = 32;
|
||||
progdefaults.changed = true;}
|
||||
xywh {55 120 134 15} down_box DOWN_BOX
|
||||
xywh {55 120 186 15} down_box DOWN_BOX
|
||||
code0 {o->value(0);if (progdefaults.mt63_interleave == 64) o->value(1);}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -637,6 +637,13 @@ void init_modem(trx_mode mode)
|
|||
|
||||
clear_StatusMessages();
|
||||
progStatus.lastmode = mode;
|
||||
|
||||
if (wf->xmtlock->value() == 1) {
|
||||
wf->xmtlock->value(0);
|
||||
wf->xmtlock->damage();
|
||||
active_modem->set_freqlock(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void init_modem_sync(trx_mode m)
|
||||
|
@ -707,7 +714,7 @@ void colorize_macro(int i)
|
|||
progdefaults.btnFkeyTextColor.G,
|
||||
progdefaults.btnFkeyTextColor.B ));
|
||||
} else {
|
||||
btnMacro[i]->color(FL_BACKGROUND2_COLOR);
|
||||
btnMacro[i]->color(FL_BACKGROUND_COLOR);
|
||||
btnMacro[i]->labelcolor(FL_FOREGROUND_COLOR);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,6 +108,7 @@ class Fl_ComboBox : public Fl_Group {
|
|||
|
||||
const char *value ();
|
||||
void value (const char *);
|
||||
void put_value( const char *);
|
||||
void fl_popbrwsr(Fl_Widget *);
|
||||
|
||||
void type (int = 0);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0109
|
||||
// generated by Fast Light User Interface Designer (fluid) version 1.0108
|
||||
|
||||
#ifndef confdialog_h
|
||||
#define confdialog_h
|
||||
|
|
|
@ -96,6 +96,7 @@ private:
|
|||
double I11, I12, I21, I22, I31, I32;
|
||||
double snratio, s2n, imdratio, imd;
|
||||
double E1, E2, E3;
|
||||
double afcmetric;
|
||||
|
||||
// complex thirdorder;
|
||||
// tx variables & functions
|
||||
|
|
|
@ -286,7 +286,7 @@ enum TAG { \
|
|||
OLIVIATONES, OLIVIABW, OLIVIASMARGIN, OLIVIASINTEG, OLIVIA8BIT,
|
||||
THORBW, THORFILTER, THORSECTEXT, THORPATHS, THORSOFT, THORCWI,
|
||||
DOMINOEXBW, DOMINOEXFILTER, DOMINOEXFEC, DOMINOEXPATHS, DOMCWI,
|
||||
MT638BIT, MT63INTERLEAVE, FELDFONTNBR,
|
||||
FELDFONTNBR,
|
||||
HELLRCVWIDTH, HELLXMTWIDTH, HELLBLACKBOARD, HELLPULSEFAST, HELLXMTIDLE,
|
||||
WFPREFILTER, LATENCY,
|
||||
USECURSORLINES, USECURSORCENTERLINE, USEBWTRACKS,
|
||||
|
@ -318,7 +318,8 @@ enum TAG { \
|
|||
RXFONTNBR, RXFONTSIZE, RXFNTCOLOR, TXFONTNBR, TXFONTSIZE, TXFNTCOLOR,
|
||||
RXFONTCOLOR, TXFONTCOLOR, XMITCOLOR, CTRLCOLOR, SKIPCOLOR, ALTRCOLOR,
|
||||
WATERFALLFONTNBR, WATERFALLFONTSIZE, UISCHEME,
|
||||
RSIDWIDESEARCH, TRANSMITRSID, SLOWCPU
|
||||
RSIDWIDESEARCH, TRANSMITRSID, SLOWCPU,
|
||||
MT638BIT, MT63INTERLEAVE
|
||||
};
|
||||
|
||||
void writeXMLint(ofstream &f, const char * tag, int val)
|
||||
|
@ -440,8 +441,6 @@ void configuration::writeDefaultsXML()
|
|||
writeXMLbool(f, "DOMINOEXFEC", DOMINOEX_FEC);
|
||||
writeXMLint(f, "DOMINOEXPATHS", DOMINOEX_PATHS);
|
||||
writeXMLdbl(f, "DOMCWI", DomCWI);
|
||||
writeXMLbool(f, "MT638BIT", mt63_8bit);
|
||||
writeXMLint(f, "MT63INTERLEAVE", mt63_interleave);
|
||||
|
||||
writeXMLint(f, "FELDFONTNBR", feldfontnbr);
|
||||
writeXMLbool(f, "HELLRCVWIDTH", HellRcvWidth);
|
||||
|
@ -561,6 +560,9 @@ void configuration::writeDefaultsXML()
|
|||
writeXMLbool(f, "TRANSMITRSID", TransmitRSid);
|
||||
writeXMLbool(f, "SLOWCPU", slowcpu);
|
||||
|
||||
writeXMLbool(f, "MT638BIT", mt63_8bit);
|
||||
writeXMLint(f, "MT63INTERLEAVE", mt63_interleave);
|
||||
|
||||
f << "</FLDIGI_DEFS>\n";
|
||||
f.close();
|
||||
}
|
||||
|
@ -784,12 +786,6 @@ bool configuration::readDefaultsXML()
|
|||
case DOMCWI :
|
||||
DomCWI = atof(xml->getNodeData());
|
||||
break;
|
||||
case MT638BIT :
|
||||
mt63_8bit = atoi(xml->getNodeData());
|
||||
break;
|
||||
case MT63INTERLEAVE :
|
||||
mt63_interleave = atoi(xml->getNodeData());
|
||||
break;
|
||||
case FELDFONTNBR :
|
||||
feldfontnbr = atoi(xml->getNodeData());
|
||||
break;
|
||||
|
@ -1131,6 +1127,12 @@ bool configuration::readDefaultsXML()
|
|||
case SLOWCPU :
|
||||
slowcpu = atoi(xml->getNodeData());
|
||||
break;
|
||||
case MT638BIT :
|
||||
mt63_8bit = atoi(xml->getNodeData());
|
||||
break;
|
||||
case MT63INTERLEAVE :
|
||||
mt63_interleave = atoi(xml->getNodeData());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1205,8 +1207,6 @@ bool configuration::readDefaultsXML()
|
|||
else if (!strcmp("DOMINOEXFEC", nodeName)) tag = DOMINOEXFEC;
|
||||
else if (!strcmp("DOMINOEXPATHS", nodeName)) tag = DOMINOEXPATHS;
|
||||
else if (!strcmp("DOMCWI", nodeName)) tag = DOMCWI;
|
||||
else if (!strcmp("MT638BIT", nodeName)) tag = MT638BIT;
|
||||
else if (!strcmp("MT63INTERLEAVE", nodeName)) tag = MT63INTERLEAVE;
|
||||
else if (!strcmp("FELDFONTNBR", nodeName)) tag = FELDFONTNBR;
|
||||
else if (!strcmp("HELLRCVWIDTH", nodeName)) tag = HELLRCVWIDTH;
|
||||
else if (!strcmp("HELLXMTWIDTH", nodeName)) tag = HELLXMTWIDTH;
|
||||
|
@ -1307,10 +1307,13 @@ bool configuration::readDefaultsXML()
|
|||
else if (!strcmp("SKIPCOLOR", nodeName)) tag = SKIPCOLOR;
|
||||
else if (!strcmp("ALTRCOLOR", nodeName)) tag = ALTRCOLOR;
|
||||
else if (!strcmp("WATERFALLFONTNBR", nodeName)) tag = WATERFALLFONTNBR;
|
||||
else if (!strcmp("WATERFALLFONTSIZE", nodeName)) tag = WATERFALLFONTSIZE; else if (!strcmp("UISCHEME", nodeName)) tag = UISCHEME;
|
||||
else if (!strcmp("WATERFALLFONTSIZE", nodeName)) tag = WATERFALLFONTSIZE;
|
||||
else if (!strcmp("UISCHEME", nodeName)) tag = UISCHEME;
|
||||
else if (!strcmp("RSIDWIDESEARCH", nodeName)) tag = RSIDWIDESEARCH;
|
||||
else if (!strcmp("TRANSMITRSID", nodeName)) tag = TRANSMITRSID;
|
||||
else if (!strcmp("SLOWCPU", nodeName)) tag = SLOWCPU;
|
||||
else if (!strcmp("MT638BIT", nodeName)) tag = MT638BIT;
|
||||
else if (!strcmp("MT63INTERLEAVE", nodeName)) tag = MT63INTERLEAVE;
|
||||
else tag = IGNORE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -436,7 +436,7 @@ public:
|
|||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
*retval = xmlrpc_c::value_int(cntSearchRange->value());
|
||||
*retval = xmlrpc_c::value_int((int)cntSearchRange->value());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -450,8 +450,8 @@ public:
|
|||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
int v = cntSearchRange->value();
|
||||
REQ(set_valuator, cntSearchRange, params.getInt(0, cntSearchRange->minimum(), cntSearchRange->maximum()));
|
||||
int v = (int)(cntSearchRange->value());
|
||||
REQ(set_valuator, cntSearchRange, params.getInt(0, (int)cntSearchRange->minimum(), (int)cntSearchRange->maximum()));
|
||||
*retval = xmlrpc_c::value_int(v);
|
||||
}
|
||||
};
|
||||
|
@ -466,7 +466,7 @@ public:
|
|||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
int v = cntSearchRange->value() + params.getInt(0);
|
||||
int v = (int)(cntSearchRange->value() + params.getInt(0));
|
||||
REQ(set_valuator, cntSearchRange, v);
|
||||
*retval = xmlrpc_c::value_int(v);
|
||||
}
|
||||
|
@ -499,7 +499,7 @@ public:
|
|||
throw xmlrpc_c::fault("Operation not supported by modem", xmlrpc_c::fault::code_t(0));
|
||||
}
|
||||
|
||||
*retval = xmlrpc_c::value_int(val->value());
|
||||
*retval = xmlrpc_c::value_int((int)val->value());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -525,8 +525,8 @@ public:
|
|||
throw xmlrpc_c::fault("Operation not supported by modem", xmlrpc_c::fault::code_t(0));
|
||||
}
|
||||
|
||||
int v = val->value();
|
||||
REQ(set_valuator, val, params.getInt(0, val->minimum(), val->maximum()));
|
||||
int v = (int)(val->value());
|
||||
REQ(set_valuator, val, params.getInt(0, (int)val->minimum(), (int)val->maximum()));
|
||||
*retval = xmlrpc_c::value_int(v);
|
||||
}
|
||||
};
|
||||
|
@ -553,7 +553,7 @@ public:
|
|||
throw xmlrpc_c::fault("Operation not supported by modem", xmlrpc_c::fault::code_t(0));
|
||||
}
|
||||
|
||||
int v = val->value() + params.getInt(0);
|
||||
int v = (int)(val->value() + params.getInt(0));
|
||||
REQ(set_valuator, val, v);
|
||||
*retval = xmlrpc_c::value_int(v);
|
||||
}
|
||||
|
@ -676,10 +676,10 @@ public:
|
|||
double d = wf->rfcarrier();
|
||||
double rfc = params.getDouble(0, 0.0);
|
||||
int mc = active_modem->get_freq();
|
||||
rigCAT_set_qsy(rfc, mc);
|
||||
rigMEM_set_qsy(rfc, mc);
|
||||
rigCAT_set_qsy((long long int)rfc, mc);
|
||||
rigMEM_set_qsy((long long int)rfc, mc);
|
||||
#if USE_HAMLIB
|
||||
hamlib_set_qsy(rfc, mc);
|
||||
hamlib_set_qsy((long long int)rfc, mc);
|
||||
#endif
|
||||
*retval = xmlrpc_c::value_double(d);
|
||||
}
|
||||
|
@ -697,10 +697,10 @@ public:
|
|||
{
|
||||
double rfc = wf->rfcarrier() + params.getDouble(0);
|
||||
int mc = active_modem->get_freq();
|
||||
rigCAT_set_qsy(rfc, mc);
|
||||
rigMEM_set_qsy(rfc, mc);
|
||||
rigCAT_set_qsy((long long int)rfc, mc);
|
||||
rigMEM_set_qsy((long long int)rfc, mc);
|
||||
#if USE_HAMLIB
|
||||
hamlib_set_qsy(rfc, mc);
|
||||
hamlib_set_qsy((long long int)rfc, mc);
|
||||
#endif
|
||||
*retval = xmlrpc_c::value_double(rfc);
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ void psk::rx_init()
|
|||
resetSN_IMD();
|
||||
imdValid = false;
|
||||
set_AFCrange(1.0);
|
||||
afcmetric = 0.0;
|
||||
}
|
||||
|
||||
void psk::restart()
|
||||
|
@ -366,6 +367,8 @@ void psk::findsignal()
|
|||
void psk::phaseafc()
|
||||
{
|
||||
double error;
|
||||
if (afcmetric < 0.05) return;
|
||||
|
||||
error = (phase - bits * M_PI / 2.0);
|
||||
if (error < -M_PI/2.0)
|
||||
error += TWOPI;
|
||||
|
@ -410,6 +413,7 @@ void psk::rx_symbol(complex symbol)
|
|||
quality.im = decayavg(quality.im, sin(n*phase), SQLDECAY);
|
||||
|
||||
metric = 100.0 * quality.norm();
|
||||
afcmetric = decayavg(afcmetric, quality.norm(), 50);
|
||||
|
||||
dcdshreg = (dcdshreg << 2) | bits;
|
||||
|
||||
|
|
|
@ -384,7 +384,6 @@ static void *hamlib_loop(void *args)
|
|||
if (freq == 0) {
|
||||
fl_unlock (&hamlib_mutex);
|
||||
continue;
|
||||
// hamlib_exit = true;
|
||||
}
|
||||
}
|
||||
catch (const RigException& Ex) {
|
||||
|
@ -416,9 +415,7 @@ static void *hamlib_loop(void *args)
|
|||
|
||||
if (freqok && freq && (freq != hamlib_freq)) {
|
||||
hamlib_freq = freq;
|
||||
FL_LOCK_D();
|
||||
FreqDisp->value(hamlib_freq);
|
||||
FL_UNLOCK_D();
|
||||
FreqDisp->value(hamlib_freq);
|
||||
wf->rfcarrier(hamlib_freq);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "rigio.h"
|
||||
#include "debug.h"
|
||||
#include "threads.h"
|
||||
#include "qrunner.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -371,7 +372,7 @@ long long rigCAT_getfreq()
|
|||
if (itrCmd == commands.end()) {
|
||||
LOG_DEBUG("Cmd not defined");
|
||||
nonCATrig = true;
|
||||
return -1; // get_freq command is not defined!
|
||||
return -2; // get_freq command is not defined!
|
||||
}
|
||||
|
||||
modeCmd = *itrCmd;
|
||||
|
@ -962,10 +963,10 @@ bool rigCAT_init()
|
|||
|
||||
nonCATrig = false;
|
||||
|
||||
if (rigCAT_getfreq() <= 0) {
|
||||
if (rigCAT_getfreq() == -1) {
|
||||
LOG_ERROR("Xcvr Freq request not answered");
|
||||
// rigio.ClosePort();
|
||||
// return false;
|
||||
rigio.ClosePort();
|
||||
return false;
|
||||
}
|
||||
|
||||
rigCAT_sendINIT();
|
||||
|
@ -1061,10 +1062,9 @@ static void *rigCAT_loop(void *args)
|
|||
|
||||
long long freq = 0L;
|
||||
string sWidth, sMode;
|
||||
int cntr = 10;
|
||||
|
||||
for (;;) {
|
||||
MilliSleep(10);
|
||||
MilliSleep(100);
|
||||
|
||||
if (rigCAT_bypass == true)
|
||||
goto loop;
|
||||
|
@ -1076,41 +1076,26 @@ static void *rigCAT_loop(void *args)
|
|||
freq = rigCAT_getfreq();
|
||||
fl_unlock(&rigCAT_mutex);
|
||||
|
||||
if (freq <= 0)
|
||||
goto loop;
|
||||
if (freq != llFreq) {
|
||||
llFreq = freq;
|
||||
// FL_LOCK_D();
|
||||
FreqDisp->value(freq);
|
||||
// FL_UNLOCK_D();
|
||||
FreqDisp->value(freq); // REQ is built in to the widget
|
||||
wf->rfcarrier(freq);
|
||||
}
|
||||
|
||||
if (--cntr % 5)
|
||||
if (rigCAT_exit == true)
|
||||
goto exitloop;
|
||||
if (rigCAT_bypass == true)
|
||||
goto loop;
|
||||
|
||||
if (cntr == 5) {
|
||||
if (rigCAT_exit == true)
|
||||
goto exitloop;
|
||||
if (rigCAT_bypass == true)
|
||||
goto loop;
|
||||
|
||||
fl_lock(&rigCAT_mutex);
|
||||
sWidth = rigCAT_getwidth();
|
||||
fl_unlock(&rigCAT_mutex);
|
||||
fl_lock(&rigCAT_mutex);
|
||||
sWidth = rigCAT_getwidth();
|
||||
fl_unlock(&rigCAT_mutex);
|
||||
|
||||
if (sWidth.size() && sWidth != sRigWidth) {
|
||||
sRigWidth = sWidth;
|
||||
FL_LOCK();
|
||||
opBW->value(sWidth.c_str());
|
||||
FL_UNLOCK();
|
||||
FL_AWAKE();
|
||||
}
|
||||
goto loop;
|
||||
if (sWidth.size() && sWidth != sRigWidth) {
|
||||
sRigWidth = sWidth;
|
||||
REQ(&Fl_ComboBox::put_value, opBW, sWidth.c_str());
|
||||
}
|
||||
|
||||
cntr = 10;
|
||||
|
||||
if (rigCAT_exit == true)
|
||||
goto exitloop;
|
||||
if (rigCAT_bypass == true)
|
||||
|
@ -1120,20 +1105,13 @@ static void *rigCAT_loop(void *args)
|
|||
sMode = rigCAT_getmode();
|
||||
fl_unlock(&rigCAT_mutex);
|
||||
|
||||
if (rigCAT_exit == true)
|
||||
goto exitloop;
|
||||
if (rigCAT_bypass == true)
|
||||
goto loop;
|
||||
if (sMode.size() && sMode != sRigMode) {
|
||||
sRigMode = sMode;
|
||||
if (ModeIsLSB(sMode))
|
||||
wf->USB(false);
|
||||
else
|
||||
wf->USB(true);
|
||||
FL_LOCK();
|
||||
opMODE->value(sMode.c_str());
|
||||
FL_UNLOCK();
|
||||
FL_AWAKE();
|
||||
REQ(&Fl_ComboBox::put_value, opMODE, sMode.c_str());
|
||||
}
|
||||
loop:
|
||||
continue;
|
||||
|
|
|
@ -435,12 +435,13 @@ void trx_reset(void)
|
|||
|
||||
//=============================================================================
|
||||
static char timermsg[80];
|
||||
static int countdown = 1;
|
||||
static void macro_timer(void *)
|
||||
{
|
||||
if (progdefaults.useTimer == false)
|
||||
return;
|
||||
progdefaults.timeout--;
|
||||
if (progdefaults.timeout == 0) {
|
||||
countdown--;
|
||||
if (countdown == 0) {
|
||||
progdefaults.useTimer = false;
|
||||
macros.execute(progdefaults.macronumber);
|
||||
FL_LOCK();
|
||||
|
@ -448,7 +449,7 @@ static void macro_timer(void *)
|
|||
btnMacroDummy->show();
|
||||
FL_UNLOCK();
|
||||
} else {
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", progdefaults.timeout);
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", countdown);
|
||||
FL_LOCK();
|
||||
btnMacroTimer->label(timermsg);
|
||||
btnMacroTimer->redraw_label();
|
||||
|
@ -460,8 +461,9 @@ static void macro_timer(void *)
|
|||
//=============================================================================
|
||||
void trx_start_macro_timer()
|
||||
{
|
||||
countdown = progdefaults.timeout;
|
||||
Fl::add_timeout(1.0, macro_timer);
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", progdefaults.timeout);
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", countdown);
|
||||
FL_LOCK();
|
||||
btnMacroTimer->label(timermsg);
|
||||
btnMacroTimer->redraw_label();
|
||||
|
|
Ładowanie…
Reference in New Issue