⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是用Labwindows开发的一个RF test程序。 用于日本机种的组装后ANT 测试。
💻 C
📖 第 1 页 / 共 4 页
字号:
	//printf("Driver Version, Revision : %08X.%08X, %08X\n", vl_DVVersion[0],  vl_DVVersion[1], vl_DVRevision);
	sprintf(msg,"Driver Version, Revision : %08X.%08X, %08X\n", vl_DVVersion[0],  vl_DVVersion[1], vl_DVRevision);
	InsertListItem(pnl,PNL_LISTBOX,-1,msg,"");
	dv0_29GetSLDriverVersion_to_use(&vl_SLVersionForDV, &vl_SLRevisionForDV);
	/* Check Drivers/SL compatibility */	
	if ((vl_SLVersionForDV != vl_SLVersion) || (vl_SLRevisionForDV != vl_SLRevision))
		//printf("Warning : whith this driver you should use SL Version, Revision : %08X, %08X\n", vl_SLVersionForDV, vl_SLRevisionForDV);
	sprintf(msg,"Warning : with this driver you should use SL Version, Revision : %08X, %08X\n", vl_SLVersionForDV, vl_SLRevisionForDV);
	InsertListItem(pnl,PNL_LISTBOX,-1,msg,"");
	/* Allocate a thread local storage area */
	vl_Error = SL1_12TLSAllocate();
	if (vl_Error)
		{
			errorIndex=Allocate_Thread_Local_Storage_Area_Error;
			goto quit;
		}			
	/* Launch SL */
	vl_Error = SL3_02InitSL("COM2", SL_COM_RATE115, SL_IPEATIO2_NO_PARITY, FALSE, SL_INIT_BYTE49, SL_MODE_BYTE4F, 12, 0);
	if (vl_Error)
		{
			errorIndex=Init_Serial_Link_Error;
			goto quit;
		}
	//SetActivePanel (pnl);
	/* user message */
	sprintf(msg,"Connect your serial cable to PC and mobile.\n You'll have 10 seconds to start your mobile.\n");	//sprintf("After you'll press ENTER, you'll have 10 seconds to start your mobile.\n");
	InsertListItem(pnl,PNL_LISTBOX,-1,msg,"");
	sprintf(msg,"Switch On  mobile........\n");
	InsertListItem(pnl,PNL_LISTBOX,-1,msg,"");
	ProcessSystemEvents();
	
	/* Initialise some TAT variables */
	dv0_25InitTatVar();
	
	/* Wait for Mobile synchronisation */
	vl_Error = dv10_00BackgroundLoop(10000, &vl_TATLimited, &vl_Identity, &vl_Mode, vl_EmbededVersion,
										vl_Key, &vl_VersionType);	
	if (vl_Error)
		{
			errorIndex=Wait_For_Mobile_Sync_Error;
			goto quit;
		}
	/* Display Embeded software informations */
	sprintf(msg,"Embeded Version : %08X.%08X\n", vl_EmbededVersion[0], vl_EmbededVersion[1]);
	InsertListItem(pnl,PNL_LISTBOX,-1,msg,"");
	/*------------------------------*/
	/* Enter code to enter TAT mode */
	/* Enter your customer ID code to replace philips value 0x4C756361 below*/

	vl_Error = dv10_04Identification(COMM_TIMEOUT, 0x4C756361, FALSE);	
	if (vl_Error)
	{
		printf("Error : %08X \n", vl_Error);
		goto quit;
	}

	/*------------------------------*/
	/* DRIVERS : put your code here */
	
/*
frank marked
	//MMI software version check
	vl_Error = dv96_02MainCustMMISoftVersion(2000,pp_cg_CustmerMMIVersion);
	printf("version of mmi software is: %s\n",pp_cg_CustmerMMIVersion);
*/

	//SIM card PIN check
	vl_Error = SimCheck();
	if(vl_Error)
	{
		//printf("Check of SIM card error!\n");
		errorIndex=Check_SIM_Error;
		goto quit;
	}
	else
	{
		//printf("Check of SIM card pass!\n");
		InsertListItem(pnl,PNL_LISTBOX,-1,"Check of SIM card pass!","Check of SIM card pass!");
	}
