bug: fix some issues with config on bosminer.
This commit is contained in:
@@ -184,7 +184,10 @@ class MiningModePowerTune(MinerConfigValue):
|
|||||||
return {}
|
return {}
|
||||||
|
|
||||||
def as_bosminer(self) -> dict:
|
def as_bosminer(self) -> dict:
|
||||||
return {"autotuning": {"enabled": True, "psu_power_limit": self.power}}
|
conf = {"enabled": True, "mode": "power_target"}
|
||||||
|
if self.power is not None:
|
||||||
|
conf["power_target"] = self.power
|
||||||
|
return {"autotuning": conf}
|
||||||
|
|
||||||
def as_boser(self) -> dict:
|
def as_boser(self) -> dict:
|
||||||
return {
|
return {
|
||||||
@@ -219,6 +222,12 @@ class MiningModeHashrateTune(MinerConfigValue):
|
|||||||
return {"miner-mode": "0"}
|
return {"miner-mode": "0"}
|
||||||
return {"miner-mode": 0}
|
return {"miner-mode": 0}
|
||||||
|
|
||||||
|
def as_bosminer(self) -> dict:
|
||||||
|
conf = {"enabled": True, "mode": "hashrate_target"}
|
||||||
|
if self.hashrate is not None:
|
||||||
|
conf["hashrate_target"] = self.hashrate
|
||||||
|
return {"autotuning": conf}
|
||||||
|
|
||||||
def as_boser(self) -> dict:
|
def as_boser(self) -> dict:
|
||||||
return {
|
return {
|
||||||
"set_performance_mode": SetPerformanceModeRequest(
|
"set_performance_mode": SetPerformanceModeRequest(
|
||||||
|
|||||||
@@ -114,6 +114,8 @@ class PowerScalingEnabled(MinerConfigValue):
|
|||||||
def from_bosminer(cls, power_scaling_conf: dict) -> "PowerScalingEnabled":
|
def from_bosminer(cls, power_scaling_conf: dict) -> "PowerScalingEnabled":
|
||||||
power_step = power_scaling_conf.get("power_step")
|
power_step = power_scaling_conf.get("power_step")
|
||||||
min_power = power_scaling_conf.get("min_psu_power_limit")
|
min_power = power_scaling_conf.get("min_psu_power_limit")
|
||||||
|
if min_power is None:
|
||||||
|
min_power = power_scaling_conf.get("min_power_target")
|
||||||
sd_mode = PowerScalingShutdown.from_bosminer(power_scaling_conf)
|
sd_mode = PowerScalingShutdown.from_bosminer(power_scaling_conf)
|
||||||
|
|
||||||
return cls(
|
return cls(
|
||||||
@@ -138,12 +140,12 @@ class PowerScalingEnabled(MinerConfigValue):
|
|||||||
if self.power_step is not None:
|
if self.power_step is not None:
|
||||||
cfg["power_step"] = self.power_step
|
cfg["power_step"] = self.power_step
|
||||||
if self.minimum_power is not None:
|
if self.minimum_power is not None:
|
||||||
cfg["min_psu_power_limit"] = self.minimum_power
|
cfg["min_power_target"] = self.minimum_power
|
||||||
|
|
||||||
if self.shutdown_enabled is not None:
|
if self.shutdown_enabled is not None:
|
||||||
cfg = {**cfg, **self.shutdown_enabled.as_bosminer()}
|
cfg = {**cfg, **self.shutdown_enabled.as_bosminer()}
|
||||||
|
|
||||||
return {"power_scaling": cfg}
|
return {"performance_scaling": cfg}
|
||||||
|
|
||||||
def as_boser(self) -> dict:
|
def as_boser(self) -> dict:
|
||||||
return {
|
return {
|
||||||
@@ -189,6 +191,8 @@ class PowerScalingConfig(MinerConfigOption):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def from_bosminer(cls, toml_conf: dict):
|
def from_bosminer(cls, toml_conf: dict):
|
||||||
power_scaling = toml_conf.get("power_scaling")
|
power_scaling = toml_conf.get("power_scaling")
|
||||||
|
if power_scaling is None:
|
||||||
|
power_scaling = toml_conf.get("performance_scaling")
|
||||||
if power_scaling is not None:
|
if power_scaling is not None:
|
||||||
enabled = power_scaling.get("enabled")
|
enabled = power_scaling.get("enabled")
|
||||||
if enabled is not None:
|
if enabled is not None:
|
||||||
|
|||||||
@@ -181,16 +181,17 @@ class BOSMiner(BaseMiner):
|
|||||||
|
|
||||||
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
async def send_config(self, config: MinerConfig, user_suffix: str = None) -> None:
|
||||||
self.config = config
|
self.config = config
|
||||||
|
parsed_cfg = config.as_bosminer(user_suffix=user_suffix)
|
||||||
|
|
||||||
toml_conf = toml.dumps(
|
toml_conf = toml.dumps(
|
||||||
{
|
{
|
||||||
"format": {
|
"format": {
|
||||||
"version": "1.2+",
|
"version": "2.0",
|
||||||
"generator": "pyasic",
|
"generator": "pyasic",
|
||||||
"model": f"{self.make.replace('Miner', 'miner')} {self.raw_model.replace('j', 'J')}",
|
"model": f"{self.make.replace('Miner', 'miner')} {self.raw_model.replace('j', 'J')}",
|
||||||
"timestamp": int(time.time()),
|
"timestamp": int(time.time()),
|
||||||
},
|
},
|
||||||
**config.as_bosminer(user_suffix=user_suffix),
|
**parsed_cfg,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -98,7 +98,11 @@ class TestConfig(unittest.TestCase):
|
|||||||
"dangerous_temp": 120,
|
"dangerous_temp": 120,
|
||||||
},
|
},
|
||||||
"fan_control": {"min_fans": 2, "speed": 90},
|
"fan_control": {"min_fans": 2, "speed": 90},
|
||||||
"autotuning": {"enabled": True, "psu_power_limit": 3000},
|
"autotuning": {
|
||||||
|
"enabled": True,
|
||||||
|
"mode": "power_target",
|
||||||
|
"power_target": 3000,
|
||||||
|
},
|
||||||
"group": [
|
"group": [
|
||||||
{
|
{
|
||||||
"name": "W91Q1L",
|
"name": "W91Q1L",
|
||||||
@@ -112,10 +116,10 @@ class TestConfig(unittest.TestCase):
|
|||||||
"quota": 1,
|
"quota": 1,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"power_scaling": {
|
"performance_scaling": {
|
||||||
"enabled": True,
|
"enabled": True,
|
||||||
"power_step": 100,
|
"power_step": 100,
|
||||||
"min_psu_power_limit": 2000,
|
"min_power_target": 2000,
|
||||||
"shutdown_enabled": True,
|
"shutdown_enabled": True,
|
||||||
"shutdown_duration": 3,
|
"shutdown_duration": 3,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user