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 self.model
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_hostname(self) -> str:
|
async def get_hostname(self) -> str or None:
|
||||||
if self.hostname:
|
if self.hostname:
|
||||||
return self.hostname
|
return self.hostname
|
||||||
try:
|
try:
|
||||||
@@ -44,9 +44,9 @@ class CGMiner(BaseMiner):
|
|||||||
self.hostname = host
|
self.hostname = host
|
||||||
return self.hostname
|
return self.hostname
|
||||||
else:
|
else:
|
||||||
return "?"
|
return None
|
||||||
except Exception:
|
except Exception:
|
||||||
return "?"
|
return None
|
||||||
|
|
||||||
async def send_ssh_command(self, cmd):
|
async def send_ssh_command(self, cmd):
|
||||||
result = None
|
result = None
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
from miners import BaseMiner
|
from miners import BaseMiner
|
||||||
|
|
||||||
|
|
||||||
class Avalon821(BaseMiner):
|
class Avalon921(BaseMiner):
|
||||||
def __init__(self, ip: str):
|
def __init__(self, ip: str):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.model = "Avalon 821"
|
self.model = "Avalon 921"
|
||||||
self.chip_count = 26 # This miner has 4 boards totaling 104
|
self.chip_count = 26 # This miner has 4 boards totaling 104
|
||||||
self.fan_count = 1 # also only 1 fan
|
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 .A8X import *
|
||||||
|
from .A9X import *
|
||||||
from .A10X import *
|
from .A10X import *
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ class CGMinerAvalon841(CGMiner, Avalon841):
|
|||||||
mac = await self.get_mac()
|
mac = await self.get_mac()
|
||||||
if mac:
|
if mac:
|
||||||
data.mac = mac
|
data.mac = mac
|
||||||
if hostname and not hostname == "?":
|
if hostname:
|
||||||
data.hostname = hostname
|
data.hostname = hostname
|
||||||
elif mac:
|
elif mac:
|
||||||
data.hostname = f"Avalon{mac.replace(':', '')[-6:]}"
|
data.hostname = f"Avalon{mac.replace(':', '')[-6:]}"
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
|
from .A7X import *
|
||||||
from .A8X import *
|
from .A8X import *
|
||||||
|
from .A9X import *
|
||||||
from .A10X import *
|
from .A10X import *
|
||||||
|
|||||||
@@ -176,6 +176,46 @@ MINER_CLASSES = {
|
|||||||
"Default": BTMinerM32S,
|
"Default": BTMinerM32S,
|
||||||
"BTMiner": 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:
|
if not api:
|
||||||
api = "Default"
|
api = "Default"
|
||||||
|
|
||||||
# Avalonminers
|
if model not in MINER_CLASSES.keys():
|
||||||
if "avalon" in model:
|
if "avalon" in model:
|
||||||
if model == "avalon10":
|
print(model)
|
||||||
miner = CGMinerAvalon1066(str(ip))
|
if model == "avalon10":
|
||||||
else:
|
miner = CGMinerAvalon1066(str(ip))
|
||||||
miner = CGMinerAvalon821(str(ip))
|
else:
|
||||||
else:
|
miner = CGMinerAvalon821(str(ip))
|
||||||
if model not in MINER_CLASSES.keys():
|
miner = UnknownMiner(str(ip))
|
||||||
miner = UnknownMiner(str(ip))
|
return miner
|
||||||
return miner
|
if api not in MINER_CLASSES[model].keys():
|
||||||
if api not in MINER_CLASSES[model].keys():
|
api = "Default"
|
||||||
api = "Default"
|
if ver in MINER_CLASSES[model].keys():
|
||||||
if ver in MINER_CLASSES[model].keys():
|
miner = MINER_CLASSES[model][ver](str(ip))
|
||||||
miner = MINER_CLASSES[model][ver](str(ip))
|
return miner
|
||||||
return miner
|
miner = MINER_CLASSES[model][api](str(ip))
|
||||||
miner = MINER_CLASSES[model][api](str(ip))
|
|
||||||
|
|
||||||
# if we cant find a model, check if we found the API
|
# if we cant find a model, check if we found the API
|
||||||
else:
|
else:
|
||||||
@@ -407,6 +446,18 @@ class MinerFactory(metaclass=Singleton):
|
|||||||
):
|
):
|
||||||
api = "BTMiner"
|
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 we have no model from devdetails but have version, try to get it from there
|
||||||
if version and not model:
|
if version and not model:
|
||||||
# make sure version isn't blank
|
# make sure version isn't blank
|
||||||
|
|||||||
Reference in New Issue
Block a user