reformatted to prep for beta release
This commit is contained in:
@@ -324,4 +324,3 @@ class BTMinerAPI(BaseMinerAPI):
|
|||||||
|
|
||||||
async def get_miner_info(self):
|
async def get_miner_info(self):
|
||||||
return await self.send_command("get_miner_info")
|
return await self.send_command("get_miner_info")
|
||||||
|
|
||||||
|
|||||||
@@ -15,13 +15,12 @@ base = None
|
|||||||
if sys.platform == "win32":
|
if sys.platform == "win32":
|
||||||
base = "Win32GUI"
|
base = "Win32GUI"
|
||||||
|
|
||||||
|
|
||||||
version = datetime.datetime.now()
|
version = datetime.datetime.now()
|
||||||
version = version.strftime("%y.%m.%d")
|
version = version.strftime("%y.%m.%d")
|
||||||
print(version)
|
print(version)
|
||||||
setup(name="UpstreamCFGUtil.exe",
|
setup(name="UpstreamCFGUtil.exe",
|
||||||
version=version,
|
version=version,
|
||||||
description="Upstream Data Config Utility Build",
|
description="Upstream Data Config Utility Build",
|
||||||
options={"build_exe":{"build_exe": f"{os.getcwd()}\\build\\UpstreamCFGUtil-{version}-{sys.platform}\\"}},
|
options={"build_exe": {"build_exe": f"{os.getcwd()}\\build\\UpstreamCFGUtil-{version}-{sys.platform}\\"}},
|
||||||
executables=[Executable("config_tool.py", base=base, icon="icon.ico", target_name="UpstreamCFGUtil.exe")]
|
executables=[Executable("config_tool.py", base=base, icon="icon.ico", target_name="UpstreamCFGUtil.exe")]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -115,4 +115,4 @@ class BOSMinerS9(BaseMiner):
|
|||||||
if chain['Chips'] == 0:
|
if chain['Chips'] == 0:
|
||||||
bad += 1
|
bad += 1
|
||||||
if not bad > 0:
|
if not bad > 0:
|
||||||
return str(self.ip)
|
return str(self.ip)
|
||||||
|
|||||||
@@ -115,4 +115,4 @@ class BOSminerX17(BaseMiner):
|
|||||||
if chain['Chips'] == 0:
|
if chain['Chips'] == 0:
|
||||||
bad += 1
|
bad += 1
|
||||||
if not bad > 0:
|
if not bad > 0:
|
||||||
return str(self.ip)
|
return str(self.ip)
|
||||||
|
|||||||
@@ -115,4 +115,4 @@ class BOSminer(BaseMiner):
|
|||||||
if chain['Chips'] == 0:
|
if chain['Chips'] == 0:
|
||||||
bad += 1
|
bad += 1
|
||||||
if not bad > 0:
|
if not bad > 0:
|
||||||
return str(self.ip)
|
return str(self.ip)
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import ipaddress
|
import ipaddress
|
||||||
import asyncio
|
import asyncio
|
||||||
from miners.miner_factory import MinerFactory
|
from miners.miner_factory import MinerFactory
|
||||||
from settings import NETWORK_PING_RETRIES as PING_RETRIES, NETWORK_PING_TIMEOUT as PING_TIMEOUT, NETWORK_SCAN_THREADS as SCAN_THREADS
|
from settings import NETWORK_PING_RETRIES as PING_RETRIES, NETWORK_PING_TIMEOUT as PING_TIMEOUT, \
|
||||||
|
NETWORK_SCAN_THREADS as SCAN_THREADS
|
||||||
|
|
||||||
|
|
||||||
class MinerNetwork:
|
class MinerNetwork:
|
||||||
@@ -53,7 +54,6 @@ class MinerNetwork:
|
|||||||
miners = await asyncio.gather(*create_miners_tasks)
|
miners = await asyncio.gather(*create_miners_tasks)
|
||||||
return miners
|
return miners
|
||||||
|
|
||||||
|
|
||||||
async def scan_network_generator(self):
|
async def scan_network_generator(self):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
local_network = self.get_network()
|
local_network = self.get_network()
|
||||||
@@ -69,7 +69,6 @@ class MinerNetwork:
|
|||||||
for miner in scanned:
|
for miner in scanned:
|
||||||
yield await miner
|
yield await miner
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def ping_miner(ip: ipaddress.ip_address) -> None or ipaddress.ip_address:
|
async def ping_miner(ip: ipaddress.ip_address) -> None or ipaddress.ip_address:
|
||||||
for i in range(PING_RETRIES):
|
for i in range(PING_RETRIES):
|
||||||
|
|||||||
86
tests.py
86
tests.py
@@ -1,86 +0,0 @@
|
|||||||
from network import MinerNetwork
|
|
||||||
from miners.bosminer import BOSminer
|
|
||||||
import asyncio
|
|
||||||
from API.bosminer import BOSMinerAPI
|
|
||||||
from API.cgminer import CGMinerAPI
|
|
||||||
from API.btminer import BTMinerAPI
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
# Fix bug with some whatsminers and asyncio because of a socket not being shut down:
|
|
||||||
if sys.version_info[0] == 3 and sys.version_info[1] >= 8 and sys.platform.startswith('win'):
|
|
||||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
||||||
|
|
||||||
async def good_boards():
|
|
||||||
miner_network = MinerNetwork('192.168.1.1')
|
|
||||||
miners = await miner_network.scan_network_for_miners()
|
|
||||||
# print("\n".join([str(miner.ip) for miner in miners]))
|
|
||||||
good_list = list(filter(None, await asyncio.gather(*[miner.check_good_boards() for miner in miners])))
|
|
||||||
print("\n".join(good_list))
|
|
||||||
print(len(good_list))
|
|
||||||
# print('\n'.join([f"{str(miner.ip)}" for miner in miners]))
|
|
||||||
|
|
||||||
|
|
||||||
async def bad_boards():
|
|
||||||
miner_network = MinerNetwork('192.168.1.1')
|
|
||||||
miners = await miner_network.scan_network_for_miners()
|
|
||||||
bad_list = list(filter(None, await asyncio.gather(*[miner.get_bad_boards() for miner in miners if isinstance(miner, BOSminer)])))
|
|
||||||
print(bad_list)
|
|
||||||
print(len(bad_list))
|
|
||||||
|
|
||||||
|
|
||||||
async def braiins_update():
|
|
||||||
miners = [BOSminer('192.168.1.36')]
|
|
||||||
cmd = "wget -O /tmp/firmware.tar https://feeds.braiins-os.com/am1-s9/firmware_2021-10-27-0-a6497b86-21.09.3-plus_arm_cortex-a9_neon.tar && sysupgrade /tmp/firmware.tar"
|
|
||||||
tasks = []
|
|
||||||
for miner in miners:
|
|
||||||
if isinstance(miner, BOSminer):
|
|
||||||
tasks.append(miner.send_ssh_command(cmd))
|
|
||||||
results = await asyncio.gather(*tasks)
|
|
||||||
print(results)
|
|
||||||
|
|
||||||
|
|
||||||
async def test_command():
|
|
||||||
miner_network = MinerNetwork('192.168.1.1')
|
|
||||||
miners = await miner_network.scan_network_for_miners()
|
|
||||||
tasks = [miner.api.summary() for miner in miners]
|
|
||||||
data = await asyncio.gather(*tasks)
|
|
||||||
parse_tasks = []
|
|
||||||
for item in data:
|
|
||||||
parse_tasks.append(safe_parse_api_data(item, 'SUMMARY', 0, 'MHS 5s'))
|
|
||||||
data = await asyncio.gather(*parse_tasks)
|
|
||||||
print(data)
|
|
||||||
|
|
||||||
async def get_commands_from_miner_api():
|
|
||||||
miner = BOSMinerAPI("192.168.1.1")
|
|
||||||
print(miner.get_commands())
|
|
||||||
miner = CGMinerAPI("192.168.1.1")
|
|
||||||
print(miner.get_commands())
|
|
||||||
|
|
||||||
async def restart_btminer_miner():
|
|
||||||
miner = BTMinerAPI("192.168.1.6")
|
|
||||||
print(await miner.summary())
|
|
||||||
print(await miner.pools())
|
|
||||||
print(await miner.devs())
|
|
||||||
print(await miner.edevs())
|
|
||||||
print(await miner.devdetails())
|
|
||||||
print(await miner.get_psu())
|
|
||||||
print(await miner.version())
|
|
||||||
print(await miner.status())
|
|
||||||
print(await miner.get_miner_info())
|
|
||||||
print(await miner.power_off())
|
|
||||||
|
|
||||||
|
|
||||||
async def scan_generator():
|
|
||||||
miners_all = []
|
|
||||||
miner_network = MinerNetwork('192.168.1.1', mask=22)
|
|
||||||
miners = miner_network.scan_network_generator()
|
|
||||||
async for miner in miners:
|
|
||||||
if miner:
|
|
||||||
miners_all.append(miner)
|
|
||||||
print(miners_all)
|
|
||||||
print(len(miners_all))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
asyncio.new_event_loop().run_until_complete(scan_generator())
|
|
||||||
Reference in New Issue
Block a user