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

📄 mainbak1.c

📁 这是用Labwindows开发的一个RF test程序。 用于日本机种的组装后ANT 测试。
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "Windows.h"
#include "wtypes.h"   
#include "Winnetwk.h" 
#include <utility.h>
#include <ansi_c.h>
#include <rs232.h>
#include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */
#include <userint.h>
#include "interface.h"

#include"ErrorReport.h"

#define DEBUG_TEST

#define INI_FILE_NAME ".\\Sfis.ini"
#define SERVER_SEC "SfServerInfo"
#define CLIENT_SEC "ClientInfo"
#define STATION_NAME "AntennaTest"
#define SPEC_FILE_NAME "AT.spe"
#define SPEC_FILE_VER "1.0"
#define STR_TURN_ON_MS "TURN ON the MS!"
#define STRINGLENGTH 256
#define BUFFERLENGTH 256
#define IO_QUEUE_SIZE 512
#define SIG_REG_SIZE 4
#define TEST_DATA_SIZE 66
#define MAX_TIME_WAIT_REG 10
#define REG_CALL_ACTIVE		64
#define SN_SIZE 16
#define IMEI_SIZE 17
#define TEST_TIME_SIZE 14	//yyyymmddhhmmss
#define COM1 1
#define COM2 2
#define COM3 3
#define COM4 4
#define BAUDRATE 38400
#define DELAY 1 //delay precision
#define MAX_MEAS_TIME	10 //Time wait for measurement ,second
#define MAX_POWERUP_TIME 10 //second
#define MAX_CALLCONNECT_TIME 60  //second
#define SFIF_Delay 0.5
#define SFIF_TRY 50
#define FAIL 1
#define PASS 0
//#define VAL_RED 0xFF0000L
#define VAL_DEFAULT 0xCCFFFFL   //NEC ?&H00FFFFC0&
#define SPESTRLINES 10
#define SPESTRLINES2 3
#define SYSTEM_TIME_STRING_SIZE 9
#define ERROR_STRING_NUMBER 50

struct IniData
{
//Server
	char HostName[STRINGLENGTH];
	char RequestDir[STRINGLENGTH];
	char ResponseDir[STRINGLENGTH];
	char ResultDir[STRINGLENGTH];
	char Folderspe[STRINGLENGTH];
	char UserName[STRINGLENGTH];
	char Password[STRINGLENGTH];
//Client
	char Folder[STRINGLENGTH];
	char RequestLogDrive[STRINGLENGTH];
	char ResponseLogDrive[STRINGLENGTH];
	char ResultLogDir[STRINGLENGTH];
	char FolderLogDir[STRINGLENGTH];
	char Station[STRINGLENGTH];
	char LineNo[STRINGLENGTH];
	char Employee[STRINGLENGTH];
};

struct IniKeyName
{
//Server
	char HostName[STRINGLENGTH];
	char RequestDir[STRINGLENGTH];
	char ResponseDir[STRINGLENGTH];
	char ResultDir[STRINGLENGTH];
	char Folderspe[STRINGLENGTH];
	char UserName[STRINGLENGTH];
	char Password[STRINGLENGTH];
//Client
	char Folder[STRINGLENGTH];
	char RequestLogDrive[STRINGLENGTH];
	char ResponseLogDrive[STRINGLENGTH];
	char ResultLogDir[STRINGLENGTH];
	char FolderLogDir[STRINGLENGTH];
	char Station[STRINGLENGTH];
	char LineNo[STRINGLENGTH];
	char Employee[STRINGLENGTH];
};


struct SpecData
{
	int PowerAvgH;
	int PowerAvgL;
	int PeakPhaseErrorH;
	int PeakPhaseErrorL;
	int RMSPhaseErrorH;
	int RMSPhaseErrorL;
};

struct TestData
{
	char SN[SN_SIZE];
	float PeakPhaseErrorAvg;
	float RMSPhaseErrorAvg;
	float FrequencyErrorAvg;
	float BurstLengthAvg;
	float PowerAvg;	
};

struct TestResult
{
//Bool variables:0:Pass;1:Fail
	int PeakPhaseErrorAvg;
	int RMSPhaseErrorAvg;
	int FrequencyErrorAvg;
	int BurstLengthAvg;
	int PowerAvg;	
};

