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

📄 test.c

📁 Atheros AP Test with Agilent N4010A source code
💻 C
📖 第 1 页 / 共 5 页
字号:
					if( fgets( commentBuffer, MAX_SIZE_COMMENT_BUFFER, stdin ) == NULL) {						printf( "fgets error\n" );						break;					}					if(commentBuffer[0] != '.') {						uiWriteToLog(commentBuffer);					}				}				//remote the . from comment buffer otherwise will fall through next time				commentBuffer[0] = 'a';			}			else {				uiPrintf("Unknown command\n");			}			break;		case 'M':			if((swDeviceID == 0xa014)||(swDeviceID == 0xa016)||(swDeviceID == 0xa017)){				if (configSetup.userInstanceOverride) {					if (configSetup.instance == 1) {						tempDevNum = art_setupDevice(2);						if(tempDevNum < 0) {							uiPrintf("main: Error attaching to the second device - ending test\n");							closeEnvironment();							exit(0);						}						art_configureLibParams(tempDevNum);						if (CalSetup.instanceForMode[MODE_11g] == 2) {							devNum_2g = tempDevNum;						} else {							devNum_2g = devNum;						}						if (CalSetup.instanceForMode[MODE_11a] == 2) {							devNum_5g = tempDevNum;						} else {							devNum_5g = devNum;						}					} else {						tempDevNum = art_setupDevice(1);						if(tempDevNum < 0) {							uiPrintf("main: Error attaching to the second device - ending test\n");							closeEnvironment();							exit(0);						}						art_configureLibParams(tempDevNum);						if (CalSetup.instanceForMode[MODE_11g] == 1) {							devNum_2g = tempDevNum;						} else {							devNum_2g = devNum;						}						if (CalSetup.instanceForMode[MODE_11a] == 1) {							devNum_5g = tempDevNum;						} else {							devNum_5g = devNum;						}					}//                art_teardownDevice(devNum_2g);//                devNum = devNum_5g;				}			} else {				devNum_2g = devNum;				devNum_5g = devNum;			}			art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);			topCalibrationEntry(&devNum_5g, &devNum_2g);			break;#endif  // __ATH_DJGPPDOS__//Take out for now        case 'X'://            testMenu(devNum);//            break;		case 'f':		case 'F':			printf("Press a key to write 0\n");			getch();//            art_ap_reg_write(devNum, 0x0b10008, 0);			art_ap_reg_write(devNum, 0x0b10000, 0);//            art_ap_reg_write(devNum, 0x0b10000, 0);			//art_ap_reg_write(devNum, 0x0b10008, 0);			printf("Press a key to write 1\n");			getch();//            art_ap_reg_write(devNum, 0x0b10000, 3);			art_ap_reg_write(devNum, 0x0b10000, 3);			printf("Press a key to write 0\n");			getch();//            art_ap_reg_write(devNum, 0x0b10000, 3);			art_ap_reg_write(devNum, 0x0b10000, 0);			break;		case 'd':		case 'D':				sleep_enable = !sleep_enable;				art_sleepCmd(devNum, sleep_enable);			break;		case 0x1b:		case 'Q':			exitLoop = TRUE;			uiPrintf("exiting\n");			break;		default:			uiPrintf("Unknown command\n");			break;		}	}	if(configSetup.logging) {		uilogClose();	}	uiPrintf("closing device\n");	art_teardownDevice(devNum);	if((devNum_2g != devNum_5g) && ((swDeviceID == 0xa014)||(swDeviceID == 0xa016)||(swDeviceID == 0xa017))&&(!configSetup.userInstanceOverride)) {		if(devNum == devNum_2g) {			art_teardownDevice(devNum_5g);		} else {			art_teardownDevice(devNum_2g);		}	}	uiPrintf("closing environment\n");	closeEnvironment();	uiPrintf("exiting\n");	exit(0);}void getSupportedModes (A_UINT32 devNum, SUPPORTED_MODES *pModes){	A_UINT16 tempValue;	if(configSetup.eepromLoad) {		//get the mode flags from reading eeprom		tempValue = (A_UINT16)art_eepromRead(devNum, 0xc2);		pModes->aMode = (A_BOOL)(tempValue & 0x01);		pModes->bMode = (A_BOOL)((tempValue >> 1) & 0x01);		pModes->gMode = (A_BOOL)((tempValue >> 2) & 0x01);	}	else {#ifndef __ATH_DJGPPDOS__		//get the values from the eep file		load_cal_section();		pModes->aMode = (A_BOOL)CalSetup.Amode;		pModes->bMode = (A_BOOL)CalSetup.Bmode;		pModes->gMode = (A_BOOL)CalSetup.Gmode;#endif //__ATH_DJGPPDOS__	}	if (isDragon_sd(swDeviceID)) {		pModes->bMode = 0;	}}A_UINT32 getFirstMode (SUPPORTED_MODES *pModes) {	A_UINT32 firstMode = configSetup.mode;	switch(configSetup.mode) {	case MODE_11A:		if(!pModes->aMode) {			if (pModes->gMode) {				firstMode = MODE_11G;			}			else if (pModes->bMode) {				firstMode = MODE_11B;			}		}		break;	case MODE_11G:	case MODE_11O:		if(!pModes->gMode) {			if (pModes->bMode) {				firstMode = MODE_11B;			}			else if (pModes->aMode) {				firstMode = MODE_11A;			}		}		break;	case MODE_11B:		if(!pModes->bMode) {			if(pModes->aMode) {				firstMode = MODE_11A;			}			else if (pModes->gMode) {				firstMode = MODE_11G;			}		}		break;	default:		uiPrintf("FATAL ERROR: Illegal mode inside getFirstMode()\n");		exit(1);	}	return(firstMode);}A_UINT32 getNextMode (SUPPORTED_MODES *pModes){	A_UINT32 nextMode = configSetup.mode;	switch(configSetup.mode) {	case MODE_11A:		if (pModes->gMode) {			nextMode = MODE_11G;		}		else if (pModes->bMode) {			nextMode = MODE_11B;		}		break;	case MODE_11G:		if (pModes->bMode) {			nextMode = MODE_11B;		}		else if (pModes->aMode) {			nextMode = MODE_11A;		}		break;	case MODE_11O:		if (pModes->bMode) {			nextMode = MODE_11B;		}		else if (pModes->aMode) {			nextMode = MODE_11A;		}		break;	case MODE_11B:		if(pModes->aMode) {			nextMode = MODE_11A;		}		else if (pModes->gMode) {			nextMode = MODE_11G;		}		break;	default:		uiPrintf("FATAL ERROR: Illegal mode inside getNextMode()\n");		exit(1);	}	return(nextMode);}A_BOOL supportMultiModes(SUPPORTED_MODES *pModes){	A_BOOL multiModes = FALSE;	if((pModes->aMode && pModes->bMode) ||		(pModes->aMode && pModes->gMode) ||		(pModes->gMode && pModes->bMode)) {		multiModes = TRUE;	}	return(multiModes);}void printDeviceInfo( A_UINT32 devNum){	SUB_DEV_INFO devStruct;	art_getDeviceInfo(devNum, &devStruct);	subSystemID = devStruct.subSystemID;	macRev = devStruct.macRev;	bbRev = devStruct.bbRevID;	analogProdRev = devStruct.aRevID & 0xf;#ifdef CUSTOMER_REL	if(isGriffin(swDeviceID)) {		if (isGriffin_1_0(macRev) || isGriffin_1_1(macRev) || isGriffin_2_0(macRev)) {			uiPrintf("\n\n###################################################################\n");			uiPrintf("Versions prior to AR2413 00 are not supported, please obtain an upgrade\n");			uiPrintf("###################################################################\n\n");			exit(0);		}	}#endif	//only want to print this info if it has not already been done so by library	//or its the AP	if(printLocalInfo) {		uiPrintf("                     =============================================\n");		uiPrintf("                     ");		switch(devStruct.subSystemID) {		case ATHEROS_CB21:    uiPrintf("|               AR5001a_cb                  |\n"); break;		case ATHEROS_CB22:    uiPrintf("|               AR5001x_cb                  |\n"); break;		case ATHEROS_MB22:    uiPrintf("|               AR5001x_mb                  |\n"); break;		case ATHEROS_MB23:    uiPrintf("|               AR5001a_mb                  |\n"); break;		case ATHEROS_AP21:    uiPrintf("|               AR5001ap_ap                 |\n"); break;		case ATHEROS_CB21G: uiPrintf("|               AR5001g_cb                  |\n"); break;		case ATHEROS_CB22G: uiPrintf("|               AR5001xp_cb                 |\n"); break;		case ATHEROS_MB21G: uiPrintf("|               AR5001g_mb                  |\n"); break;		case ATHEROS_MB22G:    uiPrintf("|               AR5001xp_mb                 |\n"); break;		case ATHEROS_MB31G_DESTUFF :    uiPrintf("|          AR5002g_mb31g (de-stuffed)       |\n"); break;		case ATHEROS_MB32AG :            uiPrintf("|          AR5002x_mb32ag                   |\n"); break;		case ATHEROS_MB22G_DESTUFF :    uiPrintf("|          AR5001g_mb22g (de-stuffed)       |\n"); break;		case ATHEROS_MB22AG_SINGLE :    uiPrintf("|          AR5001x_mb22ag (single-sided)    |\n"); break;		case ATHEROS_MB23_JAPAN :        uiPrintf("|          AR5001x_mb23j                    |\n"); break;		case ATHEROS_CB31G_DESTUFF :    uiPrintf("|          AR5002g_cb31g (de-stuffed)       |\n"); break;		case ATHEROS_CB32AG :            uiPrintf("|          AR5002x_cb32ag                   |\n"); break;		case ATHEROS_CB22G_DESTUFF :    uiPrintf("|          AR5001g_cb22g (de-stuffed)       |\n"); break;		case ATHEROS_AP30 :                uiPrintf("|          AR5002a_ap30                     |\n"); break;		case ATHEROS_AP30_040 :            uiPrintf("|          AR5002a_ap30 (040)               |\n"); break;		case ATHEROS_AP41 :                uiPrintf("|          AR5004ap_ap41g (g)               |\n"); break;		case ATHEROS_AP43 :                uiPrintf("|          AR5004ap_ap43g (g)               |\n"); break;		case ATHEROS_AP48 :                uiPrintf("|          AR5004ap_ap48ag (a/g)            |\n"); break;		case ATHEROS_CB41 :                uiPrintf("|          AR5004g_cb41g (g)                |\n"); break;		case ATHEROS_CB42 :                uiPrintf("|          AR5004x_cb42ag (a/g)             |\n"); break;		case ATHEROS_CB43 :                uiPrintf("|          AR5004g_cb43g (g)                |\n"); break;		case ATHEROS_MB41 :                uiPrintf("|          AR5004g_mb41g (g)                |\n"); break;		case ATHEROS_MB42 :                uiPrintf("|          AR5004x_mb42ag (a/g)             |\n"); break;		case ATHEROS_MB43 :                uiPrintf("|          AR5004g_mb43g (g)                |\n"); break;		case ATHEROS_MB44 :                uiPrintf("|          AR5004x_mb44ag (a/g)             |\n"); break;		case ATHEROS_CB51 :                uiPrintf("|          AR5005gs_cb51g (g super)         |\n"); break;		case ATHEROS_CB51_LITE :        uiPrintf("|          AR5005g_cb51g (g)                |\n"); break;		case ATHEROS_MB51 :                uiPrintf("|          AR5005gs_mb51g (g super)         |\n"); break;		case ATHEROS_MB51_LITE :        uiPrintf("|          AR5005g_mb51g (g)                |\n"); break;		case ATHEROS_USB_UB51 :         uiPrintf("|          AR5005ug_UB51 (g)                |\n"); break;		case ATHEROS_USB_UB52 :          uiPrintf("|          AR5005ux_UB52 (a/g)              |\n"); break;		case ATHEROS_CB62 :                uiPrintf("|          AR5006xs_cb62ag (a/g super)      |\n"); break;		case ATHEROS_CB62_LITE :        uiPrintf("|          AR5006x_cb62ag (a/g)             |\n"); break;		case ATHEROS_MB62 :                uiPrintf("|          AR5006xs_mb62ag (a/g super)      |\n"); break;		case ATHEROS_MB62_LITE :        uiPrintf("|          AR5006x_mb62g (a/g)              |\n"); break;		case ATHEROS_AP51_FULL :          uiPrintf("|          AR5006apgs_AP51 (g super)        |\n"); break;		case ATHEROS_AP51_LITE :          uiPrintf("|          AR5006apg_AP51 (g)               |\n"); break;		default: uiPrintf("|              UNKNOWN BOARD                |\n"); break;		}		uiPrintf("                     =============================================\n");		uiPrintf(devStruct.libRevStr);		uiPrintf("Devices detected:\n");		uiPrintf("   PCI deviceID  : 0x%04lx\t", devStruct.hwDevID);		uiPrintf("Sub systemID  : 0x%04lx\n", devStruct.subSystemID);		uiPrintf("   MAC revisionID: 0x%02lx  \t", devStruct.macRev & 0xff);		uiPrintf("BB  revisionID: 0x%02lx\n", devStruct.bbRevID & 0xff);		uiPrintf("   RF  productID : 0x%01lx   \t", devStruct.aRevID & 0xf);		uiPrintf("RF  revisionID: 0x%01lx\n\n", (devStruct.aRevID >> 4) & 0xf);		if(devStruct.defaultConfig) {			uiPrintf("Using defaults from %s\n\n", devStruct.regFilename);		}		else {			uiPrintf("Using the values from configuration file %s\n\n", devStruct.regFilename);		}	}}A_BOOL setupMode(void){	switch (configSetup.mode) {	case MODE_11A:		configSetup.channel = configSetup.channel5;		configSetup.rxGain = configSetup.rxGain5;		break;	case MODE_11G:	case MODE_11O:		configSetup.channel = configSetup.channel2_4;		configSetup.rxGain = configSetup.rxGain2_4;		break;	case MODE_11B:		configSetup.channel = configSetup.channel2_4;		configSetup.rxGain = configSetup.rxGain2_4;		break;	default:		uiPrintf("Error: setupMode - mode not set correctly\n");		return(FALSE);	}	printMode();	return(TRUE);}A_BOOL printMode (void){	char  *modeStr[] = {"11a", "11g", "11b", "OFDM@2.4"};	if(configSetup.quarterChannel) {		uiPrintf("Operating in %s at channel %1.4fGHz\n", modeStr[configSetup.mode], (float)((configSetup.channel + 2.5)/1000));	}	else {		uiPrintf("Operating in %s at channel %1.3fGHz\n", modeStr[configSetup.mode], (float)configSetup.channel/1000);	}	return (TRUE);}A_BOOL initTest( A_UINT32 devNum){	A_UINT8  temp;	A_UINT16 wlanNum = 0;	A_UINT16 ii;	//don't need this one any more//    art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);	if ((hwDeviceID == 0xff12) || (hwDeviceID >= 0xff13)) {		art_changeField(devNum, "mc_eeprom_size_ovr", 3); //force eeprom size to 16K		art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);	}	if(art_mdkErrNo) {		return FALSE;	}	printDeviceInfo(devNum);	uiPrintf("Base Addr: 0x%08lX  Interrupt: %d\n", art_cfgRead(devNum, PCI_BAR_0_REGISTER),		  (art_cfgRead(devNum, PCI_INTERRUPT_LINE) & 0xff));	//read the ethernet address if ap21 or ap30/ap31	if((configSetup.remote) && ((swDeviceID == 0x0011) || (s

⌨️ 快捷键说明

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