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:
@@ -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)
|
||||
|
||||
@@ -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')],
|
||||
|
||||
@@ -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__":
|
||||
|
||||
Reference in New Issue
Block a user