Method printers method, methodx, methodxl read from cloud

CURA-11138
This commit is contained in:
saumya.jain 2023-10-26 16:17:03 +02:00
parent 15e7bb1f07
commit cf78ae0dca
4 changed files with 38 additions and 9 deletions

View file

@ -415,7 +415,17 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
@pyqtProperty(str, constant = True)
def printerType(self) -> str:
return self._properties.get(b"printer_type", b"Unknown").decode("utf-8")
return self.getPrinterType(self._properties.get(b"printer_type", b"Unknown").decode("utf-8"))
def getPrinterTypeIfMakerBot(printer_type):
method_printer_type = {
"fire_e": "ultimaker_method",
"lava_f": "ultimaker_methodx",
"magma_10": "ultimaker_methodxl"
}
if printer_type in method_printer_type:
return method_printer_type[printer_type]
return printer_type
@pyqtProperty(str, constant = True)
def ipAddress(self) -> str:

View file

@ -115,7 +115,7 @@ UM.Dialog
// Utils
function formatPrintJobName(name)
{
var extensions = [ ".gcode.gz", ".gz", ".gcode", ".ufp" ]
var extensions = [ ".gcode.gz", ".gz", ".gcode", ".ufp", ".makerbot" ]
for (var i = 0; i < extensions.length; i++)
{
var extension = extensions[i]

View file

@ -82,7 +82,16 @@ class CloudApiClient:
# HACK: There is something weird going on with the API, as it reports printer types in formats like
# "ultimaker_s3", but wants "Ultimaker S3" when using the machine_variant filter query. So we need to do some
# conversion!
# API points to "MakerBot Method" for a makerbot printertypes which we already changed to allign with other printer_type
method_x = {
"ultimaker_method":"MakerBot Method",
"ultimaker_methodx":"MakerBot Method X",
"ultimaker_methodxl":"MakerBot Method XL"
}
if machine_type in method_x:
machine_type = method_x[machine_type]
else:
machine_type = machine_type.replace("_plus", "+")
machine_type = machine_type.replace("_", " ")
machine_type = machine_type.replace("ultimaker", "ultimaker ")

View file

@ -34,7 +34,7 @@ class CloudClusterResponse(BaseModel):
self.host_version = host_version
self.host_internal_ip = host_internal_ip
self.friendly_name = friendly_name
self.printer_type = printer_type
self.printer_type = self.getPrinterTypeIfMakerBot(printer_type)
self.printer_count = printer_count
self.capabilities = capabilities if capabilities is not None else []
super().__init__(**kwargs)
@ -51,3 +51,13 @@ class CloudClusterResponse(BaseModel):
:return: A human-readable representation of the data in this object.
"""
return str({k: v for k, v in self.__dict__.items() if k in {"cluster_id", "host_guid", "host_name", "status", "is_online", "host_version", "host_internal_ip", "friendly_name", "printer_type", "printer_count", "capabilities"}})
def getPrinterTypeIfMakerBot(printer_type):
method_printer_type = {
"fire_e": "ultimaker_method",
"lava_f": "ultimaker_methodx",
"magma_10": "ultimaker_methodxl"
}
if printer_type in method_printer_type:
return method_printer_type[printer_type]
return printer_type