kopia lustrzana https://github.com/jamescoxon/dl-fldigi
WAIT macro
* Added <WAIT:nn> macro to allow a delayed start of the actual macro transmission by "nn" seconds. * Reorganized macro tags for macro editor, sorted alphabetically by categorypull/2/head
rodzic
2cfe7fc151
commit
ade6427def
|
@ -44,20 +44,23 @@ static Fl_Input* iInput;
|
|||
void loadBrowser(Fl_Widget *widget) {
|
||||
Fl_Browser *w = (Fl_Browser *)widget;
|
||||
/* Do not translate the tags lefthand-side */
|
||||
w->add(_("<FREQ>\tmy frequency"));
|
||||
w->add(_("<MODE>\tmode"));
|
||||
w->add(_("<MYCALL>\tmy call"));
|
||||
w->add(_("<MYLOC>\tmy locator"));
|
||||
w->add(_("<MYNAME>\tmy name"));
|
||||
w->add(_("<MYQTH>\tmy QTH"));
|
||||
w->add(_("<MYRST>\tmy RST"));
|
||||
w->add(_("<VER>\tFldigi version"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<CALL>\tother call"));
|
||||
w->add(_("<INFO1>\tS/N etc."));
|
||||
w->add(_("<INFO2>\tIMD etc."));
|
||||
w->add(_("<LOC>\tother locator"));
|
||||
w->add(_("<NAME>\tother name"));
|
||||
w->add(_("<QTH>\tother QTH"));
|
||||
w->add(_("<RST>\tother RST"));
|
||||
w->add(_("<INFO1>\tS/N etc."));
|
||||
w->add(_("<INFO2>\tIMD etc."));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<CLRRX>\tclear RX pane"));
|
||||
|
@ -66,15 +69,14 @@ void loadBrowser(Fl_Widget *widget) {
|
|||
w->add(_("<GET>\ttext to NAME/QTH"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<FREQ>\tmy frequency"));
|
||||
w->add(_("<MODE>\tmode"));
|
||||
w->add(_("<LOG>\tsave QSO data"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<QSOTIME>\tQSO time (HHMM))"));
|
||||
w->add(_("<LDT>\tLocal datetime"));
|
||||
w->add(_("<ILDT>\tLDT in iso-8601 format"));
|
||||
w->add(_("<ZDT>\tUTC datetime"));
|
||||
w->add(_("<LDT>\tLocal datetime"));
|
||||
w->add(_("<IZDT>\tZDT in iso-8601 format"));
|
||||
w->add(_("<ZDT>\tUTC datetime"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<CNTR>\tcontest counter"));
|
||||
|
@ -83,33 +85,34 @@ void loadBrowser(Fl_Widget *widget) {
|
|||
w->add(_("<XOUT>\texchange out"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<RX>\treceive"));
|
||||
w->add(_("<TX>\ttransmit"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<FILE:>\tinsert text file"));
|
||||
w->add(_("<IDLE:NN>\tidle signal for NN sec"));
|
||||
w->add(_("<TIMER:NN>\trepeat every NN sec"));
|
||||
w->add(_("<TUNE:NN>\ttune signal for NN sec"));
|
||||
w->add(_("<WAIT:NN>\tdelay xmt for NN sec"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<CWID>\tCW identifier"));
|
||||
w->add(_("<ID>\tmode ID"));
|
||||
w->add(_("<TEXT>\tvideo text"));
|
||||
w->add(_("<CWID>\tCW identifier"));
|
||||
w->add(_("<TXRSID:on|off|t>\tTx RSID on,off,toggle"));
|
||||
w->add(_("<RXRSID:on|off|t>\tRx RSID on,off,toggle"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<RX>\treceive"));
|
||||
w->add(_("<TX>\ttransmit"));
|
||||
w->add(_("<LOG>\tsave QSO data"));
|
||||
w->add(_("<VER>\tFldigi version"));
|
||||
w->add(_("<TIMER:NN>\trepeat every NN sec"));
|
||||
w->add(_("<IDLE:NN>\tidle signal for NN sec"));
|
||||
w->add(_("<TUNE:NN>\ttune signal for NN sec"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<WPM:NN>\tCW WPM"));
|
||||
w->add(_("<POST:+/-nn.n>\tCW QSK post-timing"));
|
||||
w->add(_("<PRE:nn.n>\tCW QSK pre-timing"));
|
||||
w->add(_("<RISE:nn.n>\tCW rise time"));
|
||||
w->add(_("<PRE:nn.n>\tQSK pre-timing"));
|
||||
w->add(_("<POST:+/-nn.n>\tQSK post-timing"));
|
||||
w->add(_("<WPM:NN>\tCW WPM"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<AFC:on|off|t>\tAFC on,off,toggle"));
|
||||
w->add(_("<LOCK:on|off|t>\tLOCK on,off,toggle"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
w->add(_("<FILE:>\tinsert text file"));
|
||||
w->add(_("<MACROS:>\tchange macro defs file"));
|
||||
|
||||
w->add(LINE_SEP);
|
||||
|
|
|
@ -83,6 +83,7 @@ void pAFC(string &, size_t &);
|
|||
void pLOCK(string &, size_t &);
|
||||
void pRX_RSID(string &, size_t &);
|
||||
void pTX_RSID(string &, size_t &);
|
||||
void pWAIT(string&, size_t &);
|
||||
//void pMACROS(string &, size_t &);
|
||||
|
||||
MTAGS mtags[] = {
|
||||
|
@ -120,6 +121,7 @@ MTAGS mtags[] = {
|
|||
{"<TIMER:", pTIMER},
|
||||
{"<IDLE:", pIDLE},
|
||||
{"<TUNE:", pTUNE},
|
||||
{"<WAIT:", pWAIT},
|
||||
{"<MODEM>", pMODEM},
|
||||
{"<EXEC>", pEXEC},
|
||||
{"<STOP>", pSTOP},
|
||||
|
@ -286,6 +288,22 @@ void pTUNE(string &s, size_t &i)
|
|||
s.replace(i, endbracket - i + 1, "");
|
||||
}
|
||||
|
||||
bool useWait = false;
|
||||
int waitTime = 0;
|
||||
|
||||
void pWAIT(string &s, size_t &i)
|
||||
{
|
||||
size_t endbracket = s.find('>',i);
|
||||
int number;
|
||||
string sTime = s.substr(i+6, endbracket - i - 6);
|
||||
if (sTime.length() > 0) {
|
||||
sscanf(sTime.c_str(), "%d", &number);
|
||||
useWait = true;
|
||||
waitTime = number;
|
||||
}
|
||||
s.replace(i, endbracket - i + 1, "");
|
||||
}
|
||||
|
||||
void pINFO1(string &s, size_t &i)
|
||||
{
|
||||
s.replace( i, 7, info1msg );
|
||||
|
@ -977,9 +995,37 @@ void insertTextAfter(void *)
|
|||
text2send.clear();
|
||||
}
|
||||
|
||||
void continueMacro(void *)
|
||||
{
|
||||
if ( TransmitON ) {
|
||||
active_modem->set_stopflag(false);
|
||||
start_tx();
|
||||
TransmitON = false;
|
||||
if (useIdle && idleTime > 0) {
|
||||
Fl::add_timeout(idleTime , insertTextAfter);
|
||||
useIdle = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
TransmitText->add( text2send.c_str() );
|
||||
text2send.clear();
|
||||
}
|
||||
|
||||
void finishTune(void *)
|
||||
{
|
||||
trx_receive();
|
||||
// delay to allow tx/rx loop to change state
|
||||
Fl::add_timeout(0.5, continueMacro);
|
||||
}
|
||||
|
||||
void finishWait(void *)
|
||||
{
|
||||
if (useTune && tuneTime > 0) {
|
||||
trx_tune();
|
||||
Fl::add_timeout(tuneTime, finishTune);
|
||||
useTune = false;
|
||||
return;
|
||||
}
|
||||
if ( TransmitON ) {
|
||||
active_modem->set_stopflag(false);
|
||||
start_tx();
|
||||
|
@ -997,6 +1043,11 @@ void finishTune(void *)
|
|||
void MACROTEXT::execute(int n)
|
||||
{
|
||||
text2send = expandMacro(n);
|
||||
if (useWait && waitTime > 0) {
|
||||
Fl::add_timeout(waitTime, finishWait);
|
||||
useWait = false;
|
||||
return;
|
||||
}
|
||||
if (useTune && tuneTime > 0) {
|
||||
trx_tune();
|
||||
Fl::add_timeout(tuneTime, finishTune);
|
||||
|
|
Ładowanie…
Reference in New Issue