change get data to refresh data and made scan do both scanning and getting data, and refresh data only refreshes whats currently in the IP list or selected

This commit is contained in:
UpstreamData
2022-01-11 09:04:00 -07:00
parent 2e11527416
commit 282e00f93a
3 changed files with 14 additions and 14 deletions

View File

@@ -173,12 +173,17 @@ async def send_config(ips: list, config):
await update_ui_with_data("status", "")
async def get_data(ip_list: list):
async def refresh_data(ip_list: list):
await update_ui_with_data("status", "Getting Data")
await update_ui_with_data("hr_total", "")
ips = [ipaddress.ip_address(ip) for ip in ip_list]
if len(ips) == 0:
ips = [ipaddress.ip_address(ip) for ip in [item[0] for item in window["ip_table"].Values]]
await set_progress_bar_len(len(ips))
reset_table_values = []
for item in window["ip_table"].Values:
reset_table_values.append([item[0]])
window["ip_table"].update(reset_table_values)
progress_bar_len = 0
data_gen = asyncio.as_completed([get_formatted_data(miner) for miner in ips])
ip_table_data = window["ip_table"].Values
@@ -215,6 +220,9 @@ async def get_data(ip_list: list):
async def scan_and_get_data(network):
await update_ui_with_data("status", "Scanning")
await update_ui_with_data("hr_total", "")
await update_ui_with_data("ip_count", "")
await update_ui_with_data("ip_table", [])
network_size = len(network)
miner_generator = network.scan_network_generator()
await set_progress_bar_len(3 * network_size)

View File

@@ -35,7 +35,7 @@ layout = [
[sg.Text("IP List:", pad=(0, 0)),
sg.Text("", key="ip_count", pad=(0, 0), size=(3, 1)),
sg.Button('ALL', key="select_all_ips"),
sg.Button("GET DATA", key='get_data'),
sg.Button("REFRESH DATA", key='refresh_data'),
sg.Button("OPEN IN WEB", key='open_in_web'),
sg.Button("REBOOT", key='reboot_miners'),
sg.Button("RESTART BACKEND", key='restart_miner_backend')],

View File

@@ -3,7 +3,7 @@ import sys
import PySimpleGUI as sg
from cfg_util.layout import window, generate_config_layout
from cfg_util.func.miners import scan_network, send_config, miner_light, get_data, generate_config, import_config, \
from cfg_util.func.miners import scan_network, send_config, miner_light, refresh_data, generate_config, import_config, \
scan_and_get_data, restart_miners_backend, reboot_miners
from cfg_util.func.files import import_iplist, import_config_file, export_iplist, export_config_file
from cfg_util.func.ui import sort_data, copy_from_table
@@ -35,7 +35,7 @@ async def ui():
miner_network = MinerNetwork(ip_addr=network[0], mask=network[1])
else:
miner_network = MinerNetwork(value['miner_network'])
asyncio.create_task(scan_network(miner_network))
asyncio.create_task(scan_and_get_data(miner_network))
if event == 'select_all_ips':
if len(value["ip_table"]) == len(window["ip_table"].Values):
window["ip_table"].update(select_rows=())
@@ -60,16 +60,8 @@ async def ui():
asyncio.create_task(import_config_file(value['file_config']))
if event == "export_file_config":
asyncio.create_task(export_config_file(value['file_config'], value["config"]))
if event == "get_data":
if len(window["ip_table"].Values) == 0:
if len(value['miner_network'].split("/")) > 1:
network = value['miner_network'].split("/")
miner_network = MinerNetwork(ip_addr=network[0], mask=network[1])
else:
miner_network = MinerNetwork(value['miner_network'])
asyncio.create_task(scan_and_get_data(miner_network))
else:
asyncio.create_task(get_data([window["ip_table"].Values[item][0] for item in value["ip_table"]]))
if event == "refresh_data":
asyncio.create_task(refresh_data([window["ip_table"].Values[item][0] for item in value["ip_table"]]))
if event == "generate_config":
await generate_config_ui()
if event == "__TIMEOUT__":