struct TimeType
{	
	int hour;
	int minute;
	int second;
};

struct DateType
{
	int year;
	int month;
	int day;
};

struct CSVFileRecord
{
	char SerialNumber[SN_SIZE+1];
	char	IMEI[IMEI_SIZE+1];
	char TESTTIME[TEST_TIME_SIZE+1];//yyyymmddhhmmss
	char StationName[STRINGLENGTH];
	char SpecFileName[STRINGLENGTH];
	char SpecFileVer[STRINGLENGTH];
};

static int pnl;
int RS232Error,bytewrite,Inqlength,comport;
//int BackColor;
char buffer[IO_QUEUE_SIZE];
struct IniData iniData;
struct IniKeyName iniKeyName;
struct SpecData GSM900SpecData,PCN1800SpecData;
struct TestData GSM900TestData,PCN1800TestData;
struct TestResult GSM900TestResult,PCN1800TestResult;
struct TimeType SystemTime;
struct DateType SystemDate;
struct CSVFileRecord csvFileRecord;
enum ErrorCode errorCode;
char * ErrorString[ERROR_STRING_NUMBER];

DWORD (*funcPtrWNetAddCon) (
							LPNETRESOURCE lpNetResource,  // connection details
							LPCTSTR lpPassword,           // password
							LPCTSTR lpUsername,           // user name
							DWORD dwFlags  );
DWORD (*funcPtrWNetCancelCon)(
							LPCTSTR lpName,  // resource name
							DWORD dwFlags,   // connection type
							BOOL fForce      // unconditional disconnect option
							);

int InitIniKey()
{
	strcpy(iniKeyName.HostName,"HostName");
	strcpy(iniKeyName.RequestDir,"RequestDir");
	strcpy(iniKeyName.ResponseDir,"ResponseDir");
	strcpy(iniKeyName.ResultDir,"ResultDir");
	strcpy(iniKeyName.Folderspe,"Folderspe");
	strcpy(iniKeyName.UserName,"UserName");
	strcpy(iniKeyName.Password,"Password");
	strcpy(iniKeyName.Folder,"Folder");
	strcpy(iniKeyName.RequestLogDrive,"RequestLogDrive");
	strcpy(iniKeyName.ResponseLogDrive,"ResponseLogDrive");
	strcpy(iniKeyName.ResultLogDir,"ResultLogDir");
	strcpy(iniKeyName.FolderLogDir,"FolderLogDir");
	strcpy(iniKeyName.Station,"Station");
	strcpy(iniKeyName.LineNo,"LineNo");
	strcpy(iniKeyName.Employee,"Employee");
	return 0;
}

int ReadIniFile()
{
	DWORD dNum;
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.HostName,
						"",iniData.HostName,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.RequestDir,
						"",iniData.RequestDir,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.ResponseDir,
						"",iniData.ResponseDir,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.ResultDir,
						"",iniData.ResultDir,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.Folderspe,
						"",iniData.Folderspe,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.UserName,
						"",iniData.UserName,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(SERVER_SEC,
						iniKeyName.Password,
						"",iniData.Password,
						STRINGLENGTH,INI_FILE_NAME);
	
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.Folder,
						"",iniData.Folder,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.RequestLogDrive,
						"",iniData.RequestLogDrive,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.ResponseLogDrive,
						"",iniData.ResponseLogDrive,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.ResultLogDir,
						"",iniData.ResultLogDir,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.FolderLogDir,
						"",iniData.FolderLogDir,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.Station,
						"",iniData.Station,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.LineNo,
						"",iniData.LineNo,
						STRINGLENGTH,INI_FILE_NAME);
	dNum=GetPrivateProfileString(CLIENT_SEC,
						iniKeyName.Employee,
						"",iniData.Employee,
						STRINGLENGTH,INI_FILE_NAME);
	return 0;
}
int GetCSVFileName(char * filename)
{
	char CSVfilename[STRINGLENGTH];
	char temp[2];
	char year[5];
	int status;
	status = GetSystemDate (&SystemDate.month, &SystemDate.day, &SystemDate.year);
	strcpy (CSVfilename,".\\TestLog\\");
	strcat (CSVfilename,STATION_NAME);
	strcat(CSVfilename,"_");
	
	year[0]=SystemDate.year/1000+48;
	year[1]=(SystemDate.year-(year[0]-48)*1000)/100+48;
	year[2]=(SystemDate.year-(year[0]-48)*1000-(year[1]-48)*100)/10+48;
	year[3]=(SystemDate.year-(year[0]-48)*1000-(year[1]-48)*100-(year[2]-48)*10)+48;	
	year[4]='\0';
	strcat(CSVfilename,year);
	strcat(CSVfilename,"-");
	temp[0]=SystemDate.month/10+48;
	temp[1]='\0';
	strcat(CSVfilename,temp);
	temp[0]=SystemDate.month-SystemDate.month/10*10+48;
	strcat(CSVfilename,temp);
	strcat(CSVfilename,"-");
	temp[0]=SystemDate.day/10+48;
	strcat(CSVfilename,temp);
	temp[0]=SystemDate.day-SystemDate.day/10*10+48;
	strcat(CSVfilename,temp);
	strcat(CSVfilename,".csv");
	strcpy(filename,CSVfilename);
	return 0;
}

