Skip to content

Commit

Permalink
Force preheat bed and hotend when uploading finishes.
Browse files Browse the repository at this point in the history
  • Loading branch information
loociano committed Jun 26, 2020
1 parent 780be5a commit 864dd3c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
27 changes: 22 additions & 5 deletions src/MPSM2NetworkedPrinterOutputDevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from UM.Logger import Logger
from UM.Scene.SceneNode import SceneNode
from UM.i18n import i18nCatalog

# pylint:disable=import-error
from cura.CuraApplication import CuraApplication
from cura.PrinterOutput.Models.ExtruderConfigurationModel import \
Expand All @@ -22,7 +21,6 @@
import NetworkedPrinterOutputDevice, AuthState
from cura.PrinterOutput.PrinterOutputDevice \
import ConnectionType, ConnectionState

# pylint:disable=relative-beyond-top-level
from .GCodeWriteFileJob import GCodeWriteFileJob
from .MPSM2OutputController import MPSM2OutputController
Expand All @@ -41,11 +39,13 @@
import PrintJobUploadProgressMessage
from .messages.PrintJobUploadSuccessMessage \
import PrintJobUploadSuccessMessage
from .messages.SetTargetTemperatureErrorMessage import SetTargetTemperatureErrorMessage
from .messages.SetTargetTemperatureErrorMessage import \
SetTargetTemperatureErrorMessage
from .models.MPSM2PrintJobOutputModel import MPSM2PrintJobOutputModel
from .models.MPSM2PrinterOutputModel import MPSM2PrinterOutputModel
from .models.MPSM2PrinterStatusModel import MPSM2PrinterStatusModel
from .network.ApiClient import ApiClient
from .parsers.GcodePreheatSettingsParser import GcodePreheatSettingsParser
from .parsers.MPSM2PrinterStatusParser \
import MPSM2PrinterStatusParser

Expand Down Expand Up @@ -99,6 +99,8 @@ def __init__(self, device_id: str, address: str, parent=None) -> None:
self._historical_hotend_temps = [] # List[int]
self._historical_bed_temps = [] # List[int]
self.setName(device_name)
self._preheat_bed_temperature = None
self._preheat_hotend_temperature = None

self._job_upload_message = PrintJobUploadProgressMessage(
self._on_print_upload_cancelled)
Expand Down Expand Up @@ -372,7 +374,10 @@ def _on_print_job_created(self, job: GCodeWriteFileJob) -> None:
self.onPrinterUpload.emit(True)
self._is_uploading = True
self._job_upload_message.show()
self._api_client.upload_print(job.getFileName(), job.get_gcode_output(),
gcode = job.get_gcode_output()
self._preheat_bed_temperature, self._preheat_hotend_temperature = \
GcodePreheatSettingsParser.parse(gcode)
self._api_client.upload_print(job.getFileName(), gcode,
self._on_print_job_upload_completed,
self._on_print_job_upload_progress,
self._on_print_job_upload_error)
Expand Down Expand Up @@ -408,7 +413,19 @@ def _on_print_job_upload_completed(self, response: str) -> None:
self._is_uploading = False
self._job_upload_message.hide()
PrintJobUploadSuccessMessage().show()
self._api_client.start_print() # force start
if self._preheat_bed_temperature is not None:
# Force bed preheating
self._api_client.set_target_bed_temperature(
self._preheat_bed_temperature,
self._on_target_bed_temperature_finished,
self._on_target_bed_temperature_error)
if self._preheat_hotend_temperature is not None:
# Force hotend preheating
self._api_client.set_target_hotend_temperature(
self._preheat_hotend_temperature,
self._on_target_hotend_temperature_finished,
self._on_target_hotend_temperature_error)
self._api_client.start_print() # force start
self.writeFinished.emit()
self.onPrinterUpload.emit(False)
else:
Expand Down
2 changes: 1 addition & 1 deletion src/parsers/GcodePreheatSettingsParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class GcodePreheatSettingsParser:

@staticmethod
def parse(gcode: bytes) -> Tuple[int, int]:
"""Parses preheating temperatures from gcode.
"""Parses preheating bed and hotend temperature from gcode.
Args:
gcode: UTF-8 byte stream
Expand Down

0 comments on commit 864dd3c

Please sign in to comment.