Hamlib modification

* added Write Delay control
    * renamed Command Delay to Post Write Delay
pull/2/head
David Freese 2009-03-14 15:45:54 -05:00
rodzic 35fe37b48e
commit 228a4bd67e
5 zmienionych plików z 75 dodań i 41 usunięć

Wyświetl plik

@ -1490,6 +1490,15 @@ btnInitHAMLIB->redraw_label();
progdefaults.changed = true;
}
Fl_Counter *cntHamlibWriteDelay=(Fl_Counter *)0;
static void cb_cntHamlibWriteDelay(Fl_Counter* o, void*) {
progdefaults.HamlibWriteDelay = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;
}
Fl_Group *grpMemmap=(Fl_Group *)0;
Fl_Check_Button *chkUSEMEMMAP=(Fl_Check_Button *)0;
@ -2069,7 +2078,6 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
{ tabOperator = new Fl_Group(0, 25, 500, 345, _("Operator"));
tabOperator->callback((Fl_Callback*)cb_tabOperator);
tabOperator->when(FL_WHEN_CHANGED);
tabOperator->hide();
{ Fl_Group* o = new Fl_Group(5, 35, 490, 165, _("Station"));
o->box(FL_ENGRAVED_FRAME);
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
@ -3421,6 +3429,7 @@ an merging"));
tabModems->end();
} // Fl_Group* tabModems
{ tabRig = new Fl_Group(0, 25, 500, 345, _("Rig"));
tabRig->hide();
{ tabsRig = new Fl_Tabs(0, 25, 500, 345);
tabsRig->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 50, 500, 320, _("Hardware PTT"));
@ -3611,9 +3620,9 @@ an merging"));
chkUSEHAMLIB->down_box(FL_DOWN_BOX);
chkUSEHAMLIB->callback((Fl_Callback*)cb_chkUSEHAMLIB);
} // Fl_Check_Button* chkUSEHAMLIB
{ grpHamlib = new Fl_Group(5, 85, 490, 277);
{ grpHamlib = new Fl_Group(5, 83, 490, 277);
grpHamlib->box(FL_ENGRAVED_FRAME);
{ Fl_ComboBox* o = cboHamlibRig = new Fl_ComboBox(46, 95, 160, 22, _("Rig:"));
{ Fl_ComboBox* o = cboHamlibRig = new Fl_ComboBox(65, 93, 160, 22, _("Rig:"));
cboHamlibRig->tooltip(_("Select the rig by name"));
cboHamlibRig->box(FL_DOWN_BOX);
cboHamlibRig->color(FL_BACKGROUND2_COLOR);
@ -3627,19 +3636,20 @@ an merging"));
cboHamlibRig->when(FL_WHEN_RELEASE);
o->readonly();
} // Fl_ComboBox* cboHamlibRig
{ Fl_Input_Choice* o = inpRIGdev = new Fl_Input_Choice(340, 95, 144, 22, _("Device:"));
{ Fl_Input_Choice* o = inpRIGdev = new Fl_Input_Choice(340, 93, 144, 22, _("Device:"));
inpRIGdev->tooltip(_("Serial port"));
inpRIGdev->callback((Fl_Callback*)cb_inpRIGdev);
o->value(progdefaults.HamRigDevice.c_str());
} // Fl_Input_Choice* inpRIGdev
{ Fl_Choice* o = mnuBaudRate = new Fl_Choice(385, 127, 99, 22, _("Baud rate:"));
{ Fl_Choice* o = mnuBaudRate = new Fl_Choice(385, 139, 99, 22, _("Baud rate:"));
mnuBaudRate->tooltip(_("Serial port baud rate"));
mnuBaudRate->down_box(FL_BORDER_BOX);
mnuBaudRate->callback((Fl_Callback*)cb_mnuBaudRate);
mnuBaudRate->align(FL_ALIGN_TOP_LEFT);
o->add(szBaudRates);
o->value(progdefaults.HamRigBaudrate);
} // Fl_Choice* mnuBaudRate
{ Fl_Counter* o = cntHamlibtRetries = new Fl_Counter(15, 146, 75, 20, _("Retries"));
{ Fl_Counter* o = cntHamlibtRetries = new Fl_Counter(15, 140, 75, 20, _("Retries"));
cntHamlibtRetries->tooltip(_("Number of times to resend\ncommand before giving up"));
cntHamlibtRetries->type(1);
cntHamlibtRetries->minimum(1);
@ -3647,10 +3657,10 @@ an merging"));
cntHamlibtRetries->step(1);
cntHamlibtRetries->value(5);
cntHamlibtRetries->callback((Fl_Callback*)cb_cntHamlibtRetries);
cntHamlibtRetries->align(FL_ALIGN_TOP);
cntHamlibtRetries->align(FL_ALIGN_TOP_LEFT);
o->value(progdefaults.HamlibRetries);
} // Fl_Counter* cntHamlibtRetries
{ Fl_Counter* o = cntHamlibTimeout = new Fl_Counter(131, 146, 75, 20, _("Retry interval (ms)"));
{ Fl_Counter* o = cntHamlibTimeout = new Fl_Counter(150, 140, 75, 20, _("Retry interval (ms)"));
cntHamlibTimeout->tooltip(_("Msec\'s between retries"));
cntHamlibTimeout->type(1);
cntHamlibTimeout->minimum(2);
@ -3658,10 +3668,10 @@ an merging"));
cntHamlibTimeout->step(1);
cntHamlibTimeout->value(10);
cntHamlibTimeout->callback((Fl_Callback*)cb_cntHamlibTimeout);
cntHamlibTimeout->align(FL_ALIGN_TOP);
cntHamlibTimeout->align(FL_ALIGN_TOP_LEFT);
o->value(progdefaults.HamlibTimeout);
} // Fl_Counter* cntHamlibTimeout
{ Fl_Counter* o = cntHamlibWait = new Fl_Counter(15, 177, 75, 20, _("Command interval (ms)"));
{ Fl_Counter* o = cntHamlibWait = new Fl_Counter(150, 186, 75, 20, _("Post write delay (ms)"));
cntHamlibWait->tooltip(_("Msec\'s between sequential commands"));
cntHamlibWait->type(1);
cntHamlibWait->minimum(0);
@ -3669,10 +3679,10 @@ an merging"));
cntHamlibWait->step(1);
cntHamlibWait->value(5);
cntHamlibWait->callback((Fl_Callback*)cb_cntHamlibWait);
cntHamlibWait->align(FL_ALIGN_RIGHT);
cntHamlibWait->align(FL_ALIGN_TOP_LEFT);
o->value(progdefaults.HamlibWait);
} // Fl_Counter* cntHamlibWait
{ inpHamlibConfig = new Fl_Input2(20, 328, 320, 22, _("Advanced configuration:"));
{ inpHamlibConfig = new Fl_Input2(20, 326, 320, 22, _("Advanced configuration:"));
inpHamlibConfig->tooltip(_("Optional configuration\nin format: param=val ..."));
inpHamlibConfig->box(FL_DOWN_BOX);
inpHamlibConfig->color(FL_BACKGROUND2_COLOR);
@ -3682,51 +3692,61 @@ an merging"));
inpHamlibConfig->labelsize(14);
inpHamlibConfig->labelcolor(FL_FOREGROUND_COLOR);
inpHamlibConfig->callback((Fl_Callback*)cb_inpHamlibConfig);
inpHamlibConfig->align(FL_ALIGN_TOP);
inpHamlibConfig->align(FL_ALIGN_TOP_LEFT);
inpHamlibConfig->when(FL_WHEN_RELEASE);
inpHamlibConfig->value(progdefaults.HamConfig.c_str());
} // Fl_Input2* inpHamlibConfig
{ btnInitHAMLIB = new Fl_Button(371, 327, 113, 24, _("Initialize"));
{ btnInitHAMLIB = new Fl_Button(371, 325, 113, 24, _("Initialize"));
btnInitHAMLIB->tooltip(_("Initialize hamlib interface"));
btnInitHAMLIB->callback((Fl_Callback*)cb_btnInitHAMLIB);
} // Fl_Button* btnInitHAMLIB
{ mnuSideband = new Fl_Choice(340, 175, 144, 22, _("Sideband:"));
{ mnuSideband = new Fl_Choice(340, 217, 144, 22, _("Sideband:"));
mnuSideband->tooltip(_("Force the rig sideband. Takes\neffect when rig mode changes."));
mnuSideband->down_box(FL_BORDER_BOX);
mnuSideband->callback((Fl_Callback*)cb_mnuSideband);
mnuSideband->align(FL_ALIGN_TOP);
mnuSideband->align(FL_ALIGN_TOP_LEFT);
} // Fl_Choice* mnuSideband
{ Fl_Round_Button* o = btnHamlibCMDptt = new Fl_Round_Button(45, 215, 200, 20, _("PTT via Hamlib command"));
{ Fl_Round_Button* o = btnHamlibCMDptt = new Fl_Round_Button(45, 218, 200, 20, _("PTT via Hamlib command"));
btnHamlibCMDptt->tooltip(_("PTT is a hamlib command"));
btnHamlibCMDptt->down_box(FL_DIAMOND_DOWN_BOX);
btnHamlibCMDptt->selection_color((Fl_Color)1);
btnHamlibCMDptt->callback((Fl_Callback*)cb_btnHamlibCMDptt);
o->value(progdefaults.HamlibCMDptt);
} // Fl_Round_Button* btnHamlibCMDptt
{ Fl_Check_Button* o = btnHamlibDTRplus = new Fl_Check_Button(45, 246, 90, 20, _("DTR +12"));
{ Fl_Check_Button* o = btnHamlibDTRplus = new Fl_Check_Button(45, 248, 90, 20, _("DTR +12"));
btnHamlibDTRplus->tooltip(_("Initial state of DTR"));
btnHamlibDTRplus->down_box(FL_DOWN_BOX);
btnHamlibDTRplus->callback((Fl_Callback*)cb_btnHamlibDTRplus);
o->value(progdefaults.HamlibDTRplus);
} // Fl_Check_Button* btnHamlibDTRplus
{ Fl_Check_Button* o = chkHamlibRTSplus = new Fl_Check_Button(269, 246, 85, 20, _("RTS +12"));
{ Fl_Check_Button* o = chkHamlibRTSplus = new Fl_Check_Button(269, 248, 85, 20, _("RTS +12"));
chkHamlibRTSplus->tooltip(_("Initial state of RTS"));
chkHamlibRTSplus->down_box(FL_DOWN_BOX);
chkHamlibRTSplus->callback((Fl_Callback*)cb_chkHamlibRTSplus);
o->value(progdefaults.HamlibRTSplus);
} // Fl_Check_Button* chkHamlibRTSplus
{ Fl_Check_Button* o = chkHamlibRTSCTSflow = new Fl_Check_Button(45, 280, 170, 20, _("RTS/CTS flow control"));
{ Fl_Check_Button* o = chkHamlibRTSCTSflow = new Fl_Check_Button(45, 281, 170, 20, _("RTS/CTS flow control"));
chkHamlibRTSCTSflow->tooltip(_("Rig requires RTS/CTS flow control"));
chkHamlibRTSCTSflow->down_box(FL_DOWN_BOX);
chkHamlibRTSCTSflow->callback((Fl_Callback*)cb_chkHamlibRTSCTSflow);
o->value(progdefaults.HamlibRTSCTSflow);
} // Fl_Check_Button* chkHamlibRTSCTSflow
{ Fl_Check_Button* o = chkHamlibXONXOFFflow = new Fl_Check_Button(269, 280, 185, 20, _("XON/XOFF flow control"));
{ Fl_Check_Button* o = chkHamlibXONXOFFflow = new Fl_Check_Button(269, 281, 185, 20, _("XON/XOFF flow control"));
chkHamlibXONXOFFflow->tooltip(_("Rig requires Xon/Xoff flow control"));
chkHamlibXONXOFFflow->down_box(FL_DOWN_BOX);
chkHamlibXONXOFFflow->callback((Fl_Callback*)cb_chkHamlibXONXOFFflow);
o->value(progdefaults.HamlibXONXOFFflow);
} // Fl_Check_Button* chkHamlibXONXOFFflow
{ Fl_Counter* o = cntHamlibWriteDelay = new Fl_Counter(15, 186, 75, 20, _("Write delay (ms)"));
cntHamlibWriteDelay->tooltip(_("Msec\'s between sequential commands"));
cntHamlibWriteDelay->type(1);
cntHamlibWriteDelay->minimum(0);
cntHamlibWriteDelay->maximum(100);
cntHamlibWriteDelay->step(1);
cntHamlibWriteDelay->callback((Fl_Callback*)cb_cntHamlibWriteDelay);
cntHamlibWriteDelay->align(FL_ALIGN_TOP_LEFT);
o->value(progdefaults.HamlibWriteDelay);
} // Fl_Counter* cntHamlibWriteDelay
grpHamlib->end();
} // Fl_Group* grpHamlib
tabHamlib->end();

Wyświetl plik

@ -81,8 +81,8 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
} {
Fl_Group tabOperator {
label Operator
callback {progdefaults.changed = true;} open
xywh {0 25 500 345} when 1 hide
callback {progdefaults.changed = true;} open selected
xywh {0 25 500 345} when 1
} {
Fl_Group {} {
label Station open
@ -1400,7 +1400,7 @@ progdefaults.changed = true;}
}
Fl_Group tabRig {
label Rig open
xywh {0 25 500 345}
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsRig {open
xywh {0 25 500 345} selection_color 50
@ -1475,7 +1475,7 @@ progdefaults.changed = true;}
code0 {o->value(progdefaults.PTTrightchannel);}
}
}
Fl_Group {} {open selected
Fl_Group {} {open
xywh {5 292 490 72} box ENGRAVED_FRAME
} {
Fl_Check_Button btnUsePPortPTT {
@ -1693,14 +1693,14 @@ progdefaults.changed = true;}
tooltip {Hamlib used for rig control} xywh {195 60 100 20} down_box DOWN_BOX
}
Fl_Group grpHamlib {open
xywh {5 85 490 277} box ENGRAVED_FRAME
xywh {5 83 490 277} box ENGRAVED_FRAME
} {
Fl_Box cboHamlibRig {
label {Rig:}
callback {btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Select the rig by name} xywh {46 95 160 22} box DOWN_BOX color 7 align 4
tooltip {Select the rig by name} xywh {65 93 160 22} box DOWN_BOX color 7 align 4
code0 {o->readonly();}
class Fl_ComboBox
}
@ -1710,7 +1710,7 @@ progdefaults.changed = true;}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;} open
tooltip {Serial port} xywh {340 95 144 22}
tooltip {Serial port} xywh {340 93 144 22}
code0 {o->value(progdefaults.HamRigDevice.c_str());}
} {}
Fl_Choice mnuBaudRate {
@ -1719,7 +1719,7 @@ progdefaults.changed = true;} open
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;} open
tooltip {Serial port baud rate} xywh {385 127 99 22} down_box BORDER_BOX
tooltip {Serial port baud rate} xywh {385 139 99 22} down_box BORDER_BOX align 5
code0 {o->add(szBaudRates);}
code1 {o->value(progdefaults.HamRigBaudrate);}
} {}
@ -1730,7 +1730,7 @@ btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Number of times to resend
command before giving up} xywh {15 146 75 20} type Simple align 1 minimum 1 maximum 10 step 1 value 5
command before giving up} xywh {15 140 75 20} type Simple align 5 minimum 1 maximum 10 step 1 value 5
code0 {o->value(progdefaults.HamlibRetries);}
}
Fl_Counter cntHamlibTimeout {
@ -1739,16 +1739,16 @@ command before giving up} xywh {15 146 75 20} type Simple align 1 minimum 1 maxi
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Msec's between retries} xywh {131 146 75 20} type Simple align 1 minimum 2 maximum 200 step 1 value 10
tooltip {Msec's between retries} xywh {150 140 75 20} type Simple align 5 minimum 2 maximum 200 step 1 value 10
code0 {o->value(progdefaults.HamlibTimeout);}
}
Fl_Counter cntHamlibWait {
label {Command interval (ms)}
label {Post write delay (ms)}
callback {progdefaults.HamlibWait = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Msec's between sequential commands} xywh {15 177 75 20} type Simple align 8 minimum 0 maximum 100 step 1 value 5
tooltip {Msec's between sequential commands} xywh {150 186 75 20} type Simple align 5 minimum 0 maximum 100 step 1 value 5
code0 {o->value(progdefaults.HamlibWait);}
}
Fl_Input inpHamlibConfig {
@ -1758,7 +1758,7 @@ btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Optional configuration
in format: param=val ...} xywh {20 328 320 22} align 1
in format: param=val ...} xywh {20 326 320 22} align 5
code0 {inpHamlibConfig->value(progdefaults.HamConfig.c_str());}
class Fl_Input2
}
@ -1767,14 +1767,14 @@ in format: param=val ...} xywh {20 328 320 22} align 1
callback {progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;}
tooltip {Initialize hamlib interface} xywh {371 327 113 24}
tooltip {Initialize hamlib interface} xywh {371 325 113 24}
}
Fl_Choice mnuSideband {
label {Sideband:}
callback {progdefaults.HamlibSideband = o->value();
progdefaults.changed = true;} open
tooltip {Force the rig sideband. Takes
effect when rig mode changes.} xywh {340 175 144 22} down_box BORDER_BOX align 1
effect when rig mode changes.} xywh {340 217 144 22} down_box BORDER_BOX align 5
} {}
Fl_Round_Button btnHamlibCMDptt {
label {PTT via Hamlib command}
@ -1783,7 +1783,7 @@ effect when rig mode changes.} xywh {340 175 144 22} down_box BORDER_BOX align 1
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {PTT is a hamlib command} xywh {45 215 200 20} down_box DIAMOND_DOWN_BOX selection_color 1
tooltip {PTT is a hamlib command} xywh {45 218 200 20} down_box DIAMOND_DOWN_BOX selection_color 1
code0 {o->value(progdefaults.HamlibCMDptt);}
}
Fl_Check_Button btnHamlibDTRplus {
@ -1792,7 +1792,7 @@ progdefaults.changed = true;}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of DTR} xywh {45 246 90 20} down_box DOWN_BOX
tooltip {Initial state of DTR} xywh {45 248 90 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibDTRplus);}
}
Fl_Check_Button chkHamlibRTSplus {
@ -1804,7 +1804,7 @@ chkHamlibRTSCTSflow->value(0);
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of RTS} xywh {269 246 85 20} down_box DOWN_BOX
tooltip {Initial state of RTS} xywh {269 248 85 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibRTSplus);}
}
Fl_Check_Button chkHamlibRTSCTSflow {
@ -1818,7 +1818,7 @@ if (o->value() == 1) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Rig requires RTS/CTS flow control} xywh {45 280 170 20} down_box DOWN_BOX
tooltip {Rig requires RTS/CTS flow control} xywh {45 281 170 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibRTSCTSflow);}
}
Fl_Check_Button chkHamlibXONXOFFflow {
@ -1831,9 +1831,18 @@ if (o->value() == 1) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Rig requires Xon/Xoff flow control} xywh {269 280 185 20} down_box DOWN_BOX
tooltip {Rig requires Xon/Xoff flow control} xywh {269 281 185 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibXONXOFFflow);}
}
Fl_Counter cntHamlibWriteDelay {
label {Write delay (ms)}
callback {progdefaults.HamlibWriteDelay = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Msec's between sequential commands} xywh {15 186 75 20} type Simple align 5 minimum 0 maximum 100 step 1
code0 {o->value(progdefaults.HamlibWriteDelay);}
}
}
}
Fl_Group {} {

Wyświetl plik

@ -228,6 +228,7 @@ extern Fl_Check_Button *btnHamlibDTRplus;
extern Fl_Check_Button *chkHamlibRTSplus;
extern Fl_Check_Button *chkHamlibRTSCTSflow;
extern Fl_Check_Button *chkHamlibXONXOFFflow;
extern Fl_Counter *cntHamlibWriteDelay;
extern Fl_Group *grpMemmap;
extern Fl_Check_Button *chkUSEMEMMAP;
extern Fl_Round_Button *btnMEMMAPptt;

Wyświetl plik

@ -228,6 +228,7 @@
ELEM_(int, HamlibRetries, "HAMLIBRETRIES", 2) \
ELEM_(int, HamlibTimeout, "HAMLIBTIMEOUT", 10) \
ELEM_(int, HamlibWait, "HAMLIBWAIT", 50) \
ELEM_(int, HamlibWriteDelay, "HAMLIBWRITEDELAY", 0) \
ELEM_(int, HamlibSideband, "HAMLIBSIDEBAND", 0) /* SIDEBAND_RIG */ \
/* Operator */ \
ELEM_(std::string, myCall, "MYCALL", "") \

Wyświetl plik

@ -103,6 +103,9 @@ bool hamlib_init(bool bPtt)
snprintf(szParam, sizeof(szParam), "%d", progdefaults.HamlibWait);
xcvr->setConf("post_write_delay", szParam);
snprintf(szParam, sizeof(szParam), "%d", progdefaults.HamlibWriteDelay);
xcvr->setConf("write_delay", szParam);
snprintf(szParam, sizeof(szParam), "%d", progdefaults.HamlibTimeout);
xcvr->setConf("timeout", szParam);