tracks boards by left/center/right now in lieu of board numbers, and works with Hive T9s and BOS S9s and X17s
This commit is contained in:
@@ -15,7 +15,7 @@ class HiveonT9(BMMiner):
|
||||
board_stats = await self.api.stats()
|
||||
stats = board_stats['STATS'][1]
|
||||
boards = {}
|
||||
board_chains = {6: [2, 9, 10], 7: [3, 11, 12], 8: [4, 13, 14]}
|
||||
board_chains = {0: [2, 9, 10], 1: [3, 11, 12], 2: [4, 13, 14]}
|
||||
for idx, board in enumerate(board_chains):
|
||||
boards[board] = []
|
||||
for chain in board_chains[board]:
|
||||
|
||||
@@ -5,6 +5,7 @@ class BOSMinerX17(BOSMiner):
|
||||
def __init__(self, ip: str) -> None:
|
||||
super().__init__(ip)
|
||||
self.api_type = "BOSMiner"
|
||||
self.nominal_chips = 65
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"BOSminerX17: {str(self.ip)}"
|
||||
|
||||
@@ -13,6 +13,7 @@ class BOSMiner(BaseMiner):
|
||||
self.config = None
|
||||
self.uname = 'root'
|
||||
self.pwd = 'admin'
|
||||
self.nominal_chips = 63
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"BOSminer: {str(self.ip)}"
|
||||
@@ -117,14 +118,15 @@ class BOSMiner(BaseMiner):
|
||||
return {6: [], 7: [], 8: []}
|
||||
devs = devdetails['DEVDETAILS']
|
||||
boards = {}
|
||||
offset = devs[0]["ID"]
|
||||
for board in devs:
|
||||
boards[board["ID"]] = []
|
||||
if not board['Chips'] == 63:
|
||||
boards[board["ID"] - offset] = []
|
||||
if not board['Chips'] == self.nominal_chips:
|
||||
nominal = False
|
||||
else:
|
||||
nominal = True
|
||||
boards[board["ID"]].append({
|
||||
"chain": board["ID"],
|
||||
boards[board["ID"] - offset].append({
|
||||
"chain": board["ID"] - offset,
|
||||
"chip_count": board['Chips'],
|
||||
"chip_status": "o" * board['Chips'],
|
||||
"nominal": nominal
|
||||
|
||||
@@ -60,20 +60,20 @@ async def refresh_data(ip_list: list):
|
||||
data_point = await all_data
|
||||
if data_point["IP"] in ordered_all_ips:
|
||||
ip_table_index = ordered_all_ips.index(data_point["IP"])
|
||||
board_6 = ""
|
||||
board_7 = ""
|
||||
board_8 = ""
|
||||
board_left = ""
|
||||
board_center = ""
|
||||
board_right = ""
|
||||
if data_point["data"]:
|
||||
if 6 in data_point["data"].keys():
|
||||
board_6 = " ".join([chain["chip_status"] for chain in data_point["data"][6]]).replace("o", "•")
|
||||
if 0 in data_point["data"].keys():
|
||||
board_left = " ".join([chain["chip_status"] for chain in data_point["data"][0]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if 7 in data_point["data"].keys():
|
||||
board_7 = " ".join([chain["chip_status"] for chain in data_point["data"][7]]).replace("o", "•")
|
||||
if 1 in data_point["data"].keys():
|
||||
board_center = " ".join([chain["chip_status"] for chain in data_point["data"][1]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if 8 in data_point["data"].keys():
|
||||
board_8 = " ".join([chain["chip_status"] for chain in data_point["data"][8]]).replace("o", "•")
|
||||
if 2 in data_point["data"].keys():
|
||||
board_right = " ".join([chain["chip_status"] for chain in data_point["data"][2]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if False in [chain["nominal"] for chain in [data_point["data"][key] for key in data_point["data"].keys()][0]]:
|
||||
@@ -84,12 +84,12 @@ async def refresh_data(ip_list: list):
|
||||
data = [
|
||||
data_point["IP"],
|
||||
data_point["model"],
|
||||
len(board_6),
|
||||
board_6,
|
||||
len(board_7),
|
||||
board_7,
|
||||
len(board_8),
|
||||
board_8
|
||||
len(board_left),
|
||||
board_left,
|
||||
len(board_center),
|
||||
board_center,
|
||||
len(board_right),
|
||||
board_right
|
||||
]
|
||||
ip_table_data[ip_table_index] = data
|
||||
window["ip_table"].update(ip_table_data, row_colors=row_colors)
|
||||
@@ -138,20 +138,20 @@ async def scan_and_get_data(network):
|
||||
data_point = await all_data
|
||||
if data_point["IP"] in ordered_all_ips:
|
||||
ip_table_index = ordered_all_ips.index(data_point["IP"])
|
||||
board_6 = ""
|
||||
board_7 = ""
|
||||
board_8 = ""
|
||||
board_left = ""
|
||||
board_center = ""
|
||||
board_right = ""
|
||||
if data_point["data"]:
|
||||
if 6 in data_point["data"].keys():
|
||||
board_6 = " ".join([chain["chip_status"] for chain in data_point["data"][6]]).replace("o", "•")
|
||||
if 0 in data_point["data"].keys():
|
||||
board_left = " ".join([chain["chip_status"] for chain in data_point["data"][0]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if 7 in data_point["data"].keys():
|
||||
board_7 = " ".join([chain["chip_status"] for chain in data_point["data"][7]]).replace("o", "•")
|
||||
if 1 in data_point["data"].keys():
|
||||
board_center = " ".join([chain["chip_status"] for chain in data_point["data"][1]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if 8 in data_point["data"].keys():
|
||||
board_8 = " ".join([chain["chip_status"] for chain in data_point["data"][8]]).replace("o", "•")
|
||||
if 2 in data_point["data"].keys():
|
||||
board_right = " ".join([chain["chip_status"] for chain in data_point["data"][2]]).replace("o", "•")
|
||||
else:
|
||||
row_colors.append((ip_table_index, "white", "red"))
|
||||
if False in [chain["nominal"] for chain in [data_point["data"][key] for key in data_point["data"].keys()][0]]:
|
||||
@@ -162,12 +162,12 @@ async def scan_and_get_data(network):
|
||||
data = [
|
||||
data_point["IP"],
|
||||
data_point["model"],
|
||||
len(board_6),
|
||||
board_6,
|
||||
len(board_7),
|
||||
board_7,
|
||||
len(board_8),
|
||||
board_8
|
||||
len(board_left),
|
||||
board_left,
|
||||
len(board_center),
|
||||
board_center,
|
||||
len(board_right),
|
||||
board_right
|
||||
]
|
||||
ip_table_data[ip_table_index] = data
|
||||
window["ip_table"].update(ip_table_data, row_colors=row_colors)
|
||||
|
||||
@@ -29,7 +29,16 @@ layout = [
|
||||
[sg.Table(
|
||||
values=[],
|
||||
font=("Arial", 9),
|
||||
headings=["IP", "Model", "6 Count", "Board 6 Chips", "7 Count", "Board 7 Chips", "8 Count", "Board 8 Chips"],
|
||||
headings=[
|
||||
"IP",
|
||||
"Model",
|
||||
"L Count",
|
||||
"Left Board Chips",
|
||||
"C Count",
|
||||
"Center Board Chips",
|
||||
"R Count",
|
||||
"Right Board Chips"
|
||||
],
|
||||
auto_size_columns=False,
|
||||
max_col_width=15,
|
||||
justification="center",
|
||||
|
||||
Reference in New Issue
Block a user