bug: fix ePIC config parsing to use hashrate tuning instead of power tuning.

This commit is contained in:
UpstreamData
2024-01-31 09:21:32 -07:00
parent d9adaf6667
commit 75b2ec40b1

View File

@@ -108,31 +108,31 @@ class MiningModeHPM(MinerConfigValue):
return {"mode": {"mode": "turbo"}} return {"mode": {"mode": "turbo"}}
class StandardPowerTuneAlgo(MinerConfigValue): class StandardTuneAlgo(MinerConfigValue):
mode: str = field(init=False, default="standard") mode: str = field(init=False, default="standard")
def as_epic(self) -> str: def as_epic(self) -> str:
return VOptPowerTuneAlgo().as_epic() return VOptAlgo().as_epic()
class VOptPowerTuneAlgo(MinerConfigValue): class VOptAlgo(MinerConfigValue):
mode: str = field(init=False, default="standard") mode: str = field(init=False, default="standard")
def as_epic(self) -> str: def as_epic(self) -> str:
return "VoltageOptimizer" return "VoltageOptimizer"
class ChipTunePowerTuneAlgo(MinerConfigValue): class ChipTuneAlgo(MinerConfigValue):
mode: str = field(init=False, default="standard") mode: str = field(init=False, default="standard")
def as_epic(self) -> str: def as_epic(self) -> str:
return "ChipTune" return "ChipTune"
class PowerTunerAlgo(MinerConfigOption): class TunerAlgo(MinerConfigOption):
standard = StandardPowerTuneAlgo standard = StandardTuneAlgo
voltage_optimizer = VOptPowerTuneAlgo voltage_optimizer = VOptAlgo
chip_tune = ChipTunePowerTuneAlgo chip_tune = ChipTuneAlgo
@classmethod @classmethod
def default(cls): def default(cls):
@@ -143,7 +143,7 @@ class PowerTunerAlgo(MinerConfigOption):
class MiningModePowerTune(MinerConfigValue): class MiningModePowerTune(MinerConfigValue):
mode: str = field(init=False, default="power_tuning") mode: str = field(init=False, default="power_tuning")
power: int = None power: int = None
algo: PowerTunerAlgo = field(default_factory=PowerTunerAlgo.default) algo: TunerAlgo = field(default_factory=TunerAlgo.default)
@classmethod @classmethod
def from_dict(cls, dict_conf: dict | None) -> "MiningModePowerTune": def from_dict(cls, dict_conf: dict | None) -> "MiningModePowerTune":
@@ -183,14 +183,12 @@ class MiningModePowerTune(MinerConfigValue):
def as_auradine(self) -> dict: def as_auradine(self) -> dict:
return {"mode": {"mode": "custom", "tune": "power", "power": self.power}} return {"mode": {"mode": "custom", "tune": "power", "power": self.power}}
def as_epic(self) -> dict:
return {"ptune": {"algo": self.algo.as_epic(), "target": self.power}}
@dataclass @dataclass
class MiningModeHashrateTune(MinerConfigValue): class MiningModeHashrateTune(MinerConfigValue):
mode: str = field(init=False, default="hashrate_tuning") mode: str = field(init=False, default="hashrate_tuning")
hashrate: int = None hashrate: int = None
algo: TunerAlgo = field(default_factory=TunerAlgo.default)
@classmethod @classmethod
def from_dict(cls, dict_conf: dict | None) -> "MiningModeHashrateTune": def from_dict(cls, dict_conf: dict | None) -> "MiningModeHashrateTune":
@@ -218,6 +216,9 @@ class MiningModeHashrateTune(MinerConfigValue):
def as_auradine(self) -> dict: def as_auradine(self) -> dict:
return {"mode": {"mode": "custom", "tune": "ths", "ths": self.hashrate}} return {"mode": {"mode": "custom", "tune": "ths", "ths": self.hashrate}}
def as_epic(self) -> dict:
return {"ptune": {"algo": self.algo.as_epic(), "target": self.hashrate}}
@dataclass @dataclass
class ManualBoardSettings(MinerConfigValue): class ManualBoardSettings(MinerConfigValue):
@@ -313,14 +314,14 @@ class MiningModeConfig(MinerConfigOption):
if tuner_running: if tuner_running:
algo_info = web_conf["PerpetualTune"]["Algorithm"] algo_info = web_conf["PerpetualTune"]["Algorithm"]
if algo_info.get("VoltageOptimizer") is not None: if algo_info.get("VoltageOptimizer") is not None:
return cls.power_tuning( return cls.hashrate_tuning(
power=algo_info["VoltageOptimizer"]["Target"], hashrate=algo_info["VoltageOptimizer"]["Target"],
algo=PowerTunerAlgo.voltage_optimizer, algo=TunerAlgo.voltage_optimizer,
) )
else: else:
return cls.power_tuning( return cls.hashrate_tuning(
power=algo_info["ChipTune"]["Target"], hashrate=algo_info["ChipTune"]["Target"],
algo=PowerTunerAlgo.chip_tune, algo=TunerAlgo.chip_tune,
) )
else: else:
return cls.normal() return cls.normal()