📄 demo.cpp
字号:
if (_Gen.iFreqCntr >= 2*(2*_Gen.iFreqSteps+1))
{
_Gen.iFreqCntr = 0;
// next tone
_Gen.iToneCntr += _Gen.iToneInc;
if (_Gen.iToneCntr >= 15) DEMO_StepMode = TRUE;
_Gen.iToneCntr %= 15;
_Gen.sFLo = _aFreqs[_Gen.iToneCntr].sFLo;
_Gen.sFHi = _aFreqs[_Gen.iToneCntr].sFHi;
}
}
tg_config();
}
sTgState = TG_process(&_RevDb, &_TgScratch, pIn);
if (sTgState == 0)
{
rev_config();
}
add_noise(_Gen.iRxNoise, pIn);
}
/*-------------------------------------------------------------------------*/
void fill_input
/*-------------------------------------------------------------------------*/
(
S16 *pIn
)
{
if(_Control.pInFile != NULL && _Frame > 0)
{
read_input(pIn);
}
else
{
gen_input(pIn);
}
for(int k=0; k < ICPD_FR_SZ; k++)
{
double x = pIn[k]*4;
if (x > 32767) x = 32767;
if (x < -32767) x = -32767;
pIn[k] = (S16)x;
}
}
/*-------------------------------------------------------------------------*/
int str_cmp
/*-------------------------------------------------------------------------*/
(
const char *pBasis,
char **ppArg
)
{
if (_strnicmp(pBasis, *ppArg, strlen(pBasis)) == 0)
{
*ppArg += strlen(pBasis);
return 0;
}
else
{
return -1;
}
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* C O N F I G U R A T I O N */
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
int get_cfg_line
/*-------------------------------------------------------------------------*/
(
char *pArg
)
/* returns :
0 - no errs
1 - file err
2 - arg scanf err
3 - switch err
*/
{
int Rc = 0;
float Tmp;
int iTmp;
if ( *pArg == '-' || *pArg == '/')
{
pArg++;
if (str_cmp("DBG", &pArg) == 0)
{
_Control.pDbgFile = fopen("dbg.txt", "w");
if ( _Control.pDbgFile == NULL )
{
Rc = 1;
} /* end-of-if */
}
else if (str_cmp("OUT", &pArg) == 0)
{
_Control.pOutFile = fopen("out.txt", "w");
if ( _Control.pOutFile == NULL )
{
Rc = 1;
} /* end-of-if */
}
else if (str_cmp("TMP", &pArg) == 0)
{
_Control.pTmpFile = fopen("tmp.txt", "w");
if ( _Control.pTmpFile == NULL )
{
Rc = 1;
} /* end-of-if */
}
else if (str_cmp("BYPASS", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Control.fDelay = Tmp;
}
}
else if (str_cmp("GRMODE", &pArg) == 0)
{
if (sscanf(pArg, "%d", &_Control.iGmode) != 1)
{
Rc = 2;
}
}
else if (str_cmp("CATCH", &pArg) == 0)
{
if (sscanf(pArg, "%d", &_Control.iCatch) != 1)
{
Rc = 2;
}
}
else if (str_cmp("STEPMODE", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
DEMO_StepMode = iTmp;
}
}
else if (str_cmp("SERIASTOP", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Control.iSeriaStop = iTmp;
}
}
else if (str_cmp("INPUT", &pArg) == 0)
{
_Control.pInFile = fopen(pArg+1, "rb");
if ( _Control.pInFile == NULL )
{
Rc = 1;
} /* end-of-if */
else
{
if (_Control.fDelay > 0)
{
for (long i = 0; i < _Control.fDelay * 8000; i++)
{
S16 x;
fread(&x, sizeof(S16), 1, _Control.pInFile);
if (i%8000 == 0)
{
val_out(0,0, WHITE, "second %ld ", (i+1)/8000);
}
}
}
}
}
else if (str_cmp("INCOR", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Control.fRxCorr = pow(10., Tmp/20.);
}
}
else if (str_cmp("REVLEVEL1", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iLevel1 = int(LEV0 * pow (10.0, Tmp/20.0) * 1.41);
}
}
else if (str_cmp("REVLEVEL2", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iLevel2 = int(LEV0 * pow (10.0, Tmp/20.0) * 1.41);
}
}
else if (str_cmp("REVFREQ1", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iFreq1 = iTmp;
}
}
else if (str_cmp("REVFREQ2", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iFreq2 = iTmp;
}
}
else if (str_cmp("REVPRESILENCEDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iPreSilenceDuration = iTmp;
}
}
else if (str_cmp("REVSIGNALDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iSignalDuration = iTmp;
}
}
else if (str_cmp("REVPOSTSILENCEDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.Rev.iPostSilenceDuration = iTmp;
}
}
else if (str_cmp("HILEVEL", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iRxHiLevel = int(LEV0 * pow (10.0, Tmp/20.0) * 1.41);
}
}
else if (str_cmp("LOLEVEL", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iRxLoLevel = int(LEV0 * pow (10.0, Tmp/20.0) * 1.41);
}
}
else if (str_cmp("NOISE", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iRxNoise = int(LEV0 * pow (10.0, Tmp/20.0));
}
}
else if (str_cmp("PRESILENCEDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iPreSilenceDuration = iTmp;
}
}
else if (str_cmp("POSTSILENCEDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iPostSilenceDuration = iTmp;
}
}
else if (str_cmp("SIGNALDUR", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iSignalDuration = iTmp;
}
}
else if (str_cmp("SAMEMAX", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iSameCntrMax = iTmp;
}
}
else if (str_cmp("FREQSTEPS", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iFreqSteps = iTmp;
}
}
else if (str_cmp("TONESTART", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iToneCntr = iTmp;
_Gen.iToneCntr %= 15;
_Gen.sFLo = _aFreqs[_Gen.iToneCntr].sFLo;
_Gen.sFHi = _aFreqs[_Gen.iToneCntr].sFHi;
}
}
else if (str_cmp("TONEINC", &pArg) == 0)
{
if (sscanf(pArg, "%d", &iTmp) != 1)
{
Rc = 2;
}
else
{
_Gen.iToneInc = iTmp;
}
}
else if (str_cmp("FREQDEV", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_Gen.fFreqDevMax = Tmp;
}
}
else if (str_cmp("DTWISTTHR", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
}
else
{
_CpdCfg.sTwistThr = dbs(Tmp);
}
}
else if (str_cmp("DMINENTHR", &pArg) == 0)
{
if (sscanf(pArg, "%f", &Tmp) != 1)
{
Rc = 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -