added bosminer board data
This commit is contained in:
@@ -253,6 +253,12 @@ class BOSMiner(BaseMiner):
|
|||||||
"Temperature": 0,
|
"Temperature": 0,
|
||||||
"Pool User": "Unknown",
|
"Pool User": "Unknown",
|
||||||
"Wattage": 0,
|
"Wattage": 0,
|
||||||
|
"Total": 0,
|
||||||
|
"Ideal": self.nominal_chips * 3,
|
||||||
|
"Left Board": 0,
|
||||||
|
"Center Board": 0,
|
||||||
|
"Right Board": 0,
|
||||||
|
"Nominal": False,
|
||||||
"Split": "0",
|
"Split": "0",
|
||||||
"Pool 1": "Unknown",
|
"Pool 1": "Unknown",
|
||||||
"Pool 1 User": "Unknown",
|
"Pool 1 User": "Unknown",
|
||||||
@@ -271,7 +277,7 @@ class BOSMiner(BaseMiner):
|
|||||||
miner_data = None
|
miner_data = None
|
||||||
for i in range(DATA_RETRIES):
|
for i in range(DATA_RETRIES):
|
||||||
miner_data = await self.api.multicommand(
|
miner_data = await self.api.multicommand(
|
||||||
"summary", "temps", "tunerstatus", "pools"
|
"summary", "temps", "tunerstatus", "pools", "devdetails"
|
||||||
)
|
)
|
||||||
if miner_data:
|
if miner_data:
|
||||||
break
|
break
|
||||||
@@ -281,6 +287,7 @@ class BOSMiner(BaseMiner):
|
|||||||
temps = miner_data.get("temps")[0]
|
temps = miner_data.get("temps")[0]
|
||||||
tunerstatus = miner_data.get("tunerstatus")[0]
|
tunerstatus = miner_data.get("tunerstatus")[0]
|
||||||
pools = miner_data.get("pools")[0]
|
pools = miner_data.get("pools")[0]
|
||||||
|
devdetails = miner_data.get("devdetails")[0]
|
||||||
|
|
||||||
if summary:
|
if summary:
|
||||||
hr = summary.get("SUMMARY")
|
hr = summary.get("SUMMARY")
|
||||||
@@ -351,4 +358,19 @@ class BOSMiner(BaseMiner):
|
|||||||
if wattage:
|
if wattage:
|
||||||
data["Wattage"] = wattage
|
data["Wattage"] = wattage
|
||||||
|
|
||||||
|
if devdetails:
|
||||||
|
boards = devdetails.get("DEVDETAILS")
|
||||||
|
if boards:
|
||||||
|
if len(boards) > 0:
|
||||||
|
board_map = {0: "Left Board", 1: "Center Board", 2: "Right Board"}
|
||||||
|
offset = boards[0]["ID"]
|
||||||
|
for board in boards:
|
||||||
|
id = board["ID"] - offset
|
||||||
|
chips = board["Chips"]
|
||||||
|
data["Total"] += chips
|
||||||
|
data[board_map[id]] = chips
|
||||||
|
|
||||||
|
if data["Total"] == data["Ideal"]:
|
||||||
|
data["Nominal"] = True
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -95,8 +95,8 @@ TABLE_HEADERS = {
|
|||||||
"BOARDS": [
|
"BOARDS": [
|
||||||
"IP",
|
"IP",
|
||||||
"Model",
|
"Model",
|
||||||
"Total Chips",
|
"Ideal",
|
||||||
"Nominal Chips",
|
"Total",
|
||||||
"Left Board",
|
"Left Board",
|
||||||
"Center Board",
|
"Center Board",
|
||||||
"Right Board",
|
"Right Board",
|
||||||
@@ -174,8 +174,8 @@ TEMP_COL_WIDTH = 8
|
|||||||
USER_COL_WIDTH = 33
|
USER_COL_WIDTH = 33
|
||||||
WATTAGE_COL_WIDTH = 10
|
WATTAGE_COL_WIDTH = 10
|
||||||
SPLIT_COL_WIDTH = 8
|
SPLIT_COL_WIDTH = 8
|
||||||
TOTAL_CHIP_WIDTH = 14
|
TOTAL_CHIP_WIDTH = 8
|
||||||
NOMINAL_CHIP_WIDTH = 16
|
IDEAL_CHIP_WIDTH = 8
|
||||||
SCAN_COL_WIDTHS = [
|
SCAN_COL_WIDTHS = [
|
||||||
IP_COL_WIDTH,
|
IP_COL_WIDTH,
|
||||||
MODEL_COL_WIDTH,
|
MODEL_COL_WIDTH,
|
||||||
@@ -277,7 +277,7 @@ def get_boards_layout():
|
|||||||
IP_COL_WIDTH,
|
IP_COL_WIDTH,
|
||||||
MODEL_COL_WIDTH,
|
MODEL_COL_WIDTH,
|
||||||
TOTAL_CHIP_WIDTH,
|
TOTAL_CHIP_WIDTH,
|
||||||
NOMINAL_CHIP_WIDTH,
|
IDEAL_CHIP_WIDTH,
|
||||||
]
|
]
|
||||||
add_length = TABLE_TOTAL_WIDTH - sum(BOARDS_COL_WIDTHS)
|
add_length = TABLE_TOTAL_WIDTH - sum(BOARDS_COL_WIDTHS)
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
|
|||||||
@@ -3,24 +3,17 @@ import asyncio
|
|||||||
from miners.miner_factory import MinerFactory
|
from miners.miner_factory import MinerFactory
|
||||||
from network import MinerNetwork
|
from network import MinerNetwork
|
||||||
from tools.cfg_util.decorators import disable_buttons
|
from tools.cfg_util.decorators import disable_buttons
|
||||||
from tools.cfg_util.layout import window, update_prog_bar
|
from tools.cfg_util.layout import window, update_prog_bar, TABLE_HEADERS
|
||||||
from tools.cfg_util.tables import clear_tables, TableManager
|
from tools.cfg_util.tables import clear_tables, TableManager
|
||||||
|
|
||||||
progress_bar_len = 0
|
progress_bar_len = 0
|
||||||
|
|
||||||
DEFAULT_DATA = [
|
|
||||||
"Model",
|
DEFAULT_DATA = set()
|
||||||
"Hostname",
|
|
||||||
"Hashrate",
|
for table in TABLE_HEADERS:
|
||||||
"Temperature",
|
for header in TABLE_HEADERS[table]:
|
||||||
"Pool User",
|
DEFAULT_DATA.add(header)
|
||||||
"Pool 1",
|
|
||||||
"Pool 1 User",
|
|
||||||
"Pool 2",
|
|
||||||
"Pool 2 User",
|
|
||||||
"Wattage",
|
|
||||||
"Split",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
async def btn_all():
|
async def btn_all():
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ class TableManager(metaclass=Singleton):
|
|||||||
|
|
||||||
def _get_sort(self, data_key: str):
|
def _get_sort(self, data_key: str):
|
||||||
if self.sort_key not in self.data[data_key]:
|
if self.sort_key not in self.data[data_key]:
|
||||||
|
print(self.data[data_key])
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
if self.sort_key == "IP":
|
if self.sort_key == "IP":
|
||||||
@@ -188,7 +189,15 @@ class TableManager(metaclass=Singleton):
|
|||||||
self.data[data_key]["Hashrate"].replace(" ", "").replace("TH/s", "")
|
self.data[data_key]["Hashrate"].replace(" ", "").replace("TH/s", "")
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.sort_key in ["Wattage", "Temp"]:
|
if self.sort_key in [
|
||||||
|
"Wattage",
|
||||||
|
"Temp",
|
||||||
|
"Total",
|
||||||
|
"Ideal",
|
||||||
|
"Left Chips",
|
||||||
|
"Center Chips",
|
||||||
|
"Right Chips",
|
||||||
|
]:
|
||||||
if isinstance(self.data[data_key][self.sort_key], str):
|
if isinstance(self.data[data_key][self.sort_key], str):
|
||||||
return -300
|
return -300
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user