/*
frank marked
	vl_Error = dva8_00ReadImeiParameterFromEeprom(5000,&pp);
	if (vl_Error)
	{
		printf("Error : %08X \n", vl_Error);
		goto quit;
	}
	
frank marked
*/	
	if (!RW)
	{
		vl_Error = ReadPDFromFlash();
		if(vl_Error)
		{
			errorIndex=Read_Process_Data_From_Flash_Error;
			//printf("Read P/D from flash error!\n");
			goto quit;
		}
		
	}
	else
	{
		vl_Error = WritePDToFlash();
		if(vl_Error)
		{
			errorIndex=Write_Process_Data_To_Flash_Error;
			//printf("Write P/D to flash error!\n");
			goto quit;
		}
		//printf("Operation successfully completed!\n");
	}	
	//return 0;
quit:  
	/*------------------------------*/
	dv96_39SwitchOff(2000);  
	if (errorIndex!=No_Error)
		{
			ErrorReport(errorIndex, errorInfo);
		}
			
	/* Quit SL */
	//vl_Error = SL3_04CloseSL(atoi(argv[1]+strlen("COM")));
	vl_Error = SL3_04CloseSL(2);
	if (vl_Error)
		{
			errorIndex=Close_Serial_Link_Error;
			ErrorReport(errorIndex, errorInfo);
			exit(1);
		}
	
		
	/* Free the thread local storage area */
	vl_Error = SL1_13TLSFree();	
	if (vl_Error)
		{
			errorIndex=Free_Thread_Local_Storage_Area_Error;
			ErrorReport(errorIndex, errorInfo);
			exit(1);
		}
	if (errorIndex!=No_Error)
		{
			ErrorReport(errorIndex, errorInfo);
			return 1;
		}
	else
		{
			return 0;
		}
	}

//DWORD WINAPI TestMain(LPVOID lpParameter)
int TestMain()
{	
//while(1)
{
	int i,j;
	int StatusRegister=0;
	int status;
	char SNbuffer[SN_SIZE+1];
	char TestReport[STRINGLENGTH];
	char strtime[5];
	FILE *fRequest,*fResponse,*fResult;
	int TestTime; //second
	//int Testing;//bool, 0:idle;1:testing. for test time counting 
	struct TimeType SystemTime;
	int MinuteStart,MinuteEnd,SecondStart,SecondEnd;
	//char filename[STRINGLENGTH];
	TestPassed=1;
	//Testing=1;
	TestTime=0;
	SetCtrlVal (pnl, PNL_TESTTIME, "");
	status = GetSystemTime (&SystemTime.hour,&SystemTime.minute,&SystemTime.second);
	MinuteStart=SystemTime.minute;
	SecondStart=SystemTime.second;
	
	SetPanelAttribute (pnl, ATTR_BACKCOLOR, VAL_DEFAULT);
	ResetTextBox (pnl, PNL_TEXTBOX_RESULT, "");
	ProcessSystemEvents();

#ifndef NOT_INPUT_CHECK_SN
	//get SN
	status = PromptPopup ("SN", "Read SN", SNbuffer,SN_SIZE);
	if (!strcmp(SNbuffer,SN_STOP_TEST))
		{
			GoOnTest=0;
			return No_Error;
		}
	strcpy(GSM900TestData.SN,SNbuffer);
	strcpy(PCN1800TestData.SN,GSM900TestData.SN);
	SetCtrlVal (pnl, PNL_STRING_4, SNbuffer);
	if(!strcmp(iniData.SFIS,"TRUE"))
		{
			//Check SN

			if(!SFIS_WriteRequestFile())
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"Shop Floor Request Written","Shop Floor Request Written");
				}
			else
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"Write Shop Floor Request Error ","Write Shop Floor Request Error ");
					return Write_Request_File_Error;
				}
			if(!SFIS_CheckResponseFile())
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"Shop Floor Response OK","Shop Floor Response OK");
				}
			else
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"Shop Floor Response Error","Shop Floor Response Error");
					return Read_Response_File_Error;
				}
		}

