started adding the board utility
This commit is contained in:
@@ -10,36 +10,32 @@ class HiveonT9(BMMiner):
|
||||
def __repr__(self) -> str:
|
||||
return f"HiveonT9: {str(self.ip)}"
|
||||
|
||||
async def get_board_info(self) -> list:
|
||||
async def get_board_info(self) -> dict:
|
||||
"""Gets data on each board and chain in the miner."""
|
||||
board_stats = await self.api.stats()
|
||||
stats = board_stats['STATS'][1]
|
||||
boards = []
|
||||
boards = {}
|
||||
board_chains = {6: [2, 9, 10], 7: [3, 11, 12], 8: [4, 13, 14]}
|
||||
for idx, board in enumerate(board_chains):
|
||||
boards.append({"board": board, "chains": []})
|
||||
boards[board] = []
|
||||
for chain in board_chains[board]:
|
||||
count = stats[f"chain_acn{chain}"]
|
||||
chips = stats[f"chain_acs{chain}"].replace(" ", "")
|
||||
boards[idx]["chains"].append({
|
||||
boards[board].append({
|
||||
"chain": chain,
|
||||
"chip_count": count,
|
||||
"chip_status": chips
|
||||
})
|
||||
return boards
|
||||
|
||||
async def get_bad_boards(self) -> list:
|
||||
async def get_bad_boards(self) -> dict:
|
||||
"""Checks for and provides list of non working boards."""
|
||||
boards = await self.get_board_info()
|
||||
bad_boards = []
|
||||
idx = 0
|
||||
for board in boards:
|
||||
bad_boards.append({"board": board["board"], "chains": []})
|
||||
for chain in board["chains"]:
|
||||
bad_boards = {}
|
||||
for board in boards.keys():
|
||||
for chain in boards[board]:
|
||||
if not chain["chip_count"] == 18 or "x" in chain["chip_status"]:
|
||||
bad_boards[idx]["chains"].append(chain)
|
||||
if not bad_boards[idx]["chains"]:
|
||||
del bad_boards[idx]
|
||||
idx -= 1
|
||||
idx += 1
|
||||
return bad_boards
|
||||
if board not in bad_boards.keys():
|
||||
bad_boards[board] = []
|
||||
bad_boards[board].append(chain)
|
||||
return bad_boards
|
||||
@@ -80,3 +80,7 @@ class BMMiner(BaseMiner):
|
||||
|
||||
async def get_config(self) -> None:
|
||||
return None
|
||||
|
||||
async def get_board_info(self):
|
||||
return None
|
||||
|
||||
|
||||
@@ -109,36 +109,33 @@ class BOSMiner(BaseMiner):
|
||||
await file.write(toml_conf)
|
||||
await conn.run("/etc/init.d/bosminer restart")
|
||||
|
||||
async def get_board_info(self) -> list:
|
||||
async def get_board_info(self) -> dict:
|
||||
"""Gets data on each board and chain in the miner."""
|
||||
devdetails = await self.api.devdetails()
|
||||
devs = devdetails['DEVDETAILS']
|
||||
boards = []
|
||||
for idx, board in enumerate(devs):
|
||||
boards.append({"board": board["ID"], "chains": []})
|
||||
boards[idx]["chains"].append({
|
||||
boards = {}
|
||||
for board in devs:
|
||||
boards[board["ID"]] = []
|
||||
boards[board["ID"]].append({
|
||||
"chain": board["ID"],
|
||||
"chip_count": board['Chips'],
|
||||
"chip_status": "o" * board['Chips']
|
||||
})
|
||||
return boards
|
||||
|
||||
async def get_bad_boards(self) -> list:
|
||||
async def get_bad_boards(self) -> dict:
|
||||
"""Checks for and provides list of non working boards."""
|
||||
boards = await self.get_board_info()
|
||||
bad_boards = []
|
||||
idx = 0
|
||||
for board in boards:
|
||||
bad_boards.append({"board": board["board"], "chains": []})
|
||||
for chain in board["chains"]:
|
||||
bad_boards = {}
|
||||
for board in boards.keys():
|
||||
for chain in boards[board]:
|
||||
if not chain["chip_count"] == 63:
|
||||
bad_boards[idx]["chains"].append(chain)
|
||||
if not bad_boards[idx]["chains"]:
|
||||
del bad_boards[idx]
|
||||
idx -= 1
|
||||
idx += 1
|
||||
if board not in bad_boards.keys():
|
||||
bad_boards[board] = []
|
||||
bad_boards[board].append(chain)
|
||||
return bad_boards
|
||||
|
||||
|
||||
async def check_good_boards(self) -> str:
|
||||
"""Checks for and provides list for working boards."""
|
||||
devs = await self.api.devdetails()
|
||||
|
||||
@@ -40,3 +40,6 @@ class BTMiner(BaseMiner):
|
||||
|
||||
async def get_config(self) -> None:
|
||||
return None
|
||||
|
||||
async def get_board_info(self):
|
||||
return None
|
||||
|
||||
@@ -136,3 +136,6 @@ class CGMiner(BaseMiner):
|
||||
self._result_handler(result)
|
||||
self.config = result.stdout
|
||||
print(str(self.config))
|
||||
|
||||
async def get_board_info(self):
|
||||
return None
|
||||
|
||||
@@ -18,3 +18,6 @@ class UnknownMiner(BaseMiner):
|
||||
|
||||
async def get_hostname(self):
|
||||
return "Unknown"
|
||||
|
||||
async def get_board_info(self):
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user