📄 settings.cpp
字号:
}
/* Frequency acquisition search window center ----------------------- */
if (GetNumericArgument(argc, argv, i, "-E", "--fracwincent", 0,
MAX_FREQ_AQC_SE_WIN_CEN, rArgument) == TRUE)
{
rFreqAcSeWinCenter = rArgument;
continue;
}
/* Input channel selection ------------------------------------------ */
if (GetNumericArgument(argc, argv, i, "-c", "--inchansel", 0,
MAX_VAL_IN_CHAN_SEL, rArgument) == TRUE)
{
switch ((int) rArgument)
{
case 0:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_LEFT_CHAN);
break;
case 1:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_RIGHT_CHAN);
break;
case 2:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_MIX_CHAN);
break;
case 3:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_IQ_POS);
break;
case 4:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_IQ_NEG);
break;
case 5:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_IQ_POS_ZERO);
break;
case 6:
pDRMRec->GetReceiver()->
SetInChanSel(CReceiveData::CS_IQ_NEG_ZERO);
break;
}
continue;
}
/* Output channel selection ----------------------------------------- */
if (GetNumericArgument(argc, argv, i, "-u", "--outchansel", 0,
MAX_VAL_OUT_CHAN_SEL, rArgument) == TRUE)
{
switch ((int) rArgument)
{
case 0:
pDRMRec->GetWriteData()->
SetOutChanSel(CWriteData::CS_BOTH_BOTH);
break;
case 1:
pDRMRec->GetWriteData()->
SetOutChanSel(CWriteData::CS_LEFT_LEFT);
break;
case 2:
pDRMRec->GetWriteData()->
SetOutChanSel(CWriteData::CS_RIGHT_RIGHT);
break;
case 3:
pDRMRec->GetWriteData()->
SetOutChanSel(CWriteData::CS_LEFT_MIX);
break;
case 4:
pDRMRec->GetWriteData()->
SetOutChanSel(CWriteData::CS_RIGHT_MIX);
break;
}
continue;
}
#ifdef USE_QT_GUI /* QThread needed for log file timing */
/* Start log file flag ---------------------------------------------- */
if (GetNumericArgument(argc, argv, i, "-l", "--startlog", 1,
MAX_SEC_LOG_FI_START, rArgument) == TRUE)
{
pDRMRec->GetParameters()->ReceptLog.
SetDelLogStart((int) rArgument);
continue;
}
/* Frequency for log file ------------------------------------------- */
if (GetNumericArgument(argc, argv, i, "-r", "--frequency", 0,
MAX_FREQ_LOG_FILE, rArgument) == TRUE)
{
pDRMRec->GetParameters()->ReceptLog.
SetFrequency((int) rArgument);
continue;
}
/* Latitude string for log file ------------------------------------- */
if (GetStringArgument(argc, argv, i, "-a", "--latitude",
strArgument) == TRUE)
{
pDRMRec->GetParameters()->ReceptLog.SetLatitude(strArgument);
continue;
}
/* Longitude string for log file ------------------------------------ */
if (GetStringArgument(argc, argv, i, "-o", "--longitude",
strArgument) == TRUE)
{
pDRMRec->GetParameters()->ReceptLog.SetLongitude(strArgument);
continue;
}
/* Color scheme main plot ------------------------------------------- */
if (GetNumericArgument(argc, argv, i, "-y", "--colorstyle", 0,
MAX_COLOR_SCHEMES_VAL, rArgument) == TRUE)
{
pDRMRec->iMainPlotColorStyle = (int) rArgument;
continue;
}
/* MDI out address -------------------------------------------------- */
if (GetStringArgument(argc, argv, i, "--mdioutadr", "--mdioutadr",
strArgument) == TRUE)
{
pDRMRec->GetMDI()->SetNetwOutAddr(strArgument);
continue;
}
/* MDI in port number ----------------------------------------------- */
if (GetNumericArgument(argc, argv, i, "--mdiinport", "--mdiinport", 0,
MAX_MDI_PORT_IN_NUM, rArgument) == TRUE)
{
pDRMRec->GetMDI()->SetNetwInPort((int) rArgument);
continue;
}
#endif
#ifdef HAVE_LIBHAMLIB
/* Hamlib Model ID -------------------------------------------------- */
if (GetStringArgument(argc, argv, i, "-C", "--hamlib-config",
strArgument) == TRUE)
{
pDRMRec->GetHamlib()->SetHamlibConf(strArgument);
continue;
}
/* Hamlib config string --------------------------------------------- */
if (GetNumericArgument(argc, argv, i, "-M", "--hamlib-model", 0,
MAX_ID_HAMLIB, rArgument) == TRUE)
{
pDRMRec->GetHamlib()->SetHamlibModelID((int) rArgument);
continue;
}
# ifdef USE_QT_GUI
/* Enable s-meter flag ---------------------------------------------- */
if (GetFlagArgument(argc, argv, i, "-T", "--ensmeter") == TRUE)
{
pDRMRec->bEnableSMeter = TRUE;
continue;
}
# endif
#endif
/* Help (usage) flag ------------------------------------------------ */
if ((!strcmp(argv[i], "--help")) ||
(!strcmp(argv[i], "-h")) ||
(!strcmp(argv[i], "-?")))
{
const string strHelp = UsageArguments(argv);
#if defined(_WIN32)
MessageBox(NULL, strHelp.c_str(), "Dream",
MB_SYSTEMMODAL | MB_OK | MB_ICONINFORMATION);
#else
cerr << strHelp;
#endif
exit(1);
}
/* Unknown option --------------------------------------------------- */
cerr << argv[0] << ": ";
cerr << "Unknown option '" << argv[i] << "' -- use '--help' for help"
<< endl;
exit(1);
}
/* Set parameters for frequency acquisition search window if needed */
if (rFreqAcSeWinSize != (_REAL) 0.0)
{
if (rFreqAcSeWinCenter == (_REAL) 0.0)
{
/* If no center was specified, set default parameter (in the
middle of the available spectrum) */
rFreqAcSeWinCenter = (_REAL) SOUNDCRD_SAMPLE_RATE / 4;
}
/* Set new parameters */
pDRMRec->GetFreqSyncAcq()->SetSearchWindow(rFreqAcSeWinCenter,
rFreqAcSeWinSize);
}
return bIsReceiver;
}
string CSettings::UsageArguments(char** argv)
{
// TODO: Use macro definitions for help text, too (instead of hard-coded numbers)!
return
"Usage: " + string(argv[0]) + " [option] [argument]\n\n"
"Recognized options:\n\n"
" -t, --transmitter DRM transmitter mode\n"
" -p, --flipspectrum flip input spectrum\n"
" -i <n>, --mlciter <n> number of MLC iterations\n"
" allowed range: 0...4\n"
" default: 1\n"
" -s <r>, --sampleoff <r> sample rate offset initial value [Hz]\n"
" allowed range: -200.0...200.0\n"
" -m, --muteaudio mute audio output\n"
" -f <s>, --fileio <s> disable sound card,\n"
" use file <s> instead\n"
" -w <s>, --writewav <s> write output to wave file\n"
" -S <r>, --fracwinsize <r> freq. acqu. search window size [Hz]\n"
" -E <r>, --fracwincent <r> freq. acqu. search window center [Hz]\n"
" -F, --filter apply bandpass filter\n"
" -D, --modmetric enable modified metrics\n"
" -c <n>, --inchansel <n> input channel selection\n"
" 0: left channel\n"
" 1: right channel\n"
" 2: mix both channels (default)\n"
" 3: I / Q input positive\n"
" 4: I / Q input negative\n"
" 5: I / Q input positive (0 Hz IF)\n"
" 6: I / Q input negative (0 Hz IF)\n"
" -u <n>, --outchansel <n> output channel selection\n"
" 0: L -> L, R -> R (default)\n"
" 1: L -> L, R muted\n"
" 2: L muted, R -> R\n"
" 3: mix -> L, R muted\n"
" 4: L muted, mix -> R\n"
#ifdef USE_QT_GUI
" -r <n>, --frequency <n> set frequency [kHz] for log file\n"
" -a <s>, --latitude <s> set latitude string for log file\n"
" -o <s>, --longitude <s> set longitude string for log file\n"
" -l <n>, --startlog <n> start log file (delayed by\n"
" <n> seconds)\n"
" allowed range: 1...3600\n"
" -y <n>, --colorscheme <n> set color scheme for main plot\n"
" 0: blue-white (default)\n"
" 1: green-black\n"
" 2: black-grey\n"
" --mdioutadr <s> MDI out network address\n"
" format [IP#]:[port]\n"
" --mdiinport <n> set MDI in port number\n"
#endif
" -I <n>, --snddevin <n> set sound in device\n"
" -O <n>, --snddevout <n> set sound out device\n"
#ifdef HAVE_LIBHAMLIB
" -M <n>, --hamlib-model <n> set Hamlib radio model ID\n"
" -C <s>, --hamlib-config <s> set Hamlib config parameter\n"
" -T, --ensmeter enable S-Meter\n"
#endif
"\n -h, -?, --help this help text\n\n"
"Example: " + string(argv[0]) +
" -p --sampleoff -0.23 -i 2 "
#ifdef USE_QT_GUI
"-r 6140 -a 50
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -