📄 cal_com.c
字号:
if(!sscanf(pLine, "%lf", &CalSetup.cck_ofdm_delta)) {
uiPrintf("Unable to read the CCK_OFDM_DELTA from %s\n", eep_file);
}
}
else if(strnicmp("CH14_FILTER_CCK_DELTA", pLine, strlen("CH14_FILTER_CCK_DELTA")) == 0) {
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
if(!sscanf(pLine, "%lf", &CalSetup.ch14_filter_cck_delta)) {
uiPrintf("Unable to read the CH14_FILTER_CCK_DELTA from %s\n", eep_file);
}
}
else if((strnicmp("A_MODE", pLine, strlen("A_MODE")) == 0) &&
((pLine[strlen("A_MODE")] == ' ') ||
(pLine[strlen("A_MODE")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.Amode)) {
uiPrintf("Unable to read the A_MODE from %s\n", eep_file);
}
}
else if((strnicmp("B_MODE", pLine, strlen("B_MODE")) == 0) &&
((pLine[strlen("B_MODE")] == ' ') ||
(pLine[strlen("B_MODE")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.Bmode)) {
uiPrintf("Unable to read the B_MODE from %s\n", eep_file);
}
}
else if((strnicmp("G_MODE", pLine, strlen("G_MODE")) == 0) &&
((pLine[strlen("G_MODE")] == ' ') ||
(pLine[strlen("G_MODE")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.Gmode)) {
uiPrintf("Unable to read the G_MODE from %s\n", eep_file);
}
}
else if((strnicmp("ANTENNA_GAIN_5G", pLine, strlen("ANTENNA_GAIN_5G")) == 0) &&
((pLine[strlen("ANTENNA_GAIN_5G")] == ' ') ||
(pLine[strlen("ANTENNA_GAIN_5G")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.antennaGain5G)) {
uiPrintf("Unable to read the ANTENNA_GAIN_5G from %s\n", eep_file);
}
}
else if((strnicmp("ANTENNA_GAIN_2p5G", pLine, strlen("ANTENNA_GAIN_2p5G")) == 0) &&
((pLine[strlen("ANTENNA_GAIN_2p5G")] == ' ') ||
(pLine[strlen("ANTENNA_GAIN_2p5G")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.antennaGain2p5G)) {
uiPrintf("Unable to read the ANTENNA_GAIN_2p5G from %s\n", eep_file);
}
}
else if((strnicmp("XLNA_GAIN", pLine, strlen("XLNA_GAIN")) == 0) &&
((pLine[strlen("XLNA_GAIN")] == ' ') ||
(pLine[strlen("XLNA_GAIN")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.xlnaGain)) {
uiPrintf("Unable to read the XLNA_GAIN from %s\n", eep_file);
}
}
else if((strnicmp("NOISE_FLOOR_THRESHOLD", pLine, strlen("NOISE_FLOOR_THRESHOLD")) == 0) &&
((pLine[strlen("NOISE_FLOOR_THRESHOLD")] == ' ') ||
(pLine[strlen("NOISE_FLOOR_THRESHOLD")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.noisefloor_thresh)) {
uiPrintf("Unable to read the NOISE_FLOOR_THRESHOLD from %s\n", eep_file);
}
}
else if((strnicmp("11b_XLNA_GAIN", pLine, strlen("11b_XLNA_GAIN")) == 0) &&
((pLine[strlen("11b_XLNA_GAIN")] == ' ') ||
(pLine[strlen("11b_XLNA_GAIN")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.xlnaGain_2p4[MODE_11b])) {
uiPrintf("Unable to read the 11b_XLNA_GAIN from %s\n", eep_file);
}
}
else if((strnicmp("11b_NOISE_FLOOR_THRESHOLD", pLine, strlen("11b_NOISE_FLOOR_THRESHOLD")) == 0) &&
((pLine[strlen("11b_NOISE_FLOOR_THRESHOLD")] == ' ') ||
(pLine[strlen("11b_NOISE_FLOOR_THRESHOLD")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.noisefloor_thresh_2p4[MODE_11b])) {
uiPrintf("Unable to read the 11b_NOISE_FLOOR_THRESHOLD from %s\n", eep_file);
}
}
else if((strnicmp("11g_XLNA_GAIN", pLine, strlen("11g_XLNA_GAIN")) == 0) &&
((pLine[strlen("11g_XLNA_GAIN")] == ' ') ||
(pLine[strlen("11g_XLNA_GAIN")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.xlnaGain_2p4[MODE_11g])) {
uiPrintf("Unable to read the 11b_XLNA_GAIN from %s\n", eep_file);
}
}
else if((strnicmp("11g_NOISE_FLOOR_THRESHOLD", pLine, strlen("11g_NOISE_FLOOR_THRESHOLD")) == 0) &&
((pLine[strlen("11g_NOISE_FLOOR_THRESHOLD")] == ' ') ||
(pLine[strlen("11g_NOISE_FLOOR_THRESHOLD")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.noisefloor_thresh_2p4[MODE_11g])) {
uiPrintf("Unable to read the 11b_NOISE_FLOOR_THRESHOLD from %s\n", eep_file);
}
}
else if((strnicmp("11a_FALSE_DETECT_BACKOFF", pLine, strlen("11a_FALSE_DETECT_BACKOFF")) == 0) &&
((pLine[strlen("11a_FALSE_DETECT_BACKOFF")] == ' ') ||
(pLine[strlen("11a_FALSE_DETECT_BACKOFF")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.falseDetectBackoff[MODE_11a])) {
uiPrintf("Unable to read the 11a_FALSE_DETECT_BACKOFF from %s\n", eep_file);
}
}
else if((strnicmp("11b_FALSE_DETECT_BACKOFF", pLine, strlen("11b_FALSE_DETECT_BACKOFF")) == 0) &&
((pLine[strlen("11b_FALSE_DETECT_BACKOFF")] == ' ') ||
(pLine[strlen("11b_FALSE_DETECT_BACKOFF")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.falseDetectBackoff[MODE_11b])) {
uiPrintf("Unable to read the 11b_FALSE_DETECT_BACKOFF from %s\n", eep_file);
}
}
else if((strnicmp("11g_FALSE_DETECT_BACKOFF", pLine, strlen("11g_FALSE_DETECT_BACKOFF")) == 0) &&
((pLine[strlen("11g_FALSE_DETECT_BACKOFF")] == ' ') ||
(pLine[strlen("11g_FALSE_DETECT_BACKOFF")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.falseDetectBackoff[MODE_11g])) {
uiPrintf("Unable to read the 11g_FALSE_DETECT_BACKOFF from %s\n", eep_file);
}
}
else if((strnicmp("MODE_MASK_FOR_RADIO_0", pLine, strlen("MODE_MASK_FOR_RADIO_0")) == 0) &&
((pLine[strlen("MODE_MASK_FOR_RADIO_0")] == ' ') ||
(pLine[strlen("MODE_MASK_FOR_RADIO_0")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.modeMaskForRadio[0])) {
uiPrintf("Unable to read the MODE_MASK_FOR_RADIO_0 from %s\n", eep_file);
}
}
else if((strnicmp("MODE_MASK_FOR_RADIO_1", pLine, strlen("MODE_MASK_FOR_RADIO_1")) == 0) &&
((pLine[strlen("MODE_MASK_FOR_RADIO_1")] == ' ') ||
(pLine[strlen("MODE_MASK_FOR_RADIO_1")] == '\t') ) ){
pLine = strchr(pLine, '=');
pLine = strtok(pLine, delimiters);
pLine = strtok(pLine," ;#");
if(!sscanf(pLine, "%d", &CalSetup.modeMaskForRadio[1])) {
uiPrintf("Unable to read the MODE_MASK_FOR_RADIO_1 from %s\n", eep_file);
}
}
} // done parsing cal section
} // end of file
}
A_UINT32 read_gainf_with_probe_packet(A_UINT32 devNum, A_UINT32 power) {
A_UINT32 rddata, retVal;
art_writeField(devNum, "bb_probe_powertx", power);
art_writeField(devNum, "bb_probe_next_tx", 1);
Sleep(1);
rddata = art_regRead(devNum, 0x9930);
retVal = (rddata >> 25) ;
return(retVal);
}
A_UINT32 read_gainf_twice(A_UINT32 devNum)
{
A_UINT32 gain1, gain2;
// index of pcdac table to read gainF for. set to 0 for all contTX
gain1 = read_gainf_with_probe_packet(devNum, 0);
if (abs(gain1 - global_prev_gainf) > 10) {
// index of pcdac table to read gainF for. set to 0 for all contTX
gain2 = read_gainf_with_probe_packet(devNum, 0);
} else {
gain2 = gain1;
}
global_prev_gainf = (A_UINT16) gain1;
return( (gain1 >= gain2) ? gain1 : gain2);
}
A_UINT32 dump_a2_pc_out(A_UINT32 devNum)
{
A_UINT32 a2_data=0;
A_UINT32 tmp;
A_UINT32 OS_1 = 0;
A_UINT32 OS_0 = 1;
A_UINT32 M_2 = 0;
A_UINT32 M_1 = 1;
A_UINT32 M_0 = 1;
A_UINT32 DREG_1 = 0;
A_UINT32 DREG_0 = 0;
A_UINT32 DA_2 = 0;
A_UINT32 DA_1 = 0;
A_UINT32 DA_0 = 0;
A_UINT32 NUM_SHIFTS = 7; //used to be 6 in crete-fez
A_UINT32 indata, outdata, bit, pos;
tmp = art_regRead(devNum, 0x9808) | (0x1<<27);
art_regWrite(devNum, 0x9808, tmp);
// now dump
tmp = ((M_2 << 10) | (M_1 << 11) | (M_0 << 12) | (OS_1 << 0) | (OS_0 << 1) | (DREG_1 << 16)
| (DREG_0 << 17) | (DA_2 << 18) | (DA_1 << 19) | (DA_0 << 20) | (0x5 << 2));
art_regWrite(devNum, 0x9800+(0x34<<2), tmp);
// shift out 32 bits
for (tmp=0;tmp<NUM_SHIFTS;tmp++)
{
art_regWrite(devNum, 0x9800+(0x20<<2), 0x10000);
}
a2_data = art_regRead(devNum, 0x9800+(256<<2));
// reverse 7
indata = ((a2_data>>25)&0x7f);
outdata=bit=0;
for (pos=0; pos<NUM_SHIFTS; pos++) {
bit = (indata >> pos) & 0x1;
outdata = (outdata << 1) | bit;
}
a2_data = outdata;
// clear out register 5
art_regWrite(devNum, 0x9800+(0x34<<2), 0x14);
// d2_enable_agc_to_a2();
tmp = art_regRead(devNum, 0x9808) & ~(0x1<<27);
art_regWrite(devNum, 0x9808, tmp);
return(a2_data);
}
void parseSetup(A_UINT32 devNum)
{
load_calsetup_vals() ;
load_eep_vals(devNum);
}
void load_calsetup_vals(void)
{
FILE *fStream;
char lineBuf[122], *pLine;
A_UINT32 testVal;
A_INT32 signedTempVal;
A_UINT16 ii;
char delimiters[] = " \t\n\r;=";
char pCalFilename[] = CALSETUP_FILE;
// uiPrintf("\nReading in Calibration Setup from %s\n", pCalFilename);
if( (fStream = fopen( pCalFilename, "r")) == NULL ) {
uiPrintf("Failed to open %s - using Defaults\n", pCalFilename);
return;
}
while(fgets(lineBuf, 120, fStream) != NULL) {
pLine = lineBuf;
while(isspace(*pLine)) pLine++;
if(strnicmp("#BEGIN_11a_TEST_CHANNEL_MATRIX", pLine, strlen("#BEGIN_11a_TEST_CHANNEL_MATRIX")) == 0) {
parseTestChannels(fStream, pLine, MODE_11a);
continue;
}
if(strnicmp("#BEGIN_11b_TEST_CHANNEL_MATRIX", pLine, strlen("#BEGIN_11b_TEST_CHANNEL_MATRIX")) == 0) {
parseTestChannels(fStream, pLine, MODE_11b);
continue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -