fixed a bug with some versions of whatsminer and improved logging
This commit is contained in:
@@ -2,17 +2,23 @@ import logging
|
|||||||
from settings import DEBUG
|
from settings import DEBUG
|
||||||
|
|
||||||
|
|
||||||
|
def init_logger():
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
# filename="logfile.txt",
|
# filename="logfile.txt",
|
||||||
# filemode="a",
|
# filemode="a",
|
||||||
format="[%(levelname)s][%(asctime)s](%(name)s) - %(message)s",
|
format="%(pathname)s:%(lineno)d in %(funcName)s\n[%(levelname)s][%(asctime)s](%(name)s) - %(message)s",
|
||||||
datefmt="%x %X",
|
datefmt="%x %X",
|
||||||
)
|
)
|
||||||
logger = logging.getLogger()
|
_logger = logging.getLogger()
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
logger.setLevel(logging.DEBUG)
|
_logger.setLevel(logging.DEBUG)
|
||||||
logging.getLogger("asyncssh").setLevel(logging.DEBUG)
|
logging.getLogger("asyncssh").setLevel(logging.DEBUG)
|
||||||
else:
|
else:
|
||||||
logger.setLevel(logging.INFO)
|
_logger.setLevel(logging.INFO)
|
||||||
logging.getLogger("asyncssh").setLevel(logging.WARNING)
|
logging.getLogger("asyncssh").setLevel(logging.WARNING)
|
||||||
|
|
||||||
|
return _logger
|
||||||
|
|
||||||
|
|
||||||
|
logger = init_logger()
|
||||||
|
|||||||
@@ -8,3 +8,12 @@ class M31SPlus(BaseMiner):
|
|||||||
self.model = "M31S+"
|
self.model = "M31S+"
|
||||||
self.nominal_chips = 78
|
self.nominal_chips = 78
|
||||||
self.fan_count = 2
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
|
class M31SPlusVE20(BaseMiner):
|
||||||
|
def __init__(self, ip: str):
|
||||||
|
super().__init__()
|
||||||
|
self.ip = ip
|
||||||
|
self.model = "M31S+VE20"
|
||||||
|
self.nominal_chips = 78
|
||||||
|
self.fan_count = 2
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ from .M30S_Plus import M30SPlus
|
|||||||
from .M30S_Plus_Plus import M30SPlusPlusVG30, M30SPlusPlusVG40
|
from .M30S_Plus_Plus import M30SPlusPlusVG30, M30SPlusPlusVG40
|
||||||
|
|
||||||
from .M31S import M31S
|
from .M31S import M31S
|
||||||
from .M31S_Plus import M31SPlus
|
from .M31S_Plus import M31SPlus, M31SPlusVE20
|
||||||
|
|
||||||
from .M32S import M32S
|
from .M32S import M32S
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ MINER_CLASSES = {
|
|||||||
"M31S+": {
|
"M31S+": {
|
||||||
"Default": BTMinerM31SPlus,
|
"Default": BTMinerM31SPlus,
|
||||||
"BTMiner": BTMinerM31SPlus,
|
"BTMiner": BTMinerM31SPlus,
|
||||||
|
"20": BTMinerM31SPlusVE20,
|
||||||
},
|
},
|
||||||
"M32S": {
|
"M32S": {
|
||||||
"Default": BTMinerM32S,
|
"Default": BTMinerM32S,
|
||||||
@@ -430,12 +431,16 @@ class MinerFactory(metaclass=Singleton):
|
|||||||
if model:
|
if model:
|
||||||
# whatsminer have a V in their version string (M20SV41), remove everything after it
|
# whatsminer have a V in their version string (M20SV41), remove everything after it
|
||||||
if "V" in model:
|
if "V" in model:
|
||||||
|
_ver = model.split("V")
|
||||||
|
if len(_ver) > 1:
|
||||||
|
if "VE" in model:
|
||||||
|
ver = model.split("VE")[1]
|
||||||
|
if "VG" in model:
|
||||||
ver = model.split("VG")[1]
|
ver = model.split("VG")[1]
|
||||||
model = model.split("V")[0]
|
model = model.split("V")[0]
|
||||||
# don't need "Bitmain", just "Antminer XX" as model
|
# don't need "Bitmain", just "Antminer XX" as model
|
||||||
if "Bitmain " in model:
|
if "Bitmain " in model:
|
||||||
model = model.replace("Bitmain ", "")
|
model = model.replace("Bitmain ", "")
|
||||||
|
|
||||||
return model, api, ver
|
return model, api, ver
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
from miners._backends import BTMiner # noqa - Ignore access to _module
|
from miners._backends import BTMiner # noqa - Ignore access to _module
|
||||||
from miners._types import M31SPlus # noqa - Ignore access to _module
|
from miners._types import M31SPlus, M31SPlusVE20 # noqa - Ignore access to _module
|
||||||
|
|
||||||
|
|
||||||
class BTMinerM31SPlus(BTMiner, M31SPlus):
|
class BTMinerM31SPlus(BTMiner, M31SPlus):
|
||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
|
||||||
|
class BTMinerM31SPlusVE20(BTMiner, M31SPlusVE20):
|
||||||
|
def __init__(self, ip: str) -> None:
|
||||||
|
super().__init__(ip)
|
||||||
|
self.ip = ip
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ from .M30S_Plus import BTMinerM30SPlus
|
|||||||
from .M30S_Plus_Plus import BTMinerM30SPlusPlusVG40, BTMinerM30SPlusPlusVG30
|
from .M30S_Plus_Plus import BTMinerM30SPlusPlusVG40, BTMinerM30SPlusPlusVG30
|
||||||
|
|
||||||
from .M31S import BTMinerM31S
|
from .M31S import BTMinerM31S
|
||||||
from .M31S_Plus import BTMinerM31SPlus
|
from .M31S_Plus import BTMinerM31SPlus, BTMinerM31SPlusVE20
|
||||||
|
|
||||||
from .M32S import BTMinerM32S
|
from .M32S import BTMinerM32S
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ if (
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
from logger import init_logger
|
||||||
|
|
||||||
|
init_logger()
|
||||||
|
|
||||||
asyncio.run(ui())
|
asyncio.run(ui())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user