set graphs to show and hide when getting data

This commit is contained in:
UpstreamData
2022-04-14 10:43:26 -06:00
parent af27cbbe2c
commit 4f6ebff880
2 changed files with 43 additions and 35 deletions

View File

@@ -7,7 +7,7 @@ from network.net_range import MinerNetworkRange
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from miners.antminer.S9.bosminer import BOSMinerS9 from miners.antminer.S9.bosminer import BOSMinerS9
miner_network = MinerNetworkRange("192.168.1.1-192.168.1.38") miner_network = MinerNetworkRange("192.168.1.10-192.168.1.33")
REFERRAL_FILE_S9 = os.path.join(os.path.dirname(__file__), "files", "referral.ipk") REFERRAL_FILE_S9 = os.path.join(os.path.dirname(__file__), "files", "referral.ipk")
UPDATE_FILE_S9 = os.path.join(os.path.dirname(__file__), "files", "update.tar") UPDATE_FILE_S9 = os.path.join(os.path.dirname(__file__), "files", "update.tar")
@@ -15,17 +15,10 @@ CONFIG_FILE = os.path.join(os.path.dirname(__file__), "files", "config.toml")
# static states # static states
( (START, UNLOCK, INSTALL, UPDATE, REFERRAL, DONE) = range(6)
START,
UNLOCK,
INSTALL,
UPDATE,
REFERRAL,
DONE
) = range(6)
class testbenchMiner(): class testbenchMiner:
def __init__(self, host: ip_address): def __init__(self, host: ip_address):
self.host = host self.host = host
self.state = START self.state = START
@@ -66,7 +59,8 @@ class testbenchMiner():
proc = await asyncio.create_subprocess_shell( proc = await asyncio.create_subprocess_shell(
f'{os.path.join(os.path.dirname(__file__), "files", "asicseer_installer.exe")} -p -f {str(self.host)} root', f'{os.path.join(os.path.dirname(__file__), "files", "asicseer_installer.exe")} -p -f {str(self.host)} root',
stdout=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE) stderr=asyncio.subprocess.PIPE,
)
stdout, stderr = await proc.communicate() stdout, stderr = await proc.communicate()
if str(stdout).find("webUI") != -1: if str(stdout).find("webUI") != -1:
return False return False
@@ -76,11 +70,12 @@ class testbenchMiner():
proc = await asyncio.create_subprocess_shell( proc = await asyncio.create_subprocess_shell(
f'{os.path.join(os.path.dirname(__file__), "files", "bos-toolbox", "bos-toolbox.bat")} install {str(self.host)} --no-keep-pools --psu-power-limit 900 --no-nand-backup --feeds-url file:./feeds/', f'{os.path.join(os.path.dirname(__file__), "files", "bos-toolbox", "bos-toolbox.bat")} install {str(self.host)} --no-keep-pools --psu-power-limit 900 --no-nand-backup --feeds-url file:./feeds/',
stdout=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE) stderr=asyncio.subprocess.PIPE,
)
# get stdout of the install # get stdout of the install
while True: while True:
stdout = await proc.stderr.readuntil(b'\r') stdout = await proc.stderr.readuntil(b"\r")
if stdout == b'': if stdout == b"":
break break
await proc.wait() await proc.wait()
while not await ping_miner(self.host): while not await ping_miner(self.host):
@@ -103,10 +98,12 @@ class testbenchMiner():
miner = await MinerFactory().get_miner(self.host) miner = await MinerFactory().get_miner(self.host)
if os.path.exists(REFERRAL_FILE_S9): if os.path.exists(REFERRAL_FILE_S9):
try: try:
await miner.send_file(REFERRAL_FILE_S9, '/tmp/referral.ipk') await miner.send_file(REFERRAL_FILE_S9, "/tmp/referral.ipk")
await miner.send_file(CONFIG_FILE, '/etc/bosminer.toml') await miner.send_file(CONFIG_FILE, "/etc/bosminer.toml")
await miner.send_ssh_command('opkg install /tmp/referral.ipk && /etc/init.d/bosminer restart') await miner.send_ssh_command(
"opkg install /tmp/referral.ipk && /etc/init.d/bosminer restart"
)
except: except:
self.state = START self.state = START
return return
@@ -124,16 +121,20 @@ class testbenchMiner():
try: try:
all_data = await miner.api.multicommand("devs", "temps", "fans") all_data = await miner.api.multicommand("devs", "temps", "fans")
devs_raw = all_data['devs'][0] devs_raw = all_data["devs"][0]
temps_raw = all_data['temps'][0] temps_raw = all_data["temps"][0]
fans_raw = all_data['fans'][0] fans_raw = all_data["fans"][0]
# parse temperature data # parse temperature data
temps_data = {} temps_data = {}
for board in range(len(temps_raw['TEMPS'])): for board in range(len(temps_raw["TEMPS"])):
temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"] = {} temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"] = {}
temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"]["Board"] = temps_raw['TEMPS'][board]['Board'] temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"][
temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"]["Chip"] = temps_raw['TEMPS'][board]['Chip'] "Board"
] = temps_raw["TEMPS"][board]["Board"]
temps_data[f"board_{temps_raw['TEMPS'][board]['ID']}"][
"Chip"
] = temps_raw["TEMPS"][board]["Chip"]
# parse individual board and chip temperature data # parse individual board and chip temperature data
for board in temps_data.keys(): for board in temps_data.keys():
@@ -144,25 +145,27 @@ class testbenchMiner():
# parse hashrate data # parse hashrate data
hr_data = {} hr_data = {}
for board in range(len(devs_raw['DEVS'])): for board in range(len(devs_raw["DEVS"])):
hr_data[f"board_{devs_raw['DEVS'][board]['ID']}"] = {} hr_data[f"board_{devs_raw['DEVS'][board]['ID']}"] = {}
hr_data[f"board_{devs_raw['DEVS'][board]['ID']}"]["HR"] = round( hr_data[f"board_{devs_raw['DEVS'][board]['ID']}"]["HR"] = round(
devs_raw['DEVS'][board]['MHS 5s'] / 1000000, devs_raw["DEVS"][board]["MHS 5s"] / 1000000, 2
2) )
# parse fan data # parse fan data
fans_data = {} fans_data = {}
for fan in range(len(fans_raw['FANS'])): for fan in range(len(fans_raw["FANS"])):
fans_data[f"fan_{fans_raw['FANS'][fan]['ID']}"] = {} fans_data[f"fan_{fans_raw['FANS'][fan]['ID']}"] = {}
fans_data[f"fan_{fans_raw['FANS'][fan]['ID']}"]['RPM'] = fans_raw['FANS'][fan]['RPM'] fans_data[f"fan_{fans_raw['FANS'][fan]['ID']}"]["RPM"] = fans_raw[
"FANS"
][fan]["RPM"]
# set the miner data # set the miner data
miner_data = { miner_data = {
'IP': self.host, "IP": self.host,
"Light": "show", "Light": "show",
'Fans': fans_data, "Fans": fans_data,
'HR': hr_data, "HR": hr_data,
'Temps': temps_data "Temps": temps_data,
} }
# return stats # return stats

