added online timer for testing

This commit is contained in:
UpstreamData
2022-04-18 12:13:41 -06:00
parent 25e657729c
commit 3b716a044b
3 changed files with 51 additions and 8 deletions

View File

@@ -196,8 +196,8 @@ async def restart_miners_backend(ips: list):
progress_bar_len += 1 progress_bar_len += 1
asyncio.create_task(update_prog_bar(progress_bar_len)) asyncio.create_task(update_prog_bar(progress_bar_len))
reboot_miners_generator = reboot_generator(all_miners) restart_backend_gen = restart_backend_generator(all_miners)
async for _rebooter in reboot_miners_generator: async for _rebooter in restart_backend_gen:
progress_bar_len += 1 progress_bar_len += 1
asyncio.create_task(update_prog_bar(progress_bar_len)) asyncio.create_task(update_prog_bar(progress_bar_len))
await update_ui_with_data("status", "") await update_ui_with_data("status", "")

View File

@@ -2,6 +2,7 @@ from ipaddress import ip_address
import asyncio import asyncio
import os import os
import logging import logging
import datetime
from network import ping_miner from network import ping_miner
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
@@ -22,6 +23,7 @@ class TestbenchMiner:
self.host = host self.host = host
self.state = START self.state = START
self.latest_version = None self.latest_version = None
self.start_time = None
async def get_bos_version(self): async def get_bos_version(self):
miner = await MinerFactory().get_miner(self.host) miner = await MinerFactory().get_miner(self.host)
@@ -32,10 +34,20 @@ class TestbenchMiner:
version = version_base[-2] version = version_base[-2]
return version return version
def get_online_time(self):
online_time = "0:00:00"
if self.start_time:
online_time = str(datetime.datetime.now() - self.start_time)
return online_time
async def add_to_output(self, message): async def add_to_output(self, message):
await ConnectionManager().broadcast_json( data = {
{"IP": str(self.host), "text": str(message).replace("\r", "") + "\n"} "IP": str(self.host),
) "text": str(message).replace("\r", "") + "\n",
"online": self.get_online_time(),
}
await ConnectionManager().broadcast_json(data)
return return
async def remove_from_cache(self): async def remove_from_cache(self):
@@ -48,8 +60,9 @@ class TestbenchMiner:
await asyncio.sleep(1) await asyncio.sleep(1)
async def install_start(self): async def install_start(self):
self.start_time = datetime.datetime.now()
await ConnectionManager().broadcast_json( await ConnectionManager().broadcast_json(
{"IP": str(self.host), "Light": "hide"} {"IP": str(self.host), "Light": "hide", "online": self.get_online_time()}
) )
if not await ping_miner(self.host, 80): if not await ping_miner(self.host, 80):
await self.add_to_output("Waiting for miner connection...") await self.add_to_output("Waiting for miner connection...")
@@ -227,6 +240,7 @@ class TestbenchMiner:
"Fans": fans_data, "Fans": fans_data,
"HR": hr_data, "HR": hr_data,
"Temps": temps_data, "Temps": temps_data,
"online": self.get_online_time(),
} }
# return stats # return stats
@@ -252,6 +266,7 @@ class TestbenchMiner:
self.latest_version = sorted(await get_local_versions(), reverse=True)[0] self.latest_version = sorted(await get_local_versions(), reverse=True)[0]
while True: while True:
if self.state == START: if self.state == START:
self.start_time = None
await self.install_start() await self.install_start()
if self.state == UNLOCK: if self.state == UNLOCK:
await self.install_unlock() await self.install_unlock()

View File

@@ -89,6 +89,20 @@ function lightMiner(ip, checkbox) {
}; };
ws.onmessage = function(event) { ws.onmessage = function(event) {
var data = JSON.parse(event.data) var data = JSON.parse(event.data)
if (data.hasOwnProperty("online")) {
timer = document.getElementById(data["IP"] + "-timer")
if (data["online"] == "0:00:00") {
if (timer.className.contains("btn-success")) {
timer.className.remove("btn-success")
timer.className += ("btn-secondary")
}
} else {
if (timer.className.contains("btn-secondary")) {
timer.className.remove("btn-secondary")
timer.className += ("btn-success")
}
}
};
if (data.hasOwnProperty("miners")) { if (data.hasOwnProperty("miners")) {
var container_all = document.getElementById('chart_container'); var container_all = document.getElementById('chart_container');
container_all.innerHTML = "" container_all.innerHTML = ""
@@ -98,13 +112,27 @@ ws.onmessage = function(event) {
column.className = "col border border-dark p-3" column.className = "col border border-dark p-3"
column.id = miner["IP"] column.id = miner["IP"]
// create button group
var button_group = document.createElement("div");
button_group.className = "btn-group w-100"
// create IP address header // create IP address header
var header = document.createElement('button'); var header = document.createElement('button');
header.className = "text-center btn btn-primary w-100" header.className = "text-center btn btn-primary"
header.onclick = function(){window.open("http://" + miner["IP"], '_blank');} header.onclick = function(){window.open("http://" + miner["IP"], '_blank');}
header.innerHTML += miner["IP"] header.innerHTML += miner["IP"]
column.append(header) // create online timer
var timer = document.createElement('button');
timer.className = "text-center btn btn-secondary"
timer.disabled = true
timer.innerHTML = "0:00:00"
timer.id = miner["IP"] + "-timer"
button_group.append(header)
button_group.append(timer)
column.append(button_group)
// create install stdout // create install stdout
var row_text = document.createElement('div'); var row_text = document.createElement('div');