📄 test.c
字号:
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 + -