def parse_fmc_subtype_0(data): assert len(data) == 8, 'Invalid VITA FMC length' result = ini_file.Section('FMC IO') result['module size'] = data[1] >> 6 result['p1 size'] = (data[1] >> 4) & 0x3 result['p2 size'] = (data[1] >> 2) & 0x3 # Note: 3 => not fitted! result['clkx bidir'] = bool(data[1] & 2) result['p1 a'] = data[2] result['p1 b'] = data[3] result['p2 a'] = data[4] result['p2 b'] = data[5] result['p1 gbt'] = data[6] >> 4 result['p2 gbt'] = data[6] & 0xf result['max tck'] = data[7] return result
def parse_product_area(data): data = parse_area_header(data, 'Product') lang_code = data[2] product = ini_file.Section('Product') reader = StringReader(data[3:], lang_code) product['manufacturer'] = reader.next() product['product name'] = reader.next() product['part number'] = reader.next() product['version'] = reader.next() product['serial number'] = reader.next(0) product['asset tag'] = reader.next() product['fru file id'] = reader.next(0) parse_extra_strings(product, reader) return product
def parse_board_area(data): data = parse_area_header(data, 'Board') lang_code = data[2] date_mins = as_int(data[3:6]) board = ini_file.Section('Board') if date_mins: board['manufacture date'] = date_string(date_mins) reader = StringReader(data[6:], lang_code) board['manufacturer'] = reader.next() board['product name'] = reader.next() board['serial number'] = reader.next(0) board['part number'] = reader.next() board['fru file id'] = reader.next(0) parse_extra_strings(board, reader) return board
def parse_fmc_subtype_1(data): result = ini_file.Section('FMC Device') result['device'] = decode_6bit_ascii(data[1:]) return result
def parse_dc_output(data): output = data[0] & 0xf result = ini_file.Section(dc_output_names[output]) parse_dc_common(result, data) result['standby'] = bool(data[0] & 0x80) return result
def parse_dc_load(data): output = data[0] & 0xf result = ini_file.Section(dc_load_names[output]) parse_dc_common(result, data) return result