from math import ceil def process_list(v): voltages = [] voltages[0] = v[0] & 0x00000000ffff0000 voltages[1] = v[1] & 0x000000000000ffff for i in range(1, 27): if i % 2 == 1: v1 = (v[i] & 0x00ffff0000000000) >> 40 v2 = (v[i] & 0x000000ffff000000) >> 20 v3 = (v[i] & 0x0000000000ffff00) >> 8 vh = v[i] & 0x00000000000000ff voltages[ceil(2 + 3.5 * (i - 1))] = v1 voltages[ceil(2 + 3.5 * (i - 1) + 1)] = v2 voltages[ceil(2 + 3.5 * (i - 1) + 2)] = v3 voltages[ceil(2 + 3.5 * (i - 1) + 3)] = vh << 8 elif i % 2 == 0: vh = (v[i] & 0x00ff000000000000) >> 48 v1 = (v[i] & 0x0000ffff00000000) >> 28 v2 = (v[i] & 0x00000000ffff0000) >> 16 v3 = v[i] & 0x000000000000ffff voltages[ceil(2 + 3.5 * (i - 1) - 1)] = voltages[ceil(2 + 3.5 * (i -1) - 1)] & vh voltages[ceil(2 + 3.5 * (i - 1))] = v1 voltages[ceil(2 + 3.5 * (i - 1) + 1)] = v2 voltages[ceil(2 + 3.5 * (i - 1) + 2)] = v3 voltages[96] = voltages[96] & ((v[28] & 0x00ff000000000000) >> 48) for i in range(0, 95): print("Cell " + str(i + 1) + "= %.2f" % (voltages[i])) return