#endif
#ifdef CHECK_PROCESS_DATA
	SetCtrlVal (pnl, PNL_TEXTMSG, STR_TURN_ON_MS_TAT);
	ProcessSystemEvents();
	if(ReadWriteProcessData(0))
		{//Check ProcessData Error
			return Read_Process_Data_From_Flash_Error;
		}
	else
		{//Check ProcessData Pass
			InsertListItem(pnl,PNL_LISTBOX,-1,"Process Data Check Pass!","");
		};
#endif


//Test WRITE_PROCESS_DATA
/*
#ifdef WRITE_PROCESS_DATA
	if(ReadWriteProcessData(1))
		{//Write ProcessData Error
		return 1;
		}
	else
		{//ProcessData Written
			InsertListItem(pnl,PNL_LISTBOX,-1,"Process Data Written!","");
		};
#endif
*/

/*
	if(SimCheck())
		{
			InsertListItem(pnl,PNL_LISTBOX,-1,"SimCard OK","SimCard OK");
		}
	else
		{
			InsertListItem(pnl,PNL_LISTBOX,-1,"No SimCard","No SimCard");
			errorCode=NO_SIM_CARD_Error;
			ErrorReport(errorCode,ErrorString);
			return 1;
		}
*/
	comport=COM1;
			 
	RS232Error=OpenComConfig (comport, "", BAUDRATE, 0, 8, 1, IO_QUEUE_SIZE, IO_QUEUE_SIZE);
	SetCTSMode (comport, LWRS_HWHANDSHAKE_CTS_RTS);
	FlushInQ (comport);
	FlushOutQ(comport);
	strcpy(buffer,"*cls\n");
	bytewrite=ComWrt (comport, buffer, strlen(buffer));
	
//GSM900/GSM1800
	// strcpy(buffer,"conf:syst gsm900,gsm1800\n");
	strcpy(buffer,"conf:syst GSMPCN\n");
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 

//Config to BCH+TCH Mode
	strcpy(buffer,"CONF:GSM900:BS:CCH:ARFC 30\n"); 
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 
	InsertListItem(pnl,PNL_LISTBOX,-1,"CCH Channel 30","CCH Channel 30");
	strcpy(buffer,"CONF:GSM900:BS:TCH:ARFC 62\n"); 
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 
	InsertListItem(pnl,PNL_LISTBOX,-1,"TCH Channel 62","TCH Channel 62");
//Antenna Parameters check
//CONFigure:<system>:PATTenuation:LEVel <RX>, <TX>
	strcpy(buffer,"CONF:GSM900:PATT:LEV 9,8\n"); 
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 
	//InsertListItem(pnl,PNL_LISTBOX,-1,"","");
	
//Average Power(62,5)
	strcpy(buffer,"conf:gsm:ms:tch:plev 5\n"); 
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 
	InsertListItem(pnl,PNL_LISTBOX,-1,"Power Level 5","Power Level 5");
/*
FlushInQ (comport);	
Inqlength = GetInQLen (comport);
ComRd (comport, buffer, Inqlength);
sscanf(buffer,"%d",&StatusRegister);
*/

//Turn on the MS
	SetCtrlVal (pnl, PNL_TEXTMSG, STR_TURN_ON_MS);
	ProcessSystemEvents();
	//Delay(MAX_POWERUP_TIME); 

	strcpy(buffer,"CALL:BSOR\n");                
	bytewrite=ComWrt (comport, buffer, strlen(buffer));
	InsertListItem(pnl,PNL_LISTBOX,-1,"Calling...","Calling...");
	ProcessSystemEvents();

/*
			FlushInQ (comport);
			strcpy(buffer,"STAT:OPER:SIGN?\n");                
			bytewrite=ComWrt (comport, buffer, strlen(buffer));
			Delay(30);
			Inqlength = GetInQLen (comport);
			strcpy(buffer,""); 
			strcpy(buffer,"STAT:OPER:SIGN?\n");
			ComRd (comport, buffer, Inqlength);
			sscanf(buffer,"%d",&StatusRegister);
*/
	for (i=0;i<MAX_CALLCONNECT_TIME/DELAY;i++)
		{
			FlushInQ (comport);
			//FlushOutQ(comport); 
			strcpy(buffer,"STAT:OPER:SIGN?\n");                
			bytewrite=ComWrt (comport, buffer, strlen(buffer));
			for (j=0;j<MAX_TIME_WAIT_REG/DELAY;j++)
				{
					Delay(DELAY);
					Inqlength = GetInQLen (comport);
					if(Inqlength==SIG_REG_SIZE)
						{
							ComRd (comport, buffer, Inqlength);
							sscanf(buffer,"%d",&StatusRegister);
							break;
						}
				}
			if(StatusRegister==REG_CALL_ACTIVE)
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"Call Connected","Call Connected");
					ProcessSystemEvents();
					break;
				}
				
		}	

