def parse(s): scan_type_is_foreground = s.read("bool") csma_ca_mode = CsmaCaMode(s.read("uint:4")) nr_of_subbands = s.read("uint:3") subnet = s.read("int:8") scan_automation_period = CT.parse(s) s.read("uint:8") # RFU subbands = [] for i in range(nr_of_subbands): subbands.append(Subband.parse(s)) return AccessProfile(scan_type_is_foreground=scan_type_is_foreground, csma_ca_mode=csma_ca_mode, subnet=subnet, scan_automation_period=scan_automation_period, subbands=subbands)
def test_parse(self): bytes = list(bytearray(self.valid_channel_header)) + [ 0, 0, # channel index start 16, 0, # channel index end 10, # eirp 86 # ccao ] sb = Subband.parse(ConstBitStream(bytes=bytes)) self.assertEqual(sb.channel_header.channel_band, self.valid_channel_header.channel_band) self.assertEqual(sb.channel_header.channel_coding, self.valid_channel_header.channel_coding) self.assertEqual(sb.channel_header.channel_class, self.valid_channel_header.channel_class) self.assertEqual(sb.channel_index_start, 0) self.assertEqual(sb.channel_index_end, 16) self.assertEqual(sb.eirp, 10) self.assertEqual(sb.ccao, 86)