mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 23:25:53 +08: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
@ -313,6 +313,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
while self._connection_state == ConnectionState.connected and self._serial is not None:
|
while self._connection_state == ConnectionState.connected and self._serial is not None:
|
||||||
try:
|
try:
|
||||||
line = self._serial.readline()
|
line = self._serial.readline()
|
||||||
|
print(line)
|
||||||
except:
|
except:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -326,8 +327,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
if self._firmware_name is None:
|
if self._firmware_name is None:
|
||||||
self.sendCommand("M115")
|
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
|
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\.]+)?", line)
|
extruder_temperature_matches = re.findall(b"T(\d*): ?(\d+\.?\d*) ?\/?(\d+\.?\d*)?", line)
|
||||||
# Update all temperature values
|
# Update all temperature values
|
||||||
matched_extruder_nrs = []
|
matched_extruder_nrs = []
|
||||||
for match in extruder_temperature_matches:
|
for match in extruder_temperature_matches:
|
||||||
@ -349,7 +350,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
if match[2]:
|
if match[2]:
|
||||||
extruder.updateTargetHotendTemperature(float(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:
|
if bed_temperature_matches:
|
||||||
match = bed_temperature_matches[0]
|
match = bed_temperature_matches[0]
|
||||||
if match[0]:
|
if match[0]:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user