int ImportNetFuncs()
{
	char path[STRINGLENGTH];
	char *funcname;
	int moduleID;
	int status;

	strcpy(path,"mpr.lib");
	moduleID=LoadExternalModule(path);
	funcname="WNetAddConnection2A";
	funcPtrWNetAddCon = GetExternalModuleAddr (moduleID, funcname, &status);
	funcname="WNetCancelConnection2A";
	funcPtrWNetCancelCon = GetExternalModuleAddr (moduleID, funcname, &status);
	return 0;
}
int NetConnection(char * strRemotePCName,char * strRemoteDirName,char * strLocdriveName)
{
	DWORD dwResult;
	char strtemp[BUFFERLENGTH];
	//char path[STRINGLENGTH];
	int result;

	NETRESOURCE RemoteDrive;
	RemoteDrive.dwScope = RESOURCE_GLOBALNET;
	RemoteDrive.dwType = RESOURCETYPE_DISK;
	RemoteDrive.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
	RemoteDrive.dwUsage = RESOURCEUSAGE_CONNECTABLE;
	RemoteDrive.lpLocalName = strLocdriveName;
	strcpy(strtemp,"\\\\");
	strcat(strtemp,strRemotePCName);
	strcat(strtemp,"\\"); 
	strcat(strtemp,strRemoteDirName);
	RemoteDrive.lpRemoteName =strtemp; 

	//RemoteDrive.lpLocalName = "x:";
	//RemoteDrive.lpRemoteName ="\\\\frankzheng\\dl"; 
	dwResult=(*funcPtrWNetAddCon)(&RemoteDrive,NULL,NULL,CONNECT_UPDATE_PROFILE);	
	return 0;
}

//int NetCancelConnection(char * LogdriveName,DWORD dwFlags,BOOL fForce  )
int NetCancelConnection(char * LogdriveName)
{
	DWORD dwResult;
	//dwResult=(*funcPtrWNetCancelCon)(LogdriveName,dwFlags,fForce);
	dwResult=(*funcPtrWNetCancelCon)(LogdriveName,CONNECT_UPDATE_PROFILE,1);	
	return 0;
}

int ConnectSFIS()
{
	NetCancelConnection(iniData.RequestLogDrive);
	NetCancelConnection(iniData.ResponseLogDrive);
	NetCancelConnection(iniData.ResultLogDir);
	NetCancelConnection(iniData.FolderLogDir);
	#ifdef DEBUG_TEST
	//test
	NetConnection("frankzheng","Request",iniData.RequestLogDrive);
	NetConnection("frankzheng","response",iniData.ResponseLogDrive);
	NetConnection("frankzheng","Result",iniData.ResultLogDir);
	NetConnection("frankzheng","Folder",iniData.FolderLogDir);

	#endif
	
	NetConnection(iniData.HostName,iniData.RequestDir,iniData.RequestLogDrive);
	NetConnection(iniData.HostName,iniData.ResponseDir,iniData.ResponseLogDrive);
	NetConnection(iniData.HostName,iniData.ResultDir,iniData.ResultLogDir); 
	NetConnection(iniData.HostName,iniData.Folder,iniData.FolderLogDir);
	
	return 0;
}

int WriteRequestFile()
{
	FILE *fRequest;
	char filename[STRINGLENGTH];
	strcpy(filename,iniData.RequestLogDrive);
	strcat(filename,"\\");
	strcat(filename,GSM900TestData.SN);
	strcat(filename,".txt");

	
	fRequest=fopen( filename, "w" );
	//Fileopen failed
	if (fRequest==NULL) 
		{
			;
		
		}
	//Fileopen OK
	else
		{
			fprintf(fRequest,"%s;%s;%s",GSM900TestData.SN,iniData.LineNo,iniData.Station);
			fclose(fRequest);
		}
	return 0;
	
}

int CheckResponseFile()
{
	int i,j;
	FILE *fResponse;
	char filename[STRINGLENGTH];
	char buffer[STRINGLENGTH];
	//char buffer2[STRINGLENGTH];
	char PassFail[5];
	char ErrorCode[STRINGLENGTH];
	char ErrorDis[STRINGLENGTH];
	char* index;
	char ch;
	strcpy(filename,iniData.ResponseLogDrive);
	strcat(filename,"\\");
	strcat(filename,GSM900TestData.SN);
	strcat(filename,".SF");
	//strcpy(buffer,"\0");
	//strcpy(ErrorCode,"\0");
	//strcpy(ErrorDis,"\0");
	for(i=0;i<STRINGLENGTH;i++)
		{
			buffer[i]=0;
			ErrorCode[i]=0;
			ErrorDis[i]=0;
		}
	for (i=0;i<SFIF_TRY;i++)
		{
			Delay(SFIF_Delay);
			fResponse=fopen( filename, "r" );
			//Response File does not exist.
			if (fResponse==NULL) 
				{
					//continue;
				}
			//Fileopen OK
			else
				{
				
				//fclose(fResponse);
				break;
				}
			
		}//end for
	if (fResponse==NULL)
		{
		//"Can not open Response File,please check the network or the SFIF server"
			;
		}
	else
		{
			//Response file open OK.
			//fscanf(fResponse,"%s",buffer);
			for (i=0;i<STRINGLENGTH;i++)
				{	
					ch=fgetc(fResponse);
					if (ch==EOF)
						break;
					buffer[i]=ch;
				}		
			index=strstr(buffer,";");
			if (index!=NULL)
				{
					for(i=0;i<4;i++)
						{
							PassFail[i]=*(index+i+1);
						}
					PassFail[4]='\0';
					if (!strcmp(PassFail,"PASS"))
						{
							//Pass
							return 0;
						}
					else
						{
							if (!strcmp(PassFail,"FAIL"))
								{
									i=0;
									while(index[i+6]!=';')
										{
											ErrorCode[i]=index[i+6];
											i++;
										}
									i++;
									ErrorCode[i]='\0';
									j=0;
									while(index[i+6]!=';')
										{
										/*
											if(index[i+6]==32)//' '
												{
													ErrorDis[j]=index[i+6];	
												}
												*/
												
											ErrorDis[j]=index[i+6];
											i++;
											j++;
										}
									j++;
									ErrorDis[j]='\0';
									//FAIL
									ConfirmPopup (ErrorCode, ErrorDis);
									return 1;
								}
						}
				}
			else
				{
					//Response File Error
				}
		}
	DeleteFile(filename);
	return 0;
	
}

int WriteResultFile()
{
	FILE *fResult;
	char filename[STRINGLENGTH];
	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
		{
			fprintf(fResult,"%s;%s;%s;%s;%s;%s",iniData.LineNo,iniData.Station,iniData.Employee,GSM900TestData.SN,"PASS","ERROR CODE");
			fclose(fResult);
		}
	return 0;
	
}
int ResetTestData(struct TestData *testdata)
{
	testdata->PeakPhaseErrorAvg=0;
	testdata->RMSPhaseErrorAvg=0;
	testdata->FrequencyErrorAvg=0;

⌨️ 快捷键说明

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