From 6c091756d2ab2599514cb4fe13a6102d1f8268dd Mon Sep 17 00:00:00 2001 From: Upstream Data Date: Wed, 6 Nov 2024 09:04:38 -0700 Subject: [PATCH] feature: add support for Iceriver KS5 and submodels --- pyasic/device/models.py | 3 ++ .../miners/device/models/iceriver/KSX/KS5.py | 36 +++++++++++++++++++ .../device/models/iceriver/KSX/__init__.py | 1 + pyasic/miners/factory.py | 3 ++ pyasic/miners/iceriver/iceminer/KSX/KS5.py | 14 ++++++++ .../miners/iceriver/iceminer/KSX/__init__.py | 1 + 6 files changed, 58 insertions(+) create mode 100644 pyasic/miners/device/models/iceriver/KSX/KS5.py create mode 100644 pyasic/miners/iceriver/iceminer/KSX/KS5.py diff --git a/pyasic/device/models.py b/pyasic/device/models.py index 40c3acf5..217166dc 100644 --- a/pyasic/device/models.py +++ b/pyasic/device/models.py @@ -355,6 +355,9 @@ class IceRiverModels(str, Enum): KS3 = "KS3" KS3L = "KS3L" KS3M = "KS3M" + KS5 = "KS5" + KS5L = "KS5L" + KS5M = "KS5M" def __str__(self): return self.value diff --git a/pyasic/miners/device/models/iceriver/KSX/KS5.py b/pyasic/miners/device/models/iceriver/KSX/KS5.py new file mode 100644 index 00000000..031c0746 --- /dev/null +++ b/pyasic/miners/device/models/iceriver/KSX/KS5.py @@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------------ +# Copyright 2024 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ +from pyasic.device.models import MinerModel +from pyasic.miners.device.makes import IceRiverMake + + +class KS5(IceRiverMake): + raw_model = MinerModel.ICERIVER.KS5 + + expected_fans = 4 + + +class KS5L(IceRiverMake): + raw_model = MinerModel.ICERIVER.KS5L + + expected_fans = 4 + expected_chips = 18 + + +class KS5M(IceRiverMake): + raw_model = MinerModel.ICERIVER.KS5M + + expected_fans = 4 diff --git a/pyasic/miners/device/models/iceriver/KSX/__init__.py b/pyasic/miners/device/models/iceriver/KSX/__init__.py index 65d16260..a34c6cfb 100644 --- a/pyasic/miners/device/models/iceriver/KSX/__init__.py +++ b/pyasic/miners/device/models/iceriver/KSX/__init__.py @@ -2,3 +2,4 @@ from .KS0 import KS0 from .KS1 import KS1 from .KS2 import KS2 from .KS3 import KS3, KS3L, KS3M +from .KS5 import KS5, KS5L, KS5M diff --git a/pyasic/miners/factory.py b/pyasic/miners/factory.py index 1fa9410f..c418bcda 100644 --- a/pyasic/miners/factory.py +++ b/pyasic/miners/factory.py @@ -473,6 +473,9 @@ MINER_CLASSES = { "KS3": IceRiverKS3, "KS3L": IceRiverKS3L, "KS3M": IceRiverKS3M, + "KS5": IceRiverKS5, + "KS5L": IceRiverKS5L, + "KS5M": IceRiverKS5M, }, } diff --git a/pyasic/miners/iceriver/iceminer/KSX/KS5.py b/pyasic/miners/iceriver/iceminer/KSX/KS5.py new file mode 100644 index 00000000..5bb2fc1e --- /dev/null +++ b/pyasic/miners/iceriver/iceminer/KSX/KS5.py @@ -0,0 +1,14 @@ +from pyasic.miners.backends.iceriver import IceRiver +from pyasic.miners.device.models.iceriver import KS5, KS5L, KS5M + + +class IceRiverKS5(IceRiver, KS5): + pass + + +class IceRiverKS5L(IceRiver, KS5L): + pass + + +class IceRiverKS5M(IceRiver, KS5M): + pass diff --git a/pyasic/miners/iceriver/iceminer/KSX/__init__.py b/pyasic/miners/iceriver/iceminer/KSX/__init__.py index 18939d3c..be5d3333 100644 --- a/pyasic/miners/iceriver/iceminer/KSX/__init__.py +++ b/pyasic/miners/iceriver/iceminer/KSX/__init__.py @@ -2,3 +2,4 @@ from .KS0 import IceRiverKS0 from .KS1 import IceRiverKS1 from .KS2 import IceRiverKS2 from .KS3 import IceRiverKS3, IceRiverKS3L, IceRiverKS3M +from .KS5 import IceRiverKS5, IceRiverKS5L, IceRiverKS5M