finish adding support for a bunch of new avalonminers
This commit is contained in:
@@ -33,7 +33,7 @@ class CGMiner(BaseMiner):
|
||||
return self.model
|
||||
return None
|
||||
|
||||
async def get_hostname(self) -> str:
|
||||
async def get_hostname(self) -> str or None:
|
||||
if self.hostname:
|
||||
return self.hostname
|
||||
try:
|
||||
@@ -44,9 +44,9 @@ class CGMiner(BaseMiner):
|
||||
self.hostname = host
|
||||
return self.hostname
|
||||
else:
|
||||
return "?"
|
||||
return None
|
||||
except Exception:
|
||||
return "?"
|
||||
return None
|
||||
|
||||
async def send_ssh_command(self, cmd):
|
||||
result = None
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
from miners import BaseMiner
|
||||
|
||||
|
||||
class Avalon821(BaseMiner):
|
||||
class Avalon921(BaseMiner):
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "Avalon 821"
|
||||
self.model = "Avalon 921"
|
||||
self.chip_count = 26 # This miner has 4 boards totaling 104
|
||||
self.fan_count = 1 # also only 1 fan
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
from .A921 import Avalon921
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
from .A7X import *
|
||||
from .A8X import *
|
||||
from .A9X import *
|
||||
from .A10X import *
|
||||
|
||||
@@ -196,7 +196,7 @@ class CGMinerAvalon841(CGMiner, Avalon841):
|
||||
mac = await self.get_mac()
|
||||
if mac:
|
||||
data.mac = mac
|
||||
if hostname and not hostname == "?":
|
||||
if hostname:
|
||||
data.hostname = hostname
|
||||
elif mac:
|
||||
data.hostname = f"Avalon{mac.replace(':', '')[-6:]}"
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
from .A7X import *
|
||||
from .A8X import *
|
||||
from .A9X import *
|
||||
from .A10X import *
|
||||
|
||||
@@ -176,6 +176,46 @@ MINER_CLASSES = {
|
||||
"Default": BTMinerM32S,
|
||||
"BTMiner": BTMinerM32S,
|
||||
},
|
||||
"AvalonMiner 721": {
|
||||
"Default": CGMinerAvalon721,
|
||||
"CGMiner": CGMinerAvalon721,
|
||||
},
|
||||
"AvalonMiner 741": {
|
||||
"Default": CGMinerAvalon741,
|
||||
"CGMiner": CGMinerAvalon741,
|
||||
},
|
||||
"AvalonMiner 761": {
|
||||
"Default": CGMinerAvalon761,
|
||||
"CGMiner": CGMinerAvalon761,
|
||||
},
|
||||
"AvalonMiner 821": {
|
||||
"Default": CGMinerAvalon821,
|
||||
"CGMiner": CGMinerAvalon821,
|
||||
},
|
||||
"AvalonMiner 841": {
|
||||
"Default": CGMinerAvalon841,
|
||||
"CGMiner": CGMinerAvalon841,
|
||||
},
|
||||
"AvalonMiner 851": {
|
||||
"Default": CGMinerAvalon851,
|
||||
"CGMiner": CGMinerAvalon851,
|
||||
},
|
||||
"AvalonMiner 921": {
|
||||
"Default": CGMinerAvalon921,
|
||||
"CGMiner": CGMinerAvalon921,
|
||||
},
|
||||
"AvalonMiner 1026": {
|
||||
"Default": CGMinerAvalon1026,
|
||||
"CGMiner": CGMinerAvalon1026,
|
||||
},
|
||||
"AvalonMiner 1047": {
|
||||
"Default": CGMinerAvalon1047,
|
||||
"CGMiner": CGMinerAvalon1047,
|
||||
},
|
||||
"AvalonMiner 1066": {
|
||||
"Default": CGMinerAvalon1066,
|
||||
"CGMiner": CGMinerAvalon1066,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -256,22 +296,21 @@ class MinerFactory(metaclass=Singleton):
|
||||
if not api:
|
||||
api = "Default"
|
||||
|
||||
# Avalonminers
|
||||
if "avalon" in model:
|
||||
if model == "avalon10":
|
||||
miner = CGMinerAvalon1066(str(ip))
|
||||
else:
|
||||
miner = CGMinerAvalon821(str(ip))
|
||||
else:
|
||||
if model not in MINER_CLASSES.keys():
|
||||
miner = UnknownMiner(str(ip))
|
||||
return miner
|
||||
if api not in MINER_CLASSES[model].keys():
|
||||
api = "Default"
|
||||
if ver in MINER_CLASSES[model].keys():
|
||||
miner = MINER_CLASSES[model][ver](str(ip))
|
||||
return miner
|
||||
miner = MINER_CLASSES[model][api](str(ip))
|
||||
if model not in MINER_CLASSES.keys():
|
||||
if "avalon" in model:
|
||||
print(model)
|
||||
if model == "avalon10":
|
||||
miner = CGMinerAvalon1066(str(ip))
|
||||
else:
|
||||
miner = CGMinerAvalon821(str(ip))
|
||||
miner = UnknownMiner(str(ip))
|
||||
return miner
|
||||
if api not in MINER_CLASSES[model].keys():
|
||||
api = "Default"
|
||||
if ver in MINER_CLASSES[model].keys():
|
||||
miner = MINER_CLASSES[model][ver](str(ip))
|
||||
return miner
|
||||
miner = MINER_CLASSES[model][api](str(ip))
|
||||
|
||||
# if we cant find a model, check if we found the API
|
||||
else:
|
||||
@@ -407,6 +446,18 @@ class MinerFactory(metaclass=Singleton):
|
||||
):
|
||||
api = "BTMiner"
|
||||
|
||||
# check for avalonminers
|
||||
if version["VERSION"][0].get("PROD"):
|
||||
_data = version["VERSION"][0]["PROD"].split("-")
|
||||
model = _data[0]
|
||||
if len(data) > 1:
|
||||
ver = _data[1]
|
||||
elif version["VERSION"][0].get("MODEL"):
|
||||
_data = version["VERSION"][0]["MODEL"].split("-")
|
||||
model = f"AvalonMiner {_data[0]}"
|
||||
if len(data) > 1:
|
||||
ver = _data[1]
|
||||
|
||||
# if we have no model from devdetails but have version, try to get it from there
|
||||
if version and not model:
|
||||
# make sure version isn't blank
|
||||
|
||||
Reference in New Issue
Block a user