30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
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
|