#define SPECTRAL_SCAN_BITMASK 0x10 /* Radar info packet format, used for DFS and spectral formats. */ struct ath_radar_info {
u8 pulse_length_pri;
u8 pulse_length_ext;
u8 pulse_bw_info;
} __packed;
/* The HT20 spectral data has 4 bytes of additional information at it's end. * *[7:0]:allbins{max_magnitude[1:0],bitmap_weight[5:0]} *[7:0]:allbinsmax_magnitude[9:2] *[7:0]:allbins{max_index[5:0],max_magnitude[11:10]} *[3:0]:max_exp(shiftamounttosizemaxbinto8-bitunsigned)
*/ struct ath_ht20_mag_info {
u8 all_bins[3];
u8 max_exp;
} __packed;
/* WARNING: don't actually use this struct! MAC may vary the amount of *databy-1/+2.Thisstructisforreferenceonly.
*/ struct ath_ht20_fft_packet {
u8 data[SPECTRAL_HT20_NUM_BINS]; struct ath_ht20_mag_info mag_info; struct ath_radar_info radar_info;
} __packed;
/* WARNING: don't actually use this struct! MAC may vary the amount of *data.Thisstructisforreferenceonly.
*/ struct ath_ht20_40_fft_packet {
u8 data[SPECTRAL_HT20_40_NUM_BINS]; struct ath_ht20_40_mag_info mag_info; struct ath_radar_info radar_info;
} __packed;
/* grabs the max magnitude from the all/upper/lower bins */ staticinline u16 spectral_max_magnitude(u8 *bins)
{ return (bins[0] & 0xc0) >> 6 |
(bins[1] & 0xff) << 2 |
(bins[2] & 0x03) << 10;
}
/* return the max magnitude from the all/upper/lower bins */ staticinline u8 spectral_max_index(u8 *bins, int num_bins)
{
s8 m = (bins[2] & 0xfc) >> 2;
u8 zero_idx = num_bins / 2;
/* It's a 5 bit signed int, remove its sign and use one's *complementinterpretationtoaddthesignbacktothe8 *bitint
*/ if (m & 0x20) {
m &= ~0x20;
m |= 0xe0;
}
/* Bring the zero point to the beginning *insteadofthemiddlesothatwecanuse *itforarraylookupandthatwedon'tdeal *withnegativevalueslater
*/
m += zero_idx;
/* Sanity check to make sure index is within bounds */ if (m < 0 || m > num_bins - 1)
m = 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.