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

📄 eeprom.c

📁 Atheros AP Test with Agilent N4010A source code
💻 C
📖 第 1 页 / 共 3 页
字号:
		pDataPerChannel = pChannelInfo->pDataPerChannel11b;		xpdGainMask = pChannelInfo->xpd_mask11b;		break;	default:		printf("Illegal mode passed to printfChannelInfo_gen3\n");		return;	}	//calculate the value of xpdgains	for (jj = 0; jj < NUM_XPD_PER_CHANNEL; jj++) {		if (((xpdGainMask >> jj) & 1) > 0) {			xpdGainValues[numXpdGain++] = (A_UINT16) jj;					}	}	uiPrintf("\n");	if(mode == MODE_11A) {		uiPrintf("=========================Calibration Information============================\n");		k_end = 10;		i_end = 5;	}	else {		uiPrintf("               ==========Calibration Information=============\n");		k_end = 3;		i_end = 3;	}	for (k = 0; k < k_end; k+=5) {		if(mode != MODE_11A) {			uiPrintf("               ");		}		for(i = k; i < (k + i_end); i++) {			uiPrintf("|     %04d     ",				pDataPerChannel[i].channelValue);		}		uiPrintf("|\n");		    	if(mode == MODE_11A) {	    	uiPrintf("|==============|==============|==============|==============|==============|\n");		}		else {    		uiPrintf("               |==============|==============|==============|\n");			uiPrintf("               ");		}		for(i = k; i < (k + i_end); i++) {			uiPrintf("|pcdac pwr(dBm)");		}		uiPrintf("|\n");    	if(mode == MODE_11A) {			uiPrintf("|              |              |              |              |              |\n");			uiPrintf("| XPD_Gain %2d  |              |              |              |              |\n", 				xpdGainMapping[xpdGainValues[0]]);			}		else {    		uiPrintf("               | XPD_Gain %2d  |              |              |\n",				xpdGainMapping[xpdGainValues[0]]);	    		uiPrintf("               |              |              |              |\n");		}		    	if(mode != MODE_11A) {			uiPrintf("               ");				}		for(i = k; i < (k + i_end); i++) {			pcdacValues[i] = pDataPerChannel[i].pcd1_xg0;			uiPrintf("|  %02d  %6.2f  ", pcdacValues[i],	((float)(pDataPerChannel[i].pwr1_xg0)/4));		}		uiPrintf("|\n");    	if(mode != MODE_11A) {			uiPrintf("               ");				}		for(i = k; i < (k + i_end); i++) {			pcdacValues[i] += pDataPerChannel[i].pcd2_delta_xg0;			uiPrintf("|  %02d  %6.2f  ", pcdacValues[i],	((float)(pDataPerChannel[i].pwr2_xg0)/4));		}		uiPrintf("|\n");    	if(mode != MODE_11A) {			uiPrintf("               ");				}		for(i = k; i < (k + i_end); i++) {			pcdacValues[i] += pDataPerChannel[i].pcd3_delta_xg0;			uiPrintf("|  %02d  %6.2f  ", pcdacValues[i],	((float)(pDataPerChannel[i].pwr3_xg0)/4));		}		uiPrintf("|\n");    	if(mode != MODE_11A) {			uiPrintf("               ");				}		for(i = k; i < (k + i_end); i++) {			pcdacValues[i] += pDataPerChannel[i].pcd4_delta_xg0;			uiPrintf("|  %02d  %6.2f  ", pcdacValues[i],	((float)(pDataPerChannel[i].pwr4_xg0)/4));		}		uiPrintf("|\n");    	if(mode != MODE_11A) {			uiPrintf("               ");				}				for(i = k; i < (k + i_end); i++) {			pcdacValues[i] = 63;			uiPrintf("|  %02d  %6.2f  ", pcdacValues[i],	((float)(pDataPerChannel[i].maxPower_t4)/4));		}		uiPrintf("|\n");		    	if(mode == MODE_11A) {			uiPrintf("|              |              |              |              |              |\n");			}		else {    		uiPrintf("               |              |              |              |\n");			}		if(numXpdGain > 1) {    		if(mode == MODE_11A) {				uiPrintf("| XPD_Gain %2d  |              |              |              |              |\n", 					xpdGainMapping[xpdGainValues[1]]);				}			else {    			uiPrintf("               | XPD_Gain %2d  |              |              |\n",					xpdGainMapping[xpdGainValues[1]]);				}	    	if(mode != MODE_11A) {				uiPrintf("               ");					}			for(i = k; i < (k + i_end); i++) {				uiPrintf("|  %02d  %6.2f  ", 20,	((float)(pDataPerChannel[i].pwr1_xg3)/4));			}			uiPrintf("|\n");	    	if(mode != MODE_11A) {				uiPrintf("               ");					}			for(i = k; i < (k + i_end); i++) {				uiPrintf("|  %02d  %6.2f  ", 35,	((float)(pDataPerChannel[i].pwr2_xg3)/4));			}			uiPrintf("|\n");	    	if(mode != MODE_11A) {				uiPrintf("               ");					}			for(i = k; i < (k + i_end); i++) {				uiPrintf("|  %02d  %6.2f  ", 63,	((float)(pDataPerChannel[i].pwr3_xg3)/4));			}			uiPrintf("|\n");		}		if(mode == MODE_11A) {			uiPrintf("|==============|==============|==============|==============|==============|\n");		} else {			uiPrintf("               |==============|==============|==============|\n");		}	}}voidprintfChannelInfo_gen5( EEPROM_FULL_DATA_STRUCT_GEN5 *pChannelInfo,  A_UINT32 mode){	EEPROM_DATA_PER_CHANNEL_GEN5	*pDataPerChannel;	A_UINT16 channelCount, channelRowCnt, vpdCount;	A_UINT16 pdadcValues[10];	A_INT16  powerValues_t2[10];	A_UINT16 xpdGainMask;	A_UINT16 channelRowCnt_end, channelCount_end;	A_UINT16 xpdGainValues[NUM_XPD_PER_CHANNEL];	A_UINT16 numXpdGain = 0;	A_UINT16 pdGainCount;	if (!pChannelInfo) {	   printf("printfChannelInfo_gen5::NULL channel info passed\n");	   return;	}	switch(mode) {	case MODE_11A:		pDataPerChannel = pChannelInfo->pDataPerChannel11a;		xpdGainMask = pChannelInfo->xpd_mask11a;		break;	case MODE_11G:	case MODE_11O:		pDataPerChannel = pChannelInfo->pDataPerChannel11g;		xpdGainMask = pChannelInfo->xpd_mask11g;		break;	case MODE_11B:		pDataPerChannel = pChannelInfo->pDataPerChannel11b;		xpdGainMask = pChannelInfo->xpd_mask11b;		break;	default:		printf("Illegal mode passed to printfChannelInfo_gen5\n");		return;	}	//calculate the value of xpdgains	for (pdGainCount = 0; pdGainCount < MAX_NUM_PDGAINS_PER_CHANNEL; pdGainCount++) {		if (((xpdGainMask >> (MAX_NUM_PDGAINS_PER_CHANNEL-pdGainCount-1)) & 1) > 0) {			if (numXpdGain >= MAX_NUM_PDGAINS_PER_CHANNEL) {				printf("A maximum of 4 pd_gains supported in eep_to_raw_data for gen5\n");				exit(0);			}			xpdGainValues[numXpdGain++] = (A_UINT16) (MAX_NUM_PDGAINS_PER_CHANNEL-pdGainCount-1);					}	}	uiPrintf("\n");	if(mode == MODE_11A) {		uiPrintf("=========================Calibration Information============================\n");		channelRowCnt_end = 10;		channelCount_end = 5;	}	else {		uiPrintf("=========================Calibration Information=============\n");		channelRowCnt_end = 4;		channelCount_end = 4;	}	for (channelRowCnt = 0; channelRowCnt < channelRowCnt_end; channelRowCnt+=5) {		if(mode != MODE_11A) {//			uiPrintf("               ");		}		for(channelCount = channelRowCnt; channelCount < (channelRowCnt + channelCount_end); channelCount++) {			uiPrintf("|     %04d     ",				pDataPerChannel[channelCount].channelValue);		}		uiPrintf("|\n");		    	if(mode == MODE_11A) {	    	uiPrintf("|==============|==============|==============|==============|==============|\n");		}		else {    		uiPrintf("===============|==============|==============|==============|\n");//			uiPrintf("               ");		}		for(channelCount = channelRowCnt; channelCount < (channelRowCnt + channelCount_end); channelCount++) {			uiPrintf("|pdadc pwr(dBm)");		}		uiPrintf("|\n");		for(pdGainCount = 0; pdGainCount < numXpdGain; pdGainCount++) {			if(mode == MODE_11A) {				uiPrintf("|              |              |              |              |              |\n");				uiPrintf("| PD_Gain %2d   |              |              |              |              |\n", 					xpdGainMapping_gen5[xpdGainValues[pdGainCount]]);				}			else {    			uiPrintf("| PD_Gain %2d   |              |              |              |\n",					xpdGainMapping_gen5[xpdGainValues[pdGainCount]]);	    			uiPrintf("|              |              |              |              |\n");			}			    		if(mode != MODE_11A) {	//			uiPrintf("               ");					}			for(channelCount = channelRowCnt; channelCount < (channelRowCnt + channelCount_end); channelCount++) {				pdadcValues[channelCount] = pDataPerChannel[channelCount].Vpd_I[pdGainCount];				powerValues_t2[channelCount] = pDataPerChannel[channelCount].pwr_I[pdGainCount] * 2;				uiPrintf("|  %03d %6.2f  ", pdadcValues[channelCount],	((float)(powerValues_t2[channelCount])/2));			}			uiPrintf("|\n");    		if(mode != MODE_11A) {//				uiPrintf("               ");					}			for(vpdCount = 0; vpdCount < NUM_POINTS_OTHER_PDGAINS - 1; vpdCount++) {				for(channelCount = channelRowCnt; channelCount < (channelRowCnt + channelCount_end); channelCount++) {					pdadcValues[channelCount] += pDataPerChannel[channelCount].Vpd_delta[vpdCount][pdGainCount];					powerValues_t2[channelCount] += pDataPerChannel[channelCount].pwr_delta_t2[vpdCount][pdGainCount];					uiPrintf("|  %03d %6.2f  ", pdadcValues[channelCount],	((float)(powerValues_t2[channelCount])/2));				}				uiPrintf("|\n");	   			if(mode != MODE_11A) {//					uiPrintf("               ");						}			}			if(pdGainCount == numXpdGain - 1) {  //this is the last xpdgain, has an extra set				for(channelCount = channelRowCnt; channelCount < (channelRowCnt + channelCount_end); channelCount++) {					pdadcValues[channelCount] += pDataPerChannel[channelCount].Vpd_delta[vpdCount][pdGainCount];					powerValues_t2[channelCount] += pDataPerChannel[channelCount].pwr_delta_t2[vpdCount][pdGainCount];					uiPrintf("|  %03d %6.2f  ", pdadcValues[channelCount],	((float)(powerValues_t2[channelCount])/2));				}				uiPrintf("|\n");	    		if(mode != MODE_11A) {//					uiPrintf("               ");						}			}			    		if(mode == MODE_11A) {				uiPrintf("|              |              |              |              |              |\n");				}			else {    			uiPrintf("|              |              |              |              |\n");				}		}		if(mode == MODE_11A) {			uiPrintf("|==============|==============|==============|==============|==============|\n");		} else {			uiPrintf("|==============|==============|==============|==============|\n");		}	}}void printEepromStruct_16K( A_UINT32	devNum, A_UINT32	mode){	void				*pTempPtr;	MDK_EEP_HEADER_INFO		*pHeaderPtr;	//need to keep a copy of header pointer for later	A_UINT16 testGroups[MAX_NUM_CTL];	A_UINT16 numCtl, minorRevision, majorRevision;
	if(isDragon_sd(swDeviceID)) {
//	if(1){
	    printAR6000Eeprom(devNum);		return;		}	
	art_GetEepromStruct(devNum, EEP_HEADER_16K, &pTempPtr);	pHeaderPtr = (MDK_EEP_HEADER_INFO *)pTempPtr; 	printHeaderInfo_16K(pHeaderPtr, mode);	//take a copy of the NUM_CTL test groups for later	memcpy(testGroups, pHeaderPtr->testGroups, sizeof(A_UINT16) * pHeaderPtr->numCtl);	numCtl = pHeaderPtr->numCtl;	minorRevision = pHeaderPtr->minorVersion;	majorRevision = pHeaderPtr->majorVersion;	uiPrintf("\nPress any key to continue\n");	while(!kbhit());	getch();	if((majorRevision ==3) ||		((majorRevision >= 4) && (pHeaderPtr->eepMap == 0))){		art_GetEepromStruct(devNum, EEP_CHANNEL_INFO_16K, &pTempPtr);		printChannelInfo_16K((MDK_PCDACS_ALL_MODES *)pTempPtr, mode);	}	else if((majorRevision >=4) && pHeaderPtr->eepMap==1) {		art_GetEepromStruct(devNum, EEP_GEN3_CHANNEL_INFO, &pTempPtr);		printfChannelInfo_gen3((EEPROM_FULL_DATA_STRUCT_GEN3 *)pTempPtr, mode);	}	else if(majorRevision ==5) {		art_GetEepromStruct(devNum, EEP_GEN5_CHANNEL_INFO, &pTempPtr);		printfChannelInfo_gen5((EEPROM_FULL_DATA_STRUCT_GEN5 *)pTempPtr, mode);	}	else {		uiPrintf("ERROR: EEPROM version number NOT supported for displaying channel info\n");	}	uiPrintf("\nPress any key to continue\n");	while(!kbhit());	getch();	art_GetEepromStruct(devNum, EEP_TRGT_POWER_16K, &pTempPtr);	printTargetPowerInfo_16K((MDK_TRGT_POWER_ALL_MODES *)pTempPtr, mode);	uiPrintf("\nPress any key to continue\n");	while(!kbhit());	getch();	art_GetEepromStruct(devNum, EEP_RD_POWER_16K, &pTempPtr);	printRDEdges_16K((MDK_RD_EDGES_POWER *)pTempPtr, testGroups, mode, numCtl, majorRevision, minorRevision);	uiPrintf("\nPress any key to continue\n");	while(!kbhit());	getch();	return;}

⌨️ 快捷键说明

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