📄 test.c
字号:
configSetup.rxGain = USE_REG_FILE;
configSetup.powerControlMethod = NO_PWR_CTL;
if (((swDeviceID & 0xff) >= 0x0014) && ((swDeviceID & 0xff) != 0x0015)) {
//xpdgain gets set by devlib, don't want to apply here unless there
//is an override.
configSetup.applyXpdGain = (configSetup.eepromLoad == 1) ? 0 : 1;
}
//update the library with the new eepromload flag setting.
art_setResetParams(devNum, configSetup.pCfgFile, (A_BOOL)configSetup.eepromLoad,
(A_BOOL)1, (A_BOOL)configSetup.mode, configSetup.use_init);
art_rereadProm(devNum);
art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);
//Read register values read in from resetDevice
updateConfigFromRegValues(devNum);
} else
{
invalidEepromMessage(3000);
configSetup.applyXpdGain = 1;
}
break;
#endif //__ATH_DJGPPDOS__
case 'C':
contMenu(devNum);
break;
case 'R':
contRxMenu(devNum);
break;
case 'L':
linkMenu(devNum);
break;
case 'T':
throughputMenu(devNum);
break;
case 'P':
EEPROM_Routine(devNum);
break;
case 'U':
utilityMenu(devNum);
break;
case 'G':
if (configSetup.logging) {
configSetup.logging = 0;
//turn off logging
uilogClose();
}
else {
configSetup.logging = 1;
if(configSetup.logFile[0] == '\0') {
uiPrintf("\nPlease enter filename for logging: ");
scanf("%s", configSetup.logFile);
}
uilog(configSetup.logFile, 1);
}
if(configSetup.logging) {
}
break;
#ifndef __ATH_DJGPPDOS__
case 'S':
art_teardownDevice(devNum);
if ((devNum_2g != devNum_5g) && ((swDeviceID == 0xa014)||(swDeviceID == 0xa016))&&(!configSetup.userInstanceOverride)) {
if(devNum == devNum_2g) {
art_teardownDevice(devNum_5g);
} else {
art_teardownDevice(devNum_2g);
}
}
uiPrintf("Device has been stopped and may be removed\n");
uiPrintf("Press Q to exit or any other key to setup a new device\n");
if( toupper(getch()) == 'Q' ) {
uiPrintf("closing environment\n");
closeEnvironment();
exit(0);
}
if (configSetup.remote)
{
uiPrintf("IP Address of the new AP: ");
scanf("%s",configSetup.machName);
}
tempDevNum = art_setupDevice(configSetup.instance);
if(tempDevNum < 0) {
uiPrintf("main: Error attaching to the device - ending test\n");
closeEnvironment();
exit(0);
}
devNum = tempDevNum;
art_configureLibParams(devNum);
if (configSetup.instance == CalSetup.instanceForMode[MODE_11a]) {
devNum_5g = devNum;
}
if (configSetup.instance == CalSetup.instanceForMode[MODE_11g]) {
devNum_2g = devNum;
}
if((configSetup.instance != CalSetup.instanceForMode[MODE_11a]) &&
(configSetup.instance != CalSetup.instanceForMode[MODE_11g]))
{
//the default instance is not needed by this board.
art_teardownDevice(devNum);
}
if (!configSetup.userInstanceOverride) {
if (CalSetup.instanceForMode[MODE_11a] != configSetup.instance) {
tempDevNum = art_setupDevice(CalSetup.instanceForMode[MODE_11a]);
if(tempDevNum < 0) {
uiPrintf("main: Error attaching to the device - ending test\n");
closeEnvironment();
exit(0);
}
devNum_5g = tempDevNum;
art_configureLibParams(devNum_5g);
if (CalSetup.instanceForMode[MODE_11a] == CalSetup.instanceForMode[MODE_11g]) {
devNum_2g = devNum_5g;
}
} else if (CalSetup.instanceForMode[MODE_11g] != configSetup.instance) {
tempDevNum = art_setupDevice(CalSetup.instanceForMode[MODE_11g]);
if(tempDevNum < 0) {
uiPrintf("main: Error attaching to the device - ending test\n");
closeEnvironment();
exit(0);
}
devNum_2g = tempDevNum;
art_configureLibParams(devNum_2g);
if (CalSetup.instanceForMode[MODE_11a] == CalSetup.instanceForMode[MODE_11g]) {
devNum_5g = devNum_2g;
}
}
if ((swDeviceID == 0xa016) && (devStruct.aRevID == 0x0)) { // indicates an AP31
art_resetDevice(devNum_2g, txStation, bssID, configSetup.channel, configSetup.turbo);
art_getDeviceInfo(devNum_2g, &devStruct);
swDeviceID = devStruct.swDevID;
hwDeviceID = devStruct.hwDevID;
}
if (CalSetup.Amode) {
if (CalSetup.Gmode) {
if ((CalSetup.instanceForMode[MODE_11a] != 1) && (CalSetup.instanceForMode[MODE_11g] != 1)) {
configSetup.validInstance = 2;
}
} else {
if (CalSetup.instanceForMode[MODE_11a] != 1) {
configSetup.validInstance = 2;
}
}
} else if (CalSetup.Gmode) {
if (CalSetup.instanceForMode[MODE_11g] != 1) {
configSetup.validInstance = 2;
}
}
}
/*
if(((swDeviceID == 0xa014)||(swDeviceID == 0xa016))&&(!configSetup.userInstanceOverride)) {
devNum_5g = devNum;
tempDevNum = art_setupDevice(2);
if(tempDevNum < 0) {
uiPrintf("main: Error attaching to second instance on the device - ending test\n");
closeEnvironment();
exit(0);
}
devNum_2g = tempDevNum;
art_configureLibParams(devNum_2g);
if(configSetup.mode != MODE_11A) {
devNum = devNum_2g;
}
if (subSystemID == 0xa035) {
devNum_5g = devNum_2g;
}
}
*/
//setup devnum correctly
if(configSetup.mode == MODE_11A) {
devNum = devNum_5g;
}
else {
devNum = devNum_2g;
}
configSetup.powerControlMethod = NO_PWR_CTL;
art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);
//get the deviceID from the library and use the swDevID
art_getDeviceInfo(devNum, &devStruct);
swDeviceID = devStruct.swDevID;
if (((swDeviceID & 0xff) == 0x14)||((swDeviceID & 0xff) >= 0x16)) {
if ((swDeviceID & 0xFF) >= 0x16) {
pCurrGainLadder = &(gainLadder_derby2);
} else {
pCurrGainLadder = &(gainLadder_derby1);
}
} else {
pCurrGainLadder = &(gainLadder);
}
if (eeprom_verify_checksum(devNum))
{
configSetup.validCalData = TRUE;
configSetup.eepromLoad = 1;
if (((swDeviceID & 0xff) >= 0x0014)&&((swDeviceID & 0xff) != 0x0015) ){
//xpdgain gets set by devlib, don't want to apply here unless there
//is an override.
configSetup.applyXpdGain = 0;
}
} else
{
configSetup.validCalData = FALSE;
configSetup.eepromLoad = 0;
invalidEepromMessage(2000);
configSetup.applyXpdGain = 1;
}
art_setResetParams(devNum, configSetup.pCfgFile, (A_BOOL)configSetup.eepromLoad,
(A_BOOL)configSetup.eepromHeaderLoad, (A_UCHAR)configSetup.mode, configSetup.use_init);
if(!setEepFile(devNum)) {
closeEnvironment();
exit(0);
}
if(((swDeviceID == 0xa014)||(swDeviceID == 0xa016))&&(!configSetup.userInstanceOverride)) {
if(!setEepFile((devNum == devNum_5g) ? devNum_2g : devNum_5g)) {
closeEnvironment();
exit(0);
}
}
//test card/installation
if(!initTest(devNum)) {
uiPrintf("main: Error testing device - exiting\n");
closeEnvironment();
exit(0);
}
//Read register values read in from resetDevice
updateConfigFromRegValues(devNum);
break;
case 'W':
if(configSetup.logging) {
printf("Enter comment below. Put a period (.) on a seperate line to complete\n");
while(commentBuffer[0] != '.') {
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)){
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);
/*
if(((swDeviceID == 0xa014)||(swDeviceID == 0xa016))&&(!configSetup.userInstanceOverride)) {
tempDevNum = art_setupDevice(2);
if(tempDevNum < 0) {
uiPrintf("main: Error attaching to the device - ending test\n");
closeEnvironment();
exit(0);
}
devNum_2g = tempDevNum;
art_configureLibParams(devNum_2g);
if(devNum_2g < 0) {
uiPrintf("main: Error attaching to second instance on the device - ending test\n");
closeEnvironment();
exit(0);
}
if(configSetup.mode != MODE_11A) {
devNum = devNum_2g;
art_setResetParams(devNum, configSetup.pCfgFile, (A_BOOL)configSetup.eepromLoad,
(A_BOOL)configSetup.eepromHeaderLoad, (A_UCHAR)configSetup.mode, configSetup.use_init);
art_resetDevice(devNum, txStation, bssID, configSetup.channel, configSetup.turbo);
}
if (subSystemID == 0xa035) {
devNum_5g = devNum_2g;
}
}
*/
break;
#endif // __ATH_DJGPPDOS__
//Take out for now case 'X':
// testMenu(devNum);
// 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))&&(!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__
}
}
A_UINT32 getFirstMode (SUPPORTED_MODES *pModes) {
A_UINT32 firstMode = configSetup.mode;
switch(configSetup.mode) {
case MODE_11A:
if(!pModes->aMode) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -