* Add test to prevent accessing a null "rig" structure when
      testing for the presence of various rig functions.
pull/2/head
David Freese 2009-11-15 19:33:28 -06:00
rodzic b6a7cb66a5
commit 53659c4244
2 zmienionych plików z 7 dodań i 31 usunięć

Wyświetl plik

@ -83,64 +83,35 @@ void hamlib_get_defaults()
testrig.getConf("serial_speed", szParam);
mnuBaudRate->value(progdefaults.nBaudRate(szParam));
// progdefaults.HamRigBaudrate = progdefaults.nBaudRate(szParam);
// mnuBaudRate->value(progdefaults.HamRigBaudrate);
testrig.getConf("post_write_delay", szParam);
sscanf(szParam, "%d", &i);
cntHamlibWait->value(i);
// sscanf(szParam, "%d", &progdefaults.HamlibWait);
// cntHamlibWait->value(progdefaults.HamlibWait);
testrig.getConf("write_delay", szParam);
sscanf(szParam, "%d", &i);
cntHamlibWriteDelay->value(i);
// sscanf(szParam, "%d", &progdefaults.HamlibWriteDelay);
// cntHamlibWriteDelay->value(progdefaults.HamlibWriteDelay);
testrig.getConf("timeout", szParam);
sscanf(szParam, "%d", &i);
cntHamlibTimeout->value(i);
// sscanf(szParam, "%d", &progdefaults.HamlibTimeout);
// cntHamlibTimeout->value(progdefaults.HamlibTimeout);
testrig.getConf("retry", szParam);
sscanf(szParam, "%d", &i);
cntHamlibRetries->value(i);
// sscanf(szParam, "%d", &progdefaults.HamlibRetries);
// cntHamlibRetries->value(progdefaults.HamlibRetries);
testrig.getConf("rts_state", szParam);
chkHamlibRTSplus->value( strcmp(szParam, "ON") == 0 ? true : false);
// if (strcmp(szParam, "ON") == 0)
// progdefaults.HamlibRTSplus = true;
// else
// progdefaults.HamlibRTSplus = false;
// chkHamlibRTSplus->value(progdefaults.HamlibRTSplus);
testrig.getConf("dtr_state", szParam);
btnHamlibDTRplus->value( strcmp(szParam, "ON") == 0 ? true : false);
// if (strcmp(szParam, "ON") == 0)
// progdefaults.HamlibDTRplus = true;
// else
// progdefaults.HamlibDTRplus = false;
// btnHamlibDTRplus->value(progdefaults.HamlibDTRplus);
// progdefaults.HamlibRTSCTSflow = false;
// progdefaults.HamlibXONXOFFflow = false;
testrig.getConf("serial_handshake", szParam);
chkHamlibRTSCTSflow->value(strcmp(szParam, "Hardware") == 0 ? true : false);
chkHamlibXONXOFFflow->value(strcmp(szParam, "XONXOFF") == 0 ? true : false);
// if (strcmp(szParam, "Hardware") == 0) progdefaults.HamlibRTSCTSflow = true;
// if (strcmp(szParam, "XONXOFF") == 0) progdefaults.HamlibXONXOFFflow = true;
// chkHamlibRTSCTSflow->value(progdefaults.HamlibRTSCTSflow);
// chkHamlibXONXOFFflow->value(progdefaults.HamlibXONXOFFflow);
testrig.getConf("stop_bits", szParam);
valHamRigStopbits->value(strcmp(szParam, "1") == 0 ? 1 : 2);
// progdefaults.HamRigStopbits = 2;
// if (strcmp(szParam, "1") == 0) progdefaults.HamRigStopbits = 1;
// valHamRigStopbits->value(progdefaults.HamRigStopbits);
if (!testrig.canSetPTT()) {
btnHamlibCMDptt->value(0);
@ -341,7 +312,7 @@ bool hamlib_init(bool bPtt)
}
hamlib_freq = 0;
hamlib_rmode = RIG_MODE_NONE;//RIG_MODE_USB;
hamlib_rmode = RIG_MODE_NONE;
hamlib_exit = false;
hamlib_bypass = false;
@ -437,7 +408,6 @@ int hamlib_setfreq(long f)
try {
LOG_DEBUG("%ld", f);
xcvr->setFreq(f);
// wf->rfcarrier(f);//(hamlib_freq);
}
catch (const RigException& Ex) {
show_error("SetFreq", Ex.what());

Wyświetl plik

@ -67,31 +67,37 @@ void Rig::close(void)
bool Rig::canSetFreq()
{
if (!rig) return false;
return (rig->caps->set_freq != NULL);
}
bool Rig::canGetFreq()
{
if (!rig) return false;
return (rig->caps->get_freq != NULL);
}
bool Rig::canSetMode()
{
if (!rig) return false;
return (rig->caps->set_mode != NULL);
}
bool Rig::canGetMode()
{
if (!rig) return false;
return (rig->caps->get_mode != NULL);
}
bool Rig::canSetPTT()
{
if (!rig) return false;
return (rig->caps->set_ptt != NULL);
}
bool Rig::canGetPTT()
{
if (!rig) return false;
return (rig->caps->get_ptt != NULL);
}