diff --git a/factorytest.c b/factorytest.c
index 3290e05d7be8ac56392d8556766c9ddb59e44bf4..80ecf68a738b6e0e023adbaea99fada964daa130 100755 (executable)
--- a/factorytest.c
+++ b/factorytest.c
// Obtained from PurePath Console 3 (PPC3)
#define PPC3_RE0 7.41 // Re0 (ohm)
// Obtained from PurePath Console 3 (PPC3)
#define PPC3_RE0 7.41 // Re0 (ohm)
+#define PPC3_FWARP 891
+#define PPC3_BL 0.814
+#define PPC3_MMS 0.0666
#define PPC3_RTV 46.5 // Rtv (K/W)
#define PPC3_RTM 78.2 // Rtm (K/W)
#define PPC3_RTVA 2460 // Rtva (K/W)
#define PPC3_SYSGAIN 9.35 // System Gain (V/FS)
#define PPC3_DEV_NONLIN_PER 1.5 // Device Non-linearity (%)
#define PPC3_RTV 46.5 // Rtv (K/W)
#define PPC3_RTM 78.2 // Rtm (K/W)
#define PPC3_RTVA 2460 // Rtva (K/W)
#define PPC3_SYSGAIN 9.35 // System Gain (V/FS)
#define PPC3_DEV_NONLIN_PER 1.5 // Device Non-linearity (%)
+#define PPC3_PIG 1
void ExitWithHint(char *pHint)
{
void ExitWithHint(char *pHint)
{
void InitFTCC(struct TFTCConfiguration *pFTCC)
{
void InitFTCC(struct TFTCConfiguration *pFTCC)
{
- pFTCC->nCalibrationTime = 4000;
+ pFTCC->nCalibrationTime = 2000;
+ pFTCC->nPPC3_FS = 48000;
pFTCC->bVerbose = false;
pFTCC->bLoadCalibration = false;
pFTCC->bVerbose = false;
pFTCC->bLoadCalibration = false;
pFTCC->nTSpkCharDevA.nReHi = PPC3_RE0*1.15;
pFTCC->nTSpkCharDevA.nReLo = PPC3_RE0*0.85;
pFTCC->nTSpkCharDevA.nPPC3_Re0 = PPC3_RE0;
pFTCC->nTSpkCharDevA.nReHi = PPC3_RE0*1.15;
pFTCC->nTSpkCharDevA.nReLo = PPC3_RE0*0.85;
pFTCC->nTSpkCharDevA.nPPC3_Re0 = PPC3_RE0;
+ pFTCC->nTSpkCharDevA.nPPC3_FWarp = PPC3_FWARP;
+ pFTCC->nTSpkCharDevA.nPPC3_Bl = PPC3_BL;
+ pFTCC->nTSpkCharDevA.nPPC3_Mms = PPC3_MMS;
pFTCC->nTSpkCharDevA.nPPC3_RTV = PPC3_RTV;
pFTCC->nTSpkCharDevA.nPPC3_RTM = PPC3_RTM;
pFTCC->nTSpkCharDevA.nPPC3_RTVA = PPC3_RTVA;
pFTCC->nTSpkCharDevA.nPPC3_SysGain = PPC3_SYSGAIN;
pFTCC->nTSpkCharDevA.nPPC3_DevNonlinPer = PPC3_DEV_NONLIN_PER;
pFTCC->nTSpkCharDevA.nPPC3_RTV = PPC3_RTV;
pFTCC->nTSpkCharDevA.nPPC3_RTM = PPC3_RTM;
pFTCC->nTSpkCharDevA.nPPC3_RTVA = PPC3_RTVA;
pFTCC->nTSpkCharDevA.nPPC3_SysGain = PPC3_SYSGAIN;
pFTCC->nTSpkCharDevA.nPPC3_DevNonlinPer = PPC3_DEV_NONLIN_PER;
+ pFTCC->nTSpkCharDevA.nPPC3_PIG = PPC3_PIG;
}
unsigned int SkipCharacter(char *pData, char cCharacter, unsigned int nSize)
}
unsigned int SkipCharacter(char *pData, char cCharacter, unsigned int nSize)
void ReadValue(struct TFTCConfiguration *pFTCC, struct TSPKCharData *pSpk, char *pLine, char *pValue)
{
if (!strcmp(pLine, "CALIBRATION_TIME")) {pFTCC->nCalibrationTime = atoi(pValue); return;};
void ReadValue(struct TFTCConfiguration *pFTCC, struct TSPKCharData *pSpk, char *pLine, char *pValue)
{
if (!strcmp(pLine, "CALIBRATION_TIME")) {pFTCC->nCalibrationTime = atoi(pValue); return;};
+ if (!strcmp(pLine, "FS_RATE")) {pFTCC->nPPC3_FS = atof(pValue); return;};
if (!strcmp(pLine, "SPK_T_MAX")) {pSpk->nSpkTMax = atof(pValue); return;};
if (!strcmp(pLine, "SPK_RE_TOL_PER")) {pSpk->nSpkReTolPer = atof(pValue); return;};
if (!strcmp(pLine, "SPK_T_MAX")) {pSpk->nSpkTMax = atof(pValue); return;};
if (!strcmp(pLine, "SPK_RE_TOL_PER")) {pSpk->nSpkReTolPer = atof(pValue); return;};
- if (!strcmp(pLine, "SPK_RE_ALPHA")) {pSpk->nSpkReAlpha = atof(pValue); return;};
+ if (!strcmp(pLine, "PPC3_RE_ALPHA")) {pSpk->nSpkReAlpha = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RE0")) {pSpk->nPPC3_Re0 = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RE0")) {pSpk->nPPC3_Re0 = atof(pValue); return;};
+ if (!strcmp(pLine, "PPC3_FWARP")) {pSpk->nPPC3_FWarp = atof(pValue); return;};
+ if (!strcmp(pLine, "PPC3_BL")) {pSpk->nPPC3_Bl = atof(pValue); return;};
+ if (!strcmp(pLine, "PPC3_MMS")) {pSpk->nPPC3_Mms = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTV")) {pSpk->nPPC3_RTV = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTM")) {pSpk->nPPC3_RTM = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTVA")) {pSpk->nPPC3_RTVA = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_SYSGAIN")) {pSpk->nPPC3_SysGain = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_DEV_NONLIN_PER")) {pSpk->nPPC3_DevNonlinPer = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTV")) {pSpk->nPPC3_RTV = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTM")) {pSpk->nPPC3_RTM = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_RTVA")) {pSpk->nPPC3_RTVA = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_SYSGAIN")) {pSpk->nPPC3_SysGain = atof(pValue); return;};
if (!strcmp(pLine, "PPC3_DEV_NONLIN_PER")) {pSpk->nPPC3_DevNonlinPer = atof(pValue); return;};
+ if (!strcmp(pLine, "PPC3_PIG")) {pSpk->nPPC3_PIG = atof(pValue); return;};
if (!strcmp(pLine, "RE_HI")) {pSpk->nReHi = atof(pValue); return;};
if (!strcmp(pLine, "RE_LO")) {pSpk->nReLo = atof(pValue); return;};
}
if (!strcmp(pLine, "RE_HI")) {pSpk->nReHi = atof(pValue); return;};
if (!strcmp(pLine, "RE_LO")) {pSpk->nReLo = atof(pValue); return;};
}
printf("factorytest configuration: \n\r");
printf(" CALIBRATION_TIME = %d\n\r", pFTCC->nCalibrationTime);
printf("factorytest configuration: \n\r");
printf(" CALIBRATION_TIME = %d\n\r", pFTCC->nCalibrationTime);
+ printf("Speaker A characterization data: \n\r");
+
printf(" SPKA SPK_T_MAX = %2.2f\n\r", pFTCC->nTSpkCharDevA.nSpkTMax);
printf(" SPKA SPK_RE_TOL_PER = %2.2f\n\r", pFTCC->nTSpkCharDevA.nSpkReTolPer);
printf(" SPKA SPK_RE_ALPHA = %2.4f\n\r\n\r", pFTCC->nTSpkCharDevA.nSpkReAlpha);
printf(" SPKA SPK_T_MAX = %2.2f\n\r", pFTCC->nTSpkCharDevA.nSpkTMax);
printf(" SPKA SPK_RE_TOL_PER = %2.2f\n\r", pFTCC->nTSpkCharDevA.nSpkReTolPer);
printf(" SPKA SPK_RE_ALPHA = %2.4f\n\r\n\r", pFTCC->nTSpkCharDevA.nSpkReAlpha);
+
printf(" SPKA PPC3_RE0 = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Re0);
printf(" SPKA PPC3_RE0 = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Re0);
+ printf(" SPKA PPC3_FWARP = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_FWarp);
+ printf(" SPKA PPC3_BL = %2.6f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Bl);
+ printf(" SPKA PPC3_MMS = %2.6f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Mms);
printf(" SPKA PPC3_RTV = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTV);
printf(" SPKA PPC3_RTM = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTM);
printf(" SPKA PPC3_RTVA = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTVA);
printf(" SPKA PPC3_SYSGAIN = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_SysGain);
printf(" SPKA PPC3_DEV_NONLIN_PER = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_DevNonlinPer);
printf(" SPKA PPC3_RTV = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTV);
printf(" SPKA PPC3_RTM = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTM);
printf(" SPKA PPC3_RTVA = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTVA);
printf(" SPKA PPC3_SYSGAIN = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_SysGain);
printf(" SPKA PPC3_DEV_NONLIN_PER = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_DevNonlinPer);
+ printf(" SPKA PPC3_PIG = %f\n\r", pFTCC->nTSpkCharDevA.nPPC3_PIG);
}
int ftcc_parse(struct TFTCConfiguration *pFTCC, struct TSPKCharData *pSpk, char *pData, unsigned int nSize)
}
int ftcc_parse(struct TFTCConfiguration *pFTCC, struct TSPKCharData *pSpk, char *pData, unsigned int nSize)
double nTemp = 20.0;
int nArg = 1;
bool bValidArg;
double nTemp = 20.0;
int nArg = 1;
bool bValidArg;
+ bool bSpkChk = false;
char pHint[256];
struct TFTCConfiguration sFTCC;
char pHint[256];
struct TFTCConfiguration sFTCC;
bValidArg = true;
}
bValidArg = true;
}
+ if (!strcmp(argv[nArg], "-m")) {
+ bSpkChk = true;
+ bValidArg = true;
+ }
+
if (!bValidArg) {
sprintf(pHint, "don't know argument %s", argv[nArg]);
ExitWithHint(pHint);
}
if (!bValidArg) {
sprintf(pHint, "don't know argument %s", argv[nArg]);
ExitWithHint(pHint);
}
+
nArg++;
}
nArg++;
}
ftcc_print(&sFTCC);
}
ftcc_print(&sFTCC);
}
- tas2557_ftc(nTemp, &sFTCC);
+ if (bSpkChk)
+ tas2557_chk(nTemp, &sFTCC);
+ else
+ tas2557_ftc(nTemp, &sFTCC);
return 0;
}
return 0;
}