mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-11-29 13:51:12 -07:00
49 lines
2.2 KiB
Python
49 lines
2.2 KiB
Python
# Copyright (c) 2018 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
from typing import List
|
|
|
|
from cura.PrinterOutput.ConfigurationModel import ConfigurationModel
|
|
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
|
from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel
|
|
from .CloudClusterPrinterConfiguration import CloudClusterPrinterConfiguration
|
|
from .BaseCloudModel import BaseCloudModel
|
|
|
|
|
|
## Class representing a cluster printer
|
|
class CloudClusterPrinter(BaseCloudModel):
|
|
def __init__(self, **kwargs) -> None:
|
|
self.configuration = [] # type: List[CloudClusterPrinterConfiguration]
|
|
self.enabled = None # type: str
|
|
self.firmware_version = None # type: str
|
|
self.friendly_name = None # type: str
|
|
self.ip_address = None # type: str
|
|
self.machine_variant = None # type: str
|
|
self.status = None # type: str
|
|
self.unique_name = None # type: str
|
|
self.uuid = None # type: str
|
|
super().__init__(**kwargs)
|
|
|
|
self.configuration = [CloudClusterPrinterConfiguration(**c)
|
|
if isinstance(c, dict) else c for c in self.configuration]
|
|
|
|
## Creates a new output model.
|
|
# \param controller - The controller of the model.
|
|
def createOutputModel(self, controller: PrinterOutputController) -> PrinterOutputModel:
|
|
model = PrinterOutputModel(controller, len(self.configuration), firmware_version = self.firmware_version)
|
|
self.updateOutputModel(model)
|
|
return model
|
|
|
|
## Updates the given output model.
|
|
# \param model - The output model to update.
|
|
def updateOutputModel(self, model: PrinterOutputModel) -> None:
|
|
model.updateKey(self.uuid)
|
|
model.updateName(self.friendly_name)
|
|
model.updateType(self.machine_variant)
|
|
model.updateState(self.status if self.enabled else "disabled")
|
|
|
|
for configuration, extruder_output, extruder_config in \
|
|
zip(self.configuration, model.extruders, model.printerConfiguration.extruderConfigurations):
|
|
configuration.updateOutputModel(extruder_output)
|
|
configuration.updateConfigurationModel(extruder_config)
|
|
|
|
pass
|