View File

@@ -207,6 +207,7 @@ var ws = new WebSocket("ws://{{request.url.hostname}}:{% if request.url.port %}{
// create miner graph container // create miner graph container
var miner_graphs = document.createElement('div'); var miner_graphs = document.createElement('div');
miner_graphs.id = miner + "-graphs" miner_graphs.id = miner + "-graphs"
miner_graphs.hidden = true
// append the rows to the column // append the rows to the column
miner_graphs.append(row_hr) miner_graphs.append(row_hr)
@@ -273,9 +274,11 @@ var ws = new WebSocket("ws://{{request.url.hostname}}:{% if request.url.port %}{
}); });
} }
if (data.hasOwnProperty("HR")) { else if (data.hasOwnProperty("HR")) {
var miner_stdout = document.getElementById(data["IP"] + "-stdout") var miner_stdout = document.getElementById(data["IP"] + "-stdout")
miner_stdout.hidden = true miner_stdout.hidden = true
var miner_graphs = document.getElementById(data["IP"] + "-graphs")
miner_graphs.hidden = false
var hr_graph = Chart.getChart(data["IP"] + "-hr") var hr_graph = Chart.getChart(data["IP"] + "-hr")
var temp_graph = Chart.getChart(data["IP"] + "-temp") var temp_graph = Chart.getChart(data["IP"] + "-temp")
var fan_1_graph = Chart.getChart(data["IP"] + "-fan-1") var fan_1_graph = Chart.getChart(data["IP"] + "-fan-1")
@@ -326,9 +329,11 @@ var ws = new WebSocket("ws://{{request.url.hostname}}:{% if request.url.port %}{
var fan_2_data = [{label: "Fan Speed", data: [fan_2_rpm, 6000-fan_2_rpm], backgroundColor: ["rgba(103, 0, 221, 1)", secondary_col_2]}] var fan_2_data = [{label: "Fan Speed", data: [fan_2_rpm, 6000-fan_2_rpm], backgroundColor: ["rgba(103, 0, 221, 1)", secondary_col_2]}]
fan_2_graph.data.datasets = fan_2_data; fan_2_graph.data.datasets = fan_2_data;
fan_2_graph.update(); fan_2_graph.update();
} else { } else {
var miner_graphs = document.getElementById(data["IP"] + "-graphs")
console.log(data["IP"] + "-graphs");
console.log(miner_graphs);
// miner_graphs.hidden = true
console.log(data) console.log(data)
} }
} }