📄 main.c
字号:
return 1;
}
}
}
else
{
//Response File Error
}
}
fclose(fResponse);
#ifndef SF_SIMULATIVE_SERVER
DeleteFile(filename);
#endif
return 0;
}
int SFIS_WriteResultFile(enum ErrorIndex eIndex,struct ErrorInfo eInfo[])
{
FILE *fResult;
char filename[STRINGLENGTH];
//char str_errorcode[10];
strcpy(filename,iniData.ResultLogDir);
strcat(filename,"\\");
strcat(filename,GSM900TestData.SN);
strcat(filename,".txt");
fResult=fopen( filename, "w" );
//Fileopen failed
if (fResult==NULL)
{
;
}
//Fileopen OK
else
{
if (TestPassed==1)
{
fprintf(fResult,"%s;%s;%s;%s;%s;%s;",iniData.LineNo,iniData.Station,iniData.Employee,GSM900TestData.SN,"PASS","NO ERROR");
fclose(fResult);
}
else
{
/*
if(GSM900TestResult.PowerAvg==FAIL)
{
SFIS_errorNo=1;
}
else if(GSM900TestResult.PeakPhaseErrorAvg==FAIL)
{
SFIS_errorNo=2;
}
else if(GSM900TestResult.RMSPhaseErrorAvg==FAIL)
{
SFIS_errorNo=3;
}
else if(PCN1800TestResult.PowerAvg==FAIL)
{
SFIS_errorNo=4;
}
else if(PCN1800TestResult.PeakPhaseErrorAvg==FAIL)
{
SFIS_errorNo=5;
}
else if(PCN1800TestResult.RMSPhaseErrorAvg==FAIL)
{
SFIS_errorNo=6;
}
//SFIS_errorNo=SFIS_errorNo+48;
sprintf(str_errorcode,"F00%d",SFIS_errorNo);
//strcat(str_errorcode,&SFIS_errorNo);
fprintf(fResult,"%s;%s;%s;%s;%s;%s",iniData.LineNo,iniData.Station,iniData.Employee,GSM900TestData.SN,"FAIL",str_errorcode);
fclose(fResult);
*/
if(GSM900TestResult.PowerAvg==FAIL)
{
errorIndex=GSM900_TX_Average_Power_Fail;
}
else if(GSM900TestResult.PeakPhaseErrorAvg==FAIL)
{
errorIndex=GSM900_TX_Peak_Phase_Error_Fail;
}
else if(GSM900TestResult.RMSPhaseErrorAvg==FAIL)
{
errorIndex=GSM900_TX_RMS_Phase_Error_Fail;
}
else if(PCN1800TestResult.PowerAvg==FAIL)
{
errorIndex=PCN1800_TX_Average_Power_Fail;
}
else if(PCN1800TestResult.PeakPhaseErrorAvg==FAIL)
{
errorIndex=PCN1800_TX_Peak_Phase_Error_Fail;
}
else if(PCN1800TestResult.RMSPhaseErrorAvg==FAIL)
{
errorIndex=PCN1800_TX_RMS_Phase_Error_Fail;
}
//SFIS_errorNo=SFIS_errorNo+48;
//sprintf(str_errorcode,"F00%d",SFIS_errorNo);
//strcat(str_errorcode,&SFIS_errorNo);
//fprintf(fResult,"%s;%s;%s;%s;%s;%s;",iniData.LineNo,iniData.Station,iniData.Employee,GSM900TestData.SN,"FAIL",errorInfo[errorIndex].ErrorString);
fprintf(fResult,"%s;%s;%s;%s;%s;%s;",iniData.LineNo,iniData.Station,iniData.Employee,GSM900TestData.SN,"FAIL",eInfo[eIndex].ErrorCode);
fclose(fResult);
}
}
return 0;
}
int SimCheck(void)
{
u8 i;
u32 vl_Error;
u8 pp_SimIMSINumber[8];
memset(pp_SimIMSINumber, 0x00, 8);
vl_Error = dv80_05SimAskPresence(5000);
if(vl_Error)
{
return -1;
}
vl_Error = dv80_14ReadIMSINumber (20000, pp_SimIMSINumber , 1);
if(vl_Error)
{
return -1;
}
/*
printf("The IMSI number of SIM card is:");
for(i=0 ;i<8; i++)
{
printf("%X\t",*(pp_SimIMSINumber+i));
}
printf("\n");
*/
return 0;
}
int ResetTestData(struct TestData *testdata)
{
testdata->PeakPhaseErrorAvg=0;
testdata->RMSPhaseErrorAvg=0;
testdata->FrequencyErrorAvg=0;
testdata->BurstLengthAvg=0;
testdata->PowerAvg=0;
return 0;
}
int ResetTestResult(struct TestResult*testresult)
{
testresult->PeakPhaseErrorAvg=PASS;
testresult->RMSPhaseErrorAvg=PASS;
testresult->FrequencyErrorAvg=PASS;
testresult->BurstLengthAvg=PASS;
testresult->PowerAvg=PASS;
return 0;
}
int WriteCSVFileHeader(FILE *fp)
{
fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s",
",,,,,","TEST ITEM","GSM900 Average Power","GSM900 Peak Phase Error","GSM900 RMS Phase Error","GSM1800 Average Power","GSM1800 Peak Phase Error","GSM1800 RMS Phase Error\n");
fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s",
",,,,,","Channel","62","62","62","698","698","698\n");
fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s",
",,,,,","NOTE","PL5","PL5","PL5","PL0","PL0","PL0\n");
fprintf(fp,"%s,%s,%d,%d,%d,%d,%d,%d,%s",
",,,,,","Upper Limit",
GSM900SpecData.PowerAvgH,GSM900SpecData.PeakPhaseErrorH,GSM900SpecData.RMSPhaseErrorH,
PCN1800SpecData.PowerAvgH,PCN1800SpecData.PeakPhaseErrorH,PCN1800SpecData.RMSPhaseErrorH,"\n");
fprintf(fp,"%s,%s,%d,%d,%d,%d,%d,%d,%s",
",,,,,","Lower Limit ",
GSM900SpecData.PowerAvgL,GSM900SpecData.PeakPhaseErrorL,GSM900SpecData.RMSPhaseErrorL,
PCN1800SpecData.PowerAvgL,PCN1800SpecData.PeakPhaseErrorL,PCN1800SpecData.RMSPhaseErrorL,"\n");
fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",
"Serial Number","IMEI","TEST TIME","Station Name","Spec file name","Spec file ver","Unit","dbm","deg","deg","dbm","deg","deg\n");
return 0;
}
FILE* OpenCSVLogFile(FILE *fp)
{
char CSVFileName[STRINGLENGTH];
GetCSVFileName(CSVFileName);
if (!(fp=fopen(CSVFileName,"r")))
//CSVFileName does not exist
{
//fclose(fp);
fp=fopen(CSVFileName,"a");
WriteCSVFileHeader(fp);
}
else
{
fclose(fp);
fp=fopen(CSVFileName,"a");
}
return fp;
}
int InitCSVFileRecord()
{
char time[5];
strcpy(csvFileRecord.IMEI,"");
strcpy(csvFileRecord.SerialNumber,GSM900TestData.SN);
strcpy(csvFileRecord.StationName,STATION_NAME);
strcpy(csvFileRecord.SpecFileName,SPEC_FILE_NAME);
strcpy(csvFileRecord.SpecFileVer,SPEC_FILE_VER);
strcpy(csvFileRecord.TESTTIME,GetSystemYear(time));
strcat(csvFileRecord.TESTTIME,"-");
strcat(csvFileRecord.TESTTIME,GetSystemMonth(time));
strcat(csvFileRecord.TESTTIME,"-");
strcat(csvFileRecord.TESTTIME,GetSystemDay(time));
strcat(csvFileRecord.TESTTIME," ");
strcat(csvFileRecord.TESTTIME,GetSystemHour(time));
strcat(csvFileRecord.TESTTIME,":");
strcat(csvFileRecord.TESTTIME,GetSystemMinute(time));
strcat(csvFileRecord.TESTTIME,":");
strcat(csvFileRecord.TESTTIME,GetSystemSecond(time));
return 0;
}
int AddCSVFileRecord(FILE *fp)
{
InitCSVFileRecord();
fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%f,%f,%f,%f,%f,%f,%s",
csvFileRecord.SerialNumber,csvFileRecord.IMEI,csvFileRecord.TESTTIME,csvFileRecord.StationName,csvFileRecord.SpecFileName,csvFileRecord.SpecFileVer,"",
GSM900TestData.PowerAvg,GSM900TestData.PeakPhaseErrorAvg,GSM900TestData.RMSPhaseErrorAvg,
PCN1800TestData.PowerAvg,PCN1800TestData.PeakPhaseErrorAvg,PCN1800TestData.RMSPhaseErrorAvg,"\n");
//fclose(fp);
return 0;
}
int SaveTestResults()
{
FILE * fpCSV;
fpCSV=OpenCSVLogFile(fpCSV);
AddCSVFileRecord(fpCSV);
fclose(fpCSV);
return 0;
}
int ReadSpec()
{
FILE *stream;
int i,j,ret;
char tempstr[BUFFERLENGTH];
//sprintf(tempstr,"\\\\%s\\%s");
//strcpy(tempstr,"\\\\");
//strcat(tempstr,iniData.SPECHostName);
if((stream=fopen(SPEC_FILE_NAME,"r"))==NULL)
{
//printf("Open \"AT.spe\" FAIL!" );
//ConfirmPopup ("Error Report","Open \"AT.spe\" FAIL!");
return Read_Spec_File_Error;
}
else
{
for (i=0;i<SPESTRLINES;i++)
{
fscanf(stream,"%s",tempstr);
}
//GSM900 SpecData
ret=fscanf(stream,"%s\n%d,%d",tempstr,&GSM900SpecData.PowerAvgH,&GSM900SpecData.PowerAvgL);
ret=fscanf(stream,"%s\n%d,%d",tempstr,&GSM900SpecData.PeakPhaseErrorH,&GSM900SpecData.PeakPhaseErrorL);
ret=fscanf(stream,"%s\n%d,%d",tempstr,&GSM900SpecData.RMSPhaseErrorH,&GSM900SpecData.RMSPhaseErrorL);
for (i=0;i<SPESTRLINES2;i++)
{
fscanf(stream,"%s",tempstr);
}
//PCN1800 SpecData
ret=fscanf(stream,"%s\n%d,%d",tempstr,&PCN1800SpecData.PowerAvgH,&PCN1800SpecData.PowerAvgL);
ret=fscanf(stream,"%s\n%d,%d",tempstr,&PCN1800SpecData.PeakPhaseErrorH,&PCN1800SpecData.PeakPhaseErrorL);
ret=fscanf(stream,"%s\n%d,%d",tempstr,&PCN1800SpecData.RMSPhaseErrorH,&PCN1800SpecData.RMSPhaseErrorL);
fclose(stream);
}
return 0;
}
int MeasResultEvaluate(struct SpecData* specdata,struct TestData *testdata,struct TestResult *testresult)
{
int flag;
flag=PASS;
if(testdata->PowerAvg>specdata->PowerAvgH||testdata->PowerAvg<specdata->PowerAvgL)
{
testresult->PowerAvg=FAIL;
flag=FAIL;
TestPassed=FAIL;
}
if(testdata->PeakPhaseErrorAvg>specdata->PeakPhaseErrorH||testdata->PeakPhaseErrorAvg<specdata->PeakPhaseErrorL)
{
testresult->PeakPhaseErrorAvg=FAIL;
flag=FAIL;
TestPassed=FAIL;
}
if(testdata->RMSPhaseErrorAvg>specdata->RMSPhaseErrorH||testdata->RMSPhaseErrorAvg<specdata->RMSPhaseErrorL)
{
testresult->RMSPhaseErrorAvg=FAIL;
flag=FAIL;
TestPassed=FAIL;
}
return flag;
}
int ReadPDFromFlash(void)
{
u8 vl_Error,i;
u8 PD=0;
u8 code[16];
t_hfd_SectionParam pp_SectionInfo;
// pp_SectionInfo.v_RamAddressOfsection=0;
memset(code,0x00,16);
vl_Error = dvhfd1_00UpdateMemorySct(5000,0x01,1);
vl_Error = dvhfd1_02GetSectionParameters(5000,1,&pp_SectionInfo);
// vl_Error = dvhfd1_00UpdateMemorySct(5000,0x01,FMM_SECTION_OM_INDEX);
// vl_Error = dvhfd1_02GetSectionParameters(5000,FMM_SECTION_OM_INDEX,&pp_SectionInfo);
vl_Error = dvhfd0_05RWMemory(10000,pp_SectionInfo.v_RamAddressOfsection+24,256,15,code,0x01,0);
vl_Error = dvhfd0_05RWMemory(10000,pp_SectionInfo.v_RamAddressOfsection+PROCESS_DATA_OFFSET,256,1,&PD,0x01,0);
if (vl_Error)
{
// return -1;
}
//printf("The Process Data in flash is:%d\n",PD);
//printf("The input SN is: %s\n", string);
/* for(i = 0;i<15;i++)
{
printf("%c",code[i]);
}
*/
//printf("\n");
/* if(strncmp((char*)string, (char*)code, 15))
{
printf("Two S/N numbers are not consistant!\n");
return 0;
}
*/
if (PD!=0x02)
{//Process Error.
return 1;
}
errorIndex=No_Error;
return 0;
}
int WritePDToFlash(void)
{
u8 vl_Error;
u8 PD;
//u8 code[16];
t_hfd_SectionParam pp_SectionInfo;
//TestPassed=1;
PD=TestPassed?PROCESS_DATA_PASS:PROCESS_DATA_FAIL;
//memset(code ,0x00,16);
//memcpy(code,string,15);
vl_Error = dvhfd1_02GetSectionParameters(2000,1,&pp_SectionInfo);
//vl_Error = dvhfd0_05RWMemory(2000,pp_SectionInfo.v_RamAddressOfsection+PROCESS_DATA_OFFSET,256,15,code,0x00,1);
vl_Error = dvhfd0_05RWMemory(2000,pp_SectionInfo.v_RamAddressOfsection+PROCESS_DATA_OFFSET,256,1,&PD,0x00,1);
vl_Error = dvhfd1_00UpdateMemorySct(5000,0x01,1);
if (vl_Error)
{
return -1;
}
errorIndex=No_Error;
return 0;
}
int ReadWriteProcessData(int RW)
{
//RW:0,Read;1,Write
u32 vl_SLVersion;
u32 vl_SLRevision;
u32 vl_SLVersionForDV;
u32 vl_SLRevisionForDV;
u32 vl_DVVersion[2];
u32 vl_DVRevision;
u32 vl_Error;
bool vl_TATLimited;
u32 vl_Identity, vl_Mode, vl_EmbededVersion[2], vl_Key[4];
u8 vl_VersionType;
u16 vl_ADC1Value;
char msg[STRINGLENGTH];
int i;
/* printf usage */
/* frank
if ((argc<2)||(argc>=3))
{
printf("Usage : %s COMx [ENTER]\n",argv[0]);
printf("For example : %s COM1 [ENTER]\n",argv[0]);
printf("Press a key to quit.\n");
getchar();
exit(1);
}
PromptPopup ("Hello","SCAN S\\N:", (char*)string,15);
frank*/
/* Display Serial link version */
vl_SLVersion = SL3_01VersionNumber();
vl_SLRevision = SL3_00RevisionNumber();
/*frank
printf("SL Version, Revision : %08X, %08X\n", vl_SLVersion, vl_SLRevision);
frank*/
/* Display Driver version */
dv0_10GetDriverVersion(vl_DVVersion, &vl_DVRevision);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -