You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
7.0 KiB
165 lines
7.0 KiB
def setinv(modnumlist, onoctype): |
|
retimer1_inv = "0000000000000000" |
|
retimer2_inv = "0000000000000000" |
|
retimer3_inv = "0000000000000000" |
|
retimer4_inv = "0000000000000000" |
|
|
|
for i in modnumlist: |
|
writemodpassword(i) |
|
|
|
if (onoctype == "oneta"): |
|
retimer1_inv = "0010000000000000" |
|
retimer2_inv = "0000000000010000" |
|
retimer3_inv = "0101000011110000" |
|
retimer4_inv = "1010000011110000" |
|
setonoc(modnumlist, "oneta") |
|
elif (onoctype == "onetb"): |
|
retimer1_inv = "0010000000000000" |
|
retimer2_inv = "0000000000010000" |
|
retimer3_inv = "0101000011110000" |
|
retimer4_inv = "1010000011110000" |
|
setonoc(modnumlist, "onetb") |
|
elif (onoctype == "87654321"): |
|
retimer1_inv = "0000000000000000" |
|
retimer2_inv = "0000000000110000" |
|
retimer3_inv = "1110000010010000" |
|
retimer4_inv = "1100000001000000" |
|
setonoc(modnumlist, "87654321") |
|
elif (onoctype == "43218765"): |
|
retimer1_inv = "0000000000100000" |
|
retimer2_inv = "0000000000010000" |
|
retimer3_inv = "0101000011110000" |
|
retimer4_inv = "0111000000100000" |
|
setonoc(modnumlist, "43218765") |
|
elif (onoctype == "21436587"): |
|
retimer1_inv = "1000000010000000" |
|
retimer2_inv = "1110000000100000" |
|
retimer3_inv = "1111000001110000" |
|
retimer4_inv = "0100000011000000" |
|
setonoc(modnumlist, "21436587") |
|
elif (onoctype == "34127856"): |
|
retimer1_inv = "1000000010000000" |
|
retimer2_inv = "0011000011110000" |
|
retimer3_inv = "1101000001010000" |
|
retimer4_inv = "0100000011000000" |
|
setonoc(modnumlist, "34127856") |
|
elif (onoctype == "65872143"): |
|
retimer1_inv = "1110000000110000" |
|
retimer2_inv = "1000000010010000" |
|
retimer3_inv = "1101000001110000" |
|
retimer4_inv = "0110000011000000" |
|
setonoc(modnumlist, "65872143") |
|
elif (onoctype == "78563412"): |
|
retimer1_inv = "0011000011100000" |
|
retimer2_inv = "1000000010010000" |
|
retimer3_inv = "1101000001110000" |
|
retimer4_inv = "0100000011100000" |
|
setonoc(modnumlist, "78563412") |
|
elif (onoctype == "56781234"): |
|
retimer1_inv = "0000000000000000" |
|
retimer2_inv = "0010000000010000" |
|
retimer3_inv = "0011000001000000" |
|
retimer4_inv = "1100000001000000" |
|
setonoc(modnumlist, "56781234") |
|
|
|
|
|
|
|
print(retimer1_inv, retimer2_inv, retimer3_inv, retimer4_inv) |
|
|
|
retimer1_inv = list(retimer1_inv) |
|
retimer2_inv = list(retimer2_inv) |
|
retimer3_inv = list(retimer3_inv) |
|
retimer4_inv = list(retimer4_inv) |
|
|
|
for modnum in modnumlist: |
|
|
|
inv_flag = (bin(int(readmod(modnum, 0xba, 0xdc, 1), 16))[2:]).zfill(8) |
|
print("Inv flag:", modnum, inv_flag) |
|
if (onoctype == "43218765"): |
|
inv_flag = inv_flag[3] + inv_flag[2] + inv_flag[1] + inv_flag[0] + \ |
|
inv_flag[7] + inv_flag[6] + inv_flag[5] + inv_flag[4] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "87654321"): |
|
inv_flag = inv_flag[7] + inv_flag[6] + inv_flag[5] + inv_flag[4] + \ |
|
inv_flag[3] + inv_flag[2] + inv_flag[1] + inv_flag[0] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "21436587"): |
|
inv_flag = inv_flag[1] + inv_flag[0] + inv_flag[3] + inv_flag[2] + \ |
|
inv_flag[5] + inv_flag[4] + inv_flag[7] + inv_flag[6] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "78563412"): |
|
inv_flag = inv_flag[6] + inv_flag[7] + inv_flag[4] + inv_flag[5] + \ |
|
inv_flag[2] + inv_flag[3] + inv_flag[0] + inv_flag[1] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "34127856"): |
|
inv_flag = inv_flag[2] + inv_flag[3] + inv_flag[0] + inv_flag[1] + \ |
|
inv_flag[6] + inv_flag[7] + inv_flag[4] + inv_flag[5] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "65872143"): |
|
inv_flag = inv_flag[5] + inv_flag[4] + inv_flag[7] + inv_flag[6] + \ |
|
inv_flag[1] + inv_flag[0] + inv_flag[3] + inv_flag[2] |
|
print("Inv flag change:", modnum, inv_flag) |
|
elif (onoctype == "56781234"): |
|
inv_flag = inv_flag[4] + inv_flag[5] + inv_flag[6] + inv_flag[7] + \ |
|
inv_flag[0] + inv_flag[1] + inv_flag[2] + inv_flag[3] |
|
print("Inv flag change:", modnum, inv_flag) |
|
|
|
# CH1 ->retimer2-L |
|
if inv_flag[7] == '1': |
|
if retimer2_inv[15 - (modnum - 1)] == '0': |
|
retimer2_inv[15 - (modnum - 1)] = '1' |
|
elif retimer2_inv[15 - (modnum - 1)] == '1': |
|
retimer2_inv[15 - (modnum - 1)] = '0' |
|
|
|
# CH2 ->retimer4-L |
|
if (inv_flag[6] == '1'): |
|
if retimer4_inv[15 - (modnum - 1)] == '0': |
|
retimer4_inv[15 - (modnum - 1)] = '1' |
|
elif retimer4_inv[15 - (modnum - 1)] == '1': |
|
retimer4_inv[15 - (modnum - 1)] = '0' |
|
# CH3 ->retimer4-H |
|
if (inv_flag[5] == '1'): |
|
if retimer4_inv[15 - (modnum + 7)] == '0': |
|
retimer4_inv[15 - (modnum + 7)] = '1' |
|
elif retimer4_inv[15 - (modnum + 7)] == '1': |
|
retimer4_inv[15 - (modnum + 7)] = '0' |
|
# CH4 ->retimer2-H |
|
if (inv_flag[4] == '1'): |
|
if retimer2_inv[15 - (modnum + 7)] == '0': |
|
retimer2_inv[15 - (modnum + 7)] = '1' |
|
elif retimer2_inv[15 - (modnum + 7)] == '1': |
|
retimer2_inv[15 - (modnum + 7)] = '0' |
|
# CH5 ->retimer1-L |
|
if (inv_flag[3] == '1'): |
|
if retimer1_inv[15 - (modnum - 1)] == '0': |
|
retimer1_inv[15 - (modnum - 1)] = '1' |
|
elif retimer1_inv[15 - (modnum - 1)] == '1': |
|
retimer1_inv[15 - (modnum - 1)] = '0' |
|
# CH6 ->retimer3-L |
|
if (inv_flag[2] == '1'): |
|
if retimer3_inv[15 - (modnum - 1)] == '0': |
|
retimer3_inv[15 - (modnum - 1)] = '1' |
|
elif retimer3_inv[15 - (modnum - 1)] == '1': |
|
retimer3_inv[15 - (modnum - 1)] = '0' |
|
# CH7 ->retimer3-H |
|
if (inv_flag[1] == '1'): |
|
if retimer3_inv[15 - (modnum + 7)] == '0': |
|
retimer3_inv[15 - (modnum + 7)] = '1' |
|
elif retimer3_inv[15 - (modnum + 7)] == '1': |
|
retimer3_inv[15 - (modnum + 7)] = '0' |
|
# CH8 ->retimer1-H |
|
if (inv_flag[0] == '1'): |
|
if retimer1_inv[15 - (modnum + 7)] == '0': |
|
retimer1_inv[15 - (modnum + 7)] = '1' |
|
elif retimer1_inv[15 - (modnum + 7)] == '1': |
|
retimer1_inv[15 - (modnum + 7)] = '0' |
|
|
|
retimer1_inv = ''.join(retimer1_inv) |
|
retimer2_inv = ''.join(retimer2_inv) |
|
retimer3_inv = ''.join(retimer3_inv) |
|
retimer4_inv = ''.join(retimer4_inv) |
|
|
|
print(retimer1_inv, retimer2_inv, retimer3_inv, retimer4_inv) |
|
|
|
return [str(hex(int(retimer1_inv, 2))), str(hex(int(retimer2_inv, 2))), str(hex(int(retimer3_inv, 2))), |
|
str(hex(int(retimer4_inv, 2)))]
|
|
|