📄 main.c
字号:
GSM900TestData.PowerAvg,GSM900SpecData.PowerAvgL,GSM900SpecData.PowerAvgH,
GSM900TestResult.PowerAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
sprintf(TestReport,"GSM900, Peak Phase Error: %f deg; Spec Range: %d deg ~ %d deg; %s",
GSM900TestData.PeakPhaseErrorAvg,GSM900SpecData.PeakPhaseErrorL,GSM900SpecData.PeakPhaseErrorH,
GSM900TestResult.PeakPhaseErrorAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
sprintf(TestReport,"GSM900, RMS Phase Error: %f deg; Spec Range: %d deg ~ %d deg; %s",
GSM900TestData.RMSPhaseErrorAvg,GSM900SpecData.RMSPhaseErrorL,GSM900SpecData.RMSPhaseErrorH,
GSM900TestResult.RMSPhaseErrorAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
//PCN1800
strcpy(buffer,"CONF:GSM1800:BS:TCH:ARFC 698\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
InsertListItem(pnl,PNL_LISTBOX,-1,"TCH Channel 698","TCH Channel 698");
ProcessSystemEvents();
strcpy(buffer,"conf:gsm1800:ms:tch:plev 0\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
InsertListItem(pnl,PNL_LISTBOX,-1,"Power Level 0","Power Level 0");
ProcessSystemEvents();
//Antenna Parameters check
//CONFigure:<system>:PATTenuation:LEVel <RX>, <TX>
// strcpy(buffer,"CONF:GSM900:PATT:LEV 17,17\n");
// bytewrite=ComWrt (comport, buffer, strlen(buffer));
SetCtrlVal (pnl, PNL_TEXTMSG, "GSM1800 Testing...");
InsertListItem(pnl,PNL_LISTBOX,-1,"GSM1800 Testing...","GSM1800 Testing...");
ProcessSystemEvents();
strcpy(buffer,"MEAS:ARR:RFTR:GRO:ALL:MAV? 10\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
//FlushInQ (comport);
for(i=0;i<MAX_MEAS_TIME/DELAY;i++)
{
Delay(DELAY);
Inqlength = GetInQLen (comport);
if(Inqlength!=0&&Inqlength==TEST_DATA_SIZE)//if(Inqlength!=0)
{
//Delay(DELAY);
break;
}
}
ComRd (comport, buffer, Inqlength); //?
ResetTestData(&PCN1800TestData);
ResetTestResult(&PCN1800TestResult);
for(i=0;i<MAX_IN_BUFFER_UPDATE_TIME;i++)
{
if(
(((PCN1800TestData.PeakPhaseErrorAvg-64)<TOLERANCE)&&((PCN1800TestData.PeakPhaseErrorAvg-64)>-TOLERANCE))
||(((PCN1800TestData.PeakPhaseErrorAvg-0)<TOLERANCE)&&((PCN1800TestData.PeakPhaseErrorAvg-0)>-TOLERANCE))
)
{
Delay(DELAY);
ComRd (comport, buffer, Inqlength); //?
sscanf(buffer,"%e",&PCN1800TestData.PeakPhaseErrorAvg);
}
else
{
break;
}
}
sscanf(buffer,"%e,%e,%e,%e,%e",&PCN1800TestData.PeakPhaseErrorAvg,
&PCN1800TestData.RMSPhaseErrorAvg,
&PCN1800TestData.FrequencyErrorAvg,
&PCN1800TestData.BurstLengthAvg,
&PCN1800TestData.PowerAvg);
MeasResultEvaluate(&PCN1800SpecData,&PCN1800TestData,&PCN1800TestResult);
sprintf(TestReport,"PCN1800, Average Power: %f dbm; Spec Range: %d dbm ~ %d dbm; %s",
PCN1800TestData.PowerAvg,PCN1800SpecData.PowerAvgL,PCN1800SpecData.PowerAvgH,
PCN1800TestResult.PowerAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
sprintf(TestReport,"PCN1800, Peak Phase Error: %f deg; Spec Range: %d deg ~ %d deg; %s",
PCN1800TestData.PeakPhaseErrorAvg,PCN1800SpecData.PeakPhaseErrorL,PCN1800SpecData.PeakPhaseErrorH,
PCN1800TestResult.PeakPhaseErrorAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
sprintf(TestReport,"PCN1800, RMS Phase Error: %f deg; Spec Range: %d deg ~ %d deg; %s",
PCN1800TestData.RMSPhaseErrorAvg,PCN1800SpecData.RMSPhaseErrorL,PCN1800SpecData.RMSPhaseErrorH,
PCN1800TestResult.RMSPhaseErrorAvg?"PASS":"FAIL");
InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
SetCtrlVal (pnl, PNL_TEXTMSG, "Tests Finished!");
InsertListItem(pnl,PNL_LISTBOX,-1,"Tests Finished!","Tests Finished!");
ProcessSystemEvents();
strcpy(buffer,"CALL:BSR\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
InsertListItem(pnl,PNL_LISTBOX,-1,"Call Disconnected","Call Disconnected");
if(TestPassed==FAIL)
{
//Fail report
SetPanelAttribute (pnl, ATTR_BACKCOLOR, VAL_RED);
SetCtrlAttribute (pnl, PNL_TEXTBOX_RESULT, ATTR_TEXT_COLOR, VAL_RED);
ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "FAIL");
}
else
{
SetCtrlAttribute (pnl, PNL_TEXTBOX_RESULT, ATTR_TEXT_COLOR, VAL_GREEN);
ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "PASS");
}
/*
if((MeasResultEvaluate(&GSM900SpecData,&GSM900TestData,&GSM900TestResult)==FAIL)
||(MeasResultEvaluate(&PCN1800SpecData,&PCN1800TestData,&PCN1800TestResult)==FAIL))
{
//Fail report
TestPassed=0;
SetPanelAttribute (pnl, ATTR_BACKCOLOR, VAL_RED);
SetCtrlAttribute (pnl, PNL_TEXTBOX_RESULT, ATTR_TEXT_COLOR, VAL_RED);
ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "FAIL");
}
else
{
TestPassed=1;
SetCtrlAttribute (pnl, PNL_TEXTBOX_RESULT, ATTR_TEXT_COLOR, VAL_GREEN);
ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "PASS");
}
*/
// SetPanelAttribute (pnl, ATTR_BACKCOLOR, VAL_RED);
// GetPanelAttribute (pnl, ATTR_BACKCOLOR, &BackColor);
// ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "FAIL");
//Switch to DCS1800/PCN test mode
strcpy(buffer,"conf:syst PCN\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
//End
strcpy(buffer,"SYST:COMM:LOC\n");
bytewrite=ComWrt (comport, buffer, strlen(buffer));
RS232Error=CloseCom (comport);
//For Test Time
//Testing=0;
//sprintf(strtime,"%d",TestTime);
//SetCtrlVal (pnl, PNL_TESTTIME, strtime);
status = GetSystemTime (&SystemTime.hour,&SystemTime.minute,&SystemTime.second);
MinuteEnd=SystemTime.minute;
SecondEnd=SystemTime.second;
TestTime=MinuteEnd-MinuteStart;
if(TestTime<0)
{
TestTime=TestTime+60;
}
TestTime=TestTime*60+SecondEnd-SecondStart;
sprintf(strtime,"%d",TestTime);
SetCtrlVal (pnl, PNL_TESTTIME, strtime);
ProcessSystemEvents();
SaveTestResults();
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;
}
SetCtrlVal (pnl, PNL_TEXTMSG, STR_TURN_OFF_MS);
Delay(DELAY_FOR_POWER_OFF);
SetCtrlVal (pnl, PNL_TEXTMSG, STR_TURN_ON_MS);
#ifdef WRITE_PROCESS_DATA
if(ReadWriteProcessData(1))
{//Write ProcessData Error
return 1;
}
else
{//ProcessData Written
InsertListItem(pnl,PNL_LISTBOX,-1,"Process Data Written!","");
};
#endif
return errorIndex;
}
}
int main (int argc, char *argv[])
{
int i;
if (InitCVIRTE (0, argv, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */
return -1; /* out of memory */
if ((pnl = LoadPanel (0, "interface.uir", PNL)) < 0)
return -1;
//Testing=0;
DisplayPanel (pnl);
IniErrorInfo(errorInfo);
if(!InitIniKey())
{
// InsertTextBoxLine (pnl, PNL_TEXTBOX, i, "Ini File Loaded");
InsertListItem(pnl,PNL_LISTBOX,-1,"Ini Keys Loaded","Ini Keys Loaded");
}
if(errorIndex=ReadIniFile())
{
ErrorReport(errorIndex,errorInfo);
return errorIndex;
}
else
{
InsertListItem(pnl,PNL_LISTBOX,-1,"Ini File Loaded","Ini File Loaded");
}
if (errorIndex=ImportNetFuncs())
{
ErrorReport(errorIndex,errorInfo);
return errorIndex;
}
if(ConnectSFIS(iniData))
{
errorIndex=Net_Connect_Error;
ErrorReport(errorIndex,errorInfo);
return errorIndex;
ConfirmPopup ("Error Report","ConnectSFIS FAIL!\nCheck and run the program again.");
}
else
{
InsertListItem(pnl,PNL_LISTBOX,-1,"SFIS Connected","SFIS Connected");
}
if(errorIndex=ReadSpec())
{
//ConfirmPopup ("Error Report","Open \"AT.spe\" FAIL!");
ErrorReport(errorIndex,errorInfo);
ConfirmPopup ("Error Report","Open \"AT.spe\" FAIL!\nCheck and run the program again.");
return errorIndex;
}
else
{
InsertListItem(pnl,PNL_LISTBOX,-1,"Test Spec Read","Test Spec Read");
}
//NetConnection("frankzheng","dl",iniData.RequestLogDrive);
// NetConnection(iniData.HostName,iniData.RequestDir,iniData.RequestLogDrive);
//test SaveTestResults();
//SaveTestResults();
RunUserInterface ();
return 0;
}
int CVICALLBACK CALLBACK_Start (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
/*
DWORD dwThreadId;
DWORD dwThrdParam = 1;
HANDLE hThread;
char szMsg[80];
*/
switch (event)
{
case EVENT_COMMIT:
//ResetTestData();
SetCtrlAttribute (pnl, PNL_Start, ATTR_DIMMED, 1);
ProcessSystemEvents();
ClearListCtrl(pnl,PNL_LISTBOX);
//TestMain();
GoOnTest=1;
//while(GoOnTest)
{
errorIndex=TestMain();
if(errorIndex!=No_Error)
{
ErrorReport(errorIndex,errorInfo);
}
if(!strcmp(iniData.SFIS,"TRUE"))
{
SFIS_WriteResultFile(errorIndex,errorInfo);
}
}
/*
hThread = CreateThread(
NULL, // no security attributes
0, // use default stack size
TestMain,// ThreadFunc, // thread function
&dwThrdParam, // argument to thread function
0, // use default creation flags
&dwThreadId); // returns the thread identifier
//WaitForSingleObject(hThread,INFINITE);
WaitForSingleObject(hThread,100000);
CloseHandle( hThread );
*/
// Check the return value for success.
/*
if (hThread == NULL)
{
wsprintf( szMsg, "CreateThread failed." );
MessageBox( NULL, szMsg, "main", MB_OK );
}
else
{
getchar();
CloseHandle( hThread );
}
*/
SetCtrlAttribute (pnl, PNL_Start, ATTR_DIMMED, 0);
ProcessSystemEvents();
break;
case EVENT_RIGHT_CLICK:
break;
}
return 0;
}
int CVICALLBACK Time (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char strTime[SYSTEM_TIME_STRING_SIZE];
int status;
struct TimeType SystemTime;
switch (event)
{
case EVENT_TIMER_TICK:
status = GetSystemTime (&SystemTime.hour,&SystemTime.minute,&SystemTime.second);
strTime[0]=SystemTime.hour/10+48;
strTime[1]=SystemTime.hour-(SystemTime.hour/10)*10+48;
strTime[3]=SystemTime.minute/10+48;
strTime[4]=SystemTime.minute-(SystemTime.minute/10)*10+48;
strTime[6]=SystemTime.second/10+48;
strTime[7]=SystemTime.second-(SystemTime.second/10)*10+48;
strTime[8]='\0';
strTime[2]=':';
strTime[5]=':';
//For Test Time
//if (Testing==1)
// {
// TestTime++;
// }
SetCtrlVal (pnl, PNL_NOWTIME, strTime);
ProcessSystemEvents();
break;
}
return 0;
}
void CVICALLBACK Exit (int menuBar, int menuItem, void *callbackData,
int panel)
{
QuitUserInterface (0);
}
void CVICALLBACK OpenHistory (int menuBar, int menuItem, void *callbackData,
int panel)
{
}
void CVICALLBACK UpdateSpecFile (int menuBar, int menuItem, void *callbackData,
int panel)
{
int i;
FILE *fHostSpec,*fLocalSpec;
char Hostfilename[STRINGLENGTH];
char tempchr;
strcpy(Hostfilename,"\\\\");
strcat(Hostfilename,iniData.SPECHostName);
strcat(Hostfilename,"\\");
strcat(Hostfilename,iniData.SPECDirectory);
strcat(Hostfilename,"\\");
strcat(Hostfilename,SPEC_FILE_NAME);
fHostSpec=fopen( Hostfilename, "r" );
//Host Spec File open failed
if (fHostSpec==NULL)
{
ConfirmPopup ("Error Report","Open .spe file on host FAIL!");
//return 0;
}
//Host Spec File open OK
else
{
fLocalSpec=fopen( SPEC_FILE_NAME, "w" );
//Local Spec File open Fail
if (fLocalSpec==NULL)
{
ConfirmPopup ("Error Report","Open local .spe file FAIL!");
//return 0;
}
//Local Spec File open OK
else
{
for (i=0;i<0xffff;i++)
{
tempchr=fgetc(fHostSpec);
if (tempchr==EOF)
{
break;
}
fprintf(fLocalSpec,"%c",tempchr);
}
fclose(fLocalSpec);
}
fclose(fHostSpec);
InsertListItem(pnl,PNL_LISTBOX,-1,"Test Spec Updated from host.","");
if(errorIndex=ReadSpec())
{
//ConfirmPopup ("Error Report","Open \"AT.spe\" FAIL!");
ErrorReport(errorIndex,errorInfo);
ConfirmPopup ("Error Report","Open \"AT.spe\" FAIL!\nCheck and run the program again.");
//return errorIndex;
}
else
{
InsertListItem(pnl,PNL_LISTBOX,-1,"Test Spec Read","Test Spec Read");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -