mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Fix updating temperature while preheating bed or extruder
While preheating the bed/extruder with M190 or M109, the firmware keeps outputting temperature lines, but these do not contain "ok" because no new command was acknowledged. Fixes #3741
This commit is contained in:
parent
e9ac0e5564
commit
6bf91d2b3a
1 changed files with 4 additions and 3 deletions
|
@ -313,6 +313,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||
while self._connection_state == ConnectionState.connected and self._serial is not None:
|
||||
try:
|
||||
line = self._serial.readline()
|
||||
print(line)
|
||||
except:
|
||||
continue
|
||||
|
||||
|
@ -326,8 +327,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||
if self._firmware_name is None:
|
||||
self.sendCommand("M115")
|
||||
|
||||
if (b"ok " in line and b"T:" in line) or line.startswith(b"T:") or b"ok B:" in line or line.startswith(b"B:"): # Temperature message. 'T:' for extruder and 'B:' for bed
|
||||
extruder_temperature_matches = re.findall(b"T(\d*): ?([\d\.]+) ?\/?([\d\.]+)?", line)
|
||||
if re.search(b"[B|T\d*]: ?\d+\.?\d*", line): # Temperature message. 'T:' for extruder and 'B:' for bed
|
||||
extruder_temperature_matches = re.findall(b"T(\d*): ?(\d+\.?\d*) ?\/?(\d+\.?\d*)?", line)
|
||||
# Update all temperature values
|
||||
matched_extruder_nrs = []
|
||||
for match in extruder_temperature_matches:
|
||||
|
@ -349,7 +350,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||
if match[2]:
|
||||
extruder.updateTargetHotendTemperature(float(match[2]))
|
||||
|
||||
bed_temperature_matches = re.findall(b"B: ?([\d\.]+) ?\/?([\d\.]+)?", line)
|
||||
bed_temperature_matches = re.findall(b"B: ?(\d+\.?\d*) ?\/?(\d+\.?\d*) ?", line)
|
||||
if bed_temperature_matches:
|
||||
match = bed_temperature_matches[0]
|
||||
if match[0]:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue