def parse(self, data): """ unpacks iwquality data """ struct = Iwstruct() qual, sl, nl, flags = struct.parse_data(self.fmt, data) # compute signal and noise level self.signal_level = sl self.noise_level = nl # asign the other values self.quality = qual self.updated = flags
def _parse(self, data): """ unpacks iwstruct data """ struct = Iwstruct() iwqual = Iwquality() iwstats_data = struct.parse_data(self.fmt, data) self.status = iwstats_data[0:2] self.qual.quality, self.qual.sl, self.qual.nl,\ self.qual.flags = iwstats_data[2:6] nwid, code, frag, retries, flags = iwstats_data[6:11] self.missed_beacon = iwstats_data[11:12][0] self.discard = makedict(nwid=nwid, code=code, fragment=frag, retries=retries, misc=flags)
def _parse(self, data): struct = Iwstruct() result = struct.parse_data(self.fmt, data) # XXX there is maybe a much more elegant way to do this self.throughput, self.min_nwid, self.max_nwid = result[0:3] self.old_num_channels, self.old_num_frequency = result[3:5] self.old_freq = result[5:11] self.sensitivity = result[11] self.max_qual.setValues(result[12:16]) self.avg_qual.setValues(result[16:20]) self.num_bitrates = result[20] # <- XXX raw_bitrates = result[21:53] for rate in raw_bitrates: iwfreq = Iwfreq() iwfreq.frequency = rate br = iwfreq.getBitrate() if br is not None: self.bitrates.append(br) self.min_rts, self.max_rts = result[53:55] self.min_frag, self.max_frag = result[55:57] self.min_pmp, self.max_pmp = result[57:59] self.min_pmt, self.max_pmt = result[59:61] self.pmp_flags, self.pmt_flags, self.pm_capa = result[61:64] self.encoding_size = result[64:72] self.num_encoding_sizes, self.max_encoding_tokens = result[72:74] self.encoding_login_index = result[74:76] self.txpower_capa, self.num_txpower = result[76:78] self.txpower = result[78:86] self.we_vers_compiled, self.we_vers_src = result[86:88] self.retry_capa, self.retry_flags, self.r_time_flags = result[88:91] self.min_retry, self.max_retry = result[91:93] self.min_r_time, self.max_r_time = result[93:95] self.num_channels = result[95] self.num_frequency = result[96] freq = result[97:] i = self.num_frequency for x in range(0, len(freq), 4): iwfreq = Iwfreq() iwfreq._setFrequency(freq[x:x+4]) fq = iwfreq.getFrequency() if fq is not None: self.frequencies.append(fq) i -= 1 if i <= 0: break