/*
	for (i=0;i<MAX_CALLCONNECT_TIME;i++)
		{
			FlushInQ (comport);
			strcpy(buffer,"STAT:OPER:SIGN?\n");                
			bytewrite=ComWrt (comport, buffer, strlen(buffer));
			Delay(DELAY);
			Inqlength = GetInQLen (comport);
			if(Inqlength!=0)
				{
					ComRd (comport, buffer, Inqlength);
					sscanf(buffer,"%d",&StatusRegister);
					if(StatusRegister==64)
						{
							break;
						}
				}
				
		}	
	*/
	FlushInQ (comport);
	//Delay(MAX_CALLCONNECT_TIME);
	
//Average Power		
	SetCtrlVal (pnl, PNL_TEXTMSG, "GSM900 Testing...");  
	ProcessSystemEvents();
	InsertListItem(pnl,PNL_LISTBOX,-1,"GSM900 Testing...","GSM900 Testing...");
	strcpy(buffer,"MEAS:ARR:RFTR:GRO:ALL:MAV? 10\n");                        
	bytewrite=ComWrt (comport, buffer, strlen(buffer)); 
	FlushInQ (comport); 
	//FlushOutQ(comport); 
	strcpy(buffer,"");
	for (i=0;i<IO_QUEUE_SIZE;i++)
		{
			buffer[i]='\0';
		}
	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(&GSM900TestData);
	ResetTestResult(&GSM900TestResult);

	sscanf(buffer,"%e",&GSM900TestData.PeakPhaseErrorAvg);

	for(i=0;i<MAX_IN_BUFFER_UPDATE_TIME;i++)
		{
			if(
				(((GSM900TestData.PeakPhaseErrorAvg-64)<TOLERANCE)&&((GSM900TestData.PeakPhaseErrorAvg-64)>-TOLERANCE))
				||(((GSM900TestData.PeakPhaseErrorAvg-0)<TOLERANCE)&&((GSM900TestData.PeakPhaseErrorAvg-0)>-TOLERANCE))
				)
				{
					Delay(DELAY);
					ComRd (comport, buffer, Inqlength);  //?
					sscanf(buffer,"%e",&GSM900TestData.PeakPhaseErrorAvg);
				}
			else
				{
					#ifdef DEBUG_TEST
					sprintf(TestReport,"i=%d",i);
					InsertListItem(pnl,PNL_LISTBOX,-1,TestReport,TestReport);
					ProcessSystemEvents();
					#endif
					break;
				}
			
			#ifdef DEBUG_TEST
					//sprintf(TestReport,"i=%d",i);
			if (i==MAX_IN_BUFFER_UPDATE_TIME-1)
				{
					InsertListItem(pnl,PNL_LISTBOX,-1,"MAX_IN_BUFFER_UPDATE_TIME Expired","MAX_IN_BUFFER_UPDATE_TIME Expired");
					ProcessSystemEvents();
				}
			#endif
		}
	sscanf(buffer,"%e,%e,%e,%e,%e",&GSM900TestData.PeakPhaseErrorAvg,
								   &GSM900TestData.RMSPhaseErrorAvg,
								   &GSM900TestData.FrequencyErrorAvg,
								   &GSM900TestData.BurstLengthAvg,
								   &GSM900TestData.PowerAvg);
	FlushInQ (comport);

	MeasResultEvaluate(&GSM900SpecData,&GSM900TestData,&GSM900TestResult);

	sprintf(TestReport,"GSM900, Average Power: %f dbm; Spec Range: %d dbm ~ %d dbm; %s",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -