add support for braiins OS errors
This commit is contained in:
@@ -1 +1,2 @@
|
||||
from .whatsminer import WhatsminerError
|
||||
from .bos import BraiinsOSError
|
||||
|
||||
11
pyasic/data/error_codes/bos.py
Normal file
11
pyasic/data/error_codes/bos.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from dataclasses import dataclass, asdict
|
||||
|
||||
|
||||
@dataclass
|
||||
class BraiinsOSError:
|
||||
"""A Dataclass to handle error codes of BraiinsOS+ miners."""
|
||||
|
||||
error_message: str
|
||||
|
||||
def asdict(self):
|
||||
return asdict(self)
|
||||
@@ -9,6 +9,7 @@ from pyasic.miners import BaseMiner
|
||||
from pyasic.API.bosminer import BOSMinerAPI
|
||||
from pyasic.API import APIError
|
||||
|
||||
from pyasic.data.error_codes import BraiinsOSError
|
||||
from pyasic.data import MinerData
|
||||
|
||||
from pyasic.config import MinerConfig
|
||||
@@ -395,6 +396,30 @@ class BOSMiner(BaseMiner):
|
||||
if wattage:
|
||||
data.wattage = wattage
|
||||
|
||||
chain_status = tuner[0].get("TunerChainStatus")
|
||||
if chain_status and len(chain_status) > 0:
|
||||
board_map = {
|
||||
0: "Left board",
|
||||
1: "Center board",
|
||||
2: "Right board",
|
||||
}
|
||||
offset = (
|
||||
6
|
||||
if chain_status[0]["HashchainIndex"] in [6, 7, 8]
|
||||
else chain_status[0]["HashchainIndex"]
|
||||
)
|
||||
for board in chain_status:
|
||||
_id = board["HashchainIndex"] - offset
|
||||
if board["Status"] not in [
|
||||
"Stable",
|
||||
"Testing performance profile",
|
||||
]:
|
||||
_error = board["Status"]
|
||||
_error = _error[0].lower() + _error[1:]
|
||||
data.errors.append(
|
||||
BraiinsOSError(f"{board_map[_id]} {_error}")
|
||||
)
|
||||
|
||||
if devdetails:
|
||||
boards = devdetails[0].get("DEVDETAILS")
|
||||
if boards:
|
||||
|
||||
Reference in New Issue
Block a user