mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
CURA-5330 Add typing to the USBPrinting plugin
This commit is contained in:
parent
7eba868574
commit
a184fad8ee
2 changed files with 9 additions and 10 deletions
|
@ -22,7 +22,7 @@ from threading import Thread, Event
|
||||||
from time import time, sleep
|
from time import time, sleep
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
from typing import Union, Optional, List
|
from typing import Union, Optional, List, cast
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import functools # Used for reduce
|
import functools # Used for reduce
|
||||||
|
@ -35,7 +35,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
firmwareProgressChanged = pyqtSignal()
|
firmwareProgressChanged = pyqtSignal()
|
||||||
firmwareUpdateStateChanged = pyqtSignal()
|
firmwareUpdateStateChanged = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, serial_port: str, baud_rate: Optional[int] = None):
|
def __init__(self, serial_port: str, baud_rate: Optional[int] = None) -> None:
|
||||||
super().__init__(serial_port)
|
super().__init__(serial_port)
|
||||||
self.setName(catalog.i18nc("@item:inmenu", "USB printing"))
|
self.setName(catalog.i18nc("@item:inmenu", "USB printing"))
|
||||||
self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB"))
|
self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB"))
|
||||||
|
@ -68,7 +68,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self._is_printing = False # A print is being sent.
|
self._is_printing = False # A print is being sent.
|
||||||
|
|
||||||
## Set when print is started in order to check running time.
|
## Set when print is started in order to check running time.
|
||||||
self._print_start_time = None # type: Optional[int]
|
self._print_start_time = None # type: Optional[float]
|
||||||
self._print_estimated_time = None # type: Optional[int]
|
self._print_estimated_time = None # type: Optional[int]
|
||||||
|
|
||||||
self._accepts_commands = True
|
self._accepts_commands = True
|
||||||
|
@ -83,7 +83,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self.setConnectionText(catalog.i18nc("@info:status", "Connected via USB"))
|
self.setConnectionText(catalog.i18nc("@info:status", "Connected via USB"))
|
||||||
|
|
||||||
# Queue for commands that need to be sent.
|
# Queue for commands that need to be sent.
|
||||||
self._command_queue = Queue()
|
self._command_queue = Queue() # type: Queue
|
||||||
# Event to indicate that an "ok" was received from the printer after sending a command.
|
# Event to indicate that an "ok" was received from the printer after sending a command.
|
||||||
self._command_received = Event()
|
self._command_received = Event()
|
||||||
self._command_received.set()
|
self._command_received.set()
|
||||||
|
@ -277,13 +277,12 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
if self._serial is None or self._connection_state != ConnectionState.connected:
|
if self._serial is None or self._connection_state != ConnectionState.connected:
|
||||||
return
|
return
|
||||||
|
|
||||||
if type(command == str):
|
new_command = cast(bytes, command) if type(command) is bytes else cast(str, command).encode() # type: bytes
|
||||||
command = command.encode()
|
if not new_command.endswith(b"\n"):
|
||||||
if not command.endswith(b"\n"):
|
new_command += b"\n"
|
||||||
command += b"\n"
|
|
||||||
try:
|
try:
|
||||||
self._command_received.clear()
|
self._command_received.clear()
|
||||||
self._serial.write(command)
|
self._serial.write(new_command)
|
||||||
except SerialTimeoutException:
|
except SerialTimeoutException:
|
||||||
Logger.log("w", "Timeout when sending command to printer via USB.")
|
Logger.log("w", "Timeout when sending command to printer via USB.")
|
||||||
self._command_received.set()
|
self._command_received.set()
|
||||||
|
|
|
@ -179,7 +179,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin):
|
||||||
|
|
||||||
return list(base_list)
|
return list(base_list)
|
||||||
|
|
||||||
__instance = None
|
__instance = None # type: USBPrinterOutputDeviceManager
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def getInstance(cls, *args, **kwargs) -> "USBPrinterOutputDeviceManager":
|
def getInstance(cls, *args, **kwargs) -> "USBPrinterOutputDeviceManager":
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue