feature: add config parsing from bitaxe.
This commit is contained in:
@@ -235,3 +235,11 @@ class MinerConfig:
|
|||||||
fan_mode=FanModeConfig.from_mara(web_miner_config),
|
fan_mode=FanModeConfig.from_mara(web_miner_config),
|
||||||
mining_mode=MiningModeConfig.from_mara(web_miner_config),
|
mining_mode=MiningModeConfig.from_mara(web_miner_config),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_bitaxe(cls, web_system_info: dict) -> "MinerConfig":
|
||||||
|
return cls(
|
||||||
|
pools=PoolConfig.from_bitaxe(web_system_info),
|
||||||
|
fan_mode=FanModeConfig.from_bitaxe(web_system_info)
|
||||||
|
|
||||||
|
)
|
||||||
@@ -291,3 +291,10 @@ class FanModeConfig(MinerConfigOption):
|
|||||||
except LookupError:
|
except LookupError:
|
||||||
pass
|
pass
|
||||||
return cls.default()
|
return cls.default()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_bitaxe(cls, web_system_info: dict):
|
||||||
|
if web_system_info["autofanspeed"] == 1:
|
||||||
|
return cls.normal()
|
||||||
|
else:
|
||||||
|
return cls.manual(speed=web_system_info["fanspeed"])
|
||||||
@@ -194,6 +194,11 @@ class Pool(MinerConfigValue):
|
|||||||
password=web_pool["pass"],
|
password=web_pool["pass"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_bitaxe(cls, web_system_info: dict) -> "Pool":
|
||||||
|
url = f"stratum+tcp://{web_system_info['stratumURL']}:{web_system_info['stratumPort']}"
|
||||||
|
return cls(url=url, user=web_system_info["stratumUser"], password=web_system_info.get("stratumPassword", ""))
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class PoolGroup(MinerConfigValue):
|
class PoolGroup(MinerConfigValue):
|
||||||
@@ -360,6 +365,10 @@ class PoolGroup(MinerConfigValue):
|
|||||||
def from_mara(cls, web_config_pools: dict) -> "PoolGroup":
|
def from_mara(cls, web_config_pools: dict) -> "PoolGroup":
|
||||||
return cls(pools=[Pool.from_mara(pool_conf) for pool_conf in web_config_pools])
|
return cls(pools=[Pool.from_mara(pool_conf) for pool_conf in web_config_pools])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_bitaxe(cls, web_system_info: dict) -> "PoolGroup":
|
||||||
|
return cls(pools=[Pool.from_bitaxe(web_system_info)])
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class PoolConfig(MinerConfigValue):
|
class PoolConfig(MinerConfigValue):
|
||||||
@@ -514,3 +523,7 @@ class PoolConfig(MinerConfigValue):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def from_mara(cls, web_config: dict) -> "PoolConfig":
|
def from_mara(cls, web_config: dict) -> "PoolConfig":
|
||||||
return cls(groups=[PoolGroup.from_mara(web_config["pools"])])
|
return cls(groups=[PoolGroup.from_mara(web_config["pools"])])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_bitaxe(cls, web_system_info: dict) -> "PoolConfig":
|
||||||
|
return cls(groups=[PoolGroup.from_bitaxe(web_system_info)])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from pyasic import APIError
|
from pyasic import APIError, MinerConfig
|
||||||
from pyasic.data import AlgoHashRate, Fan, HashBoard, HashUnit
|
from pyasic.data import AlgoHashRate, Fan, HashBoard, HashUnit
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
||||||
@@ -52,6 +52,10 @@ class BitAxe(BaseMiner):
|
|||||||
await self.web.restart()
|
await self.web.restart()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
async def get_config(self) -> MinerConfig:
|
||||||
|
web_system_info = await self.web.system_info()
|
||||||
|
return MinerConfig.from_bitaxe(web_system_info)
|
||||||
|
|
||||||
async def _get_wattage(self, web_system_info: dict = None) -> Optional[int]:
|
async def _get_wattage(self, web_system_info: dict = None) -> Optional[int]:
|
||||||
if web_system_info is None:
|
if web_system_info is None:
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user