Add black to requirements and improve UI

fix #22
This commit is contained in:
Ircama 2024-09-20 07:51:02 +02:00
parent 4293959e3a
commit 2b77c8065a
3 changed files with 19 additions and 11 deletions

View file

@ -287,8 +287,6 @@ optional arguments:
Generate printer configuration from devices.xml Generate printer configuration from devices.xml
``` ```
The output is better formatted when also installing [black](https://pypi.org/project/black/).
The program does not provide *printer_head_id* and *Power off timer*. The program does not provide *printer_head_id* and *Power off timer*.
#### Example to integrate new printers #### Example to integrate new printers
@ -493,7 +491,7 @@ from pprint import pprint
pprint(printer.parm) pprint(printer.parm)
``` ```
"black" way to dump all printer parameters: [black](https://pypi.org/project/black/) way to dump all printer parameters:
```python ```python
import textwrap, black import textwrap, black

View file

@ -3,5 +3,4 @@ git+https://github.com/etingof/pysnmp.git@master#egg=pysnmp
pyasyncore;python_version>="3.12" pyasyncore;python_version>="3.12"
tkcalendar tkcalendar
pyperclip pyperclip
black

23
ui.py
View file

@ -998,6 +998,12 @@ class EpsonPrinterUI(tk.Tk):
).valid_printers: ).valid_printers:
self.model_var.set(model) self.model_var.set(model)
break break
if self.model_var.get() == "":
self.status_text.insert(
tk.END,
f'[ERROR] Printer model unknown.\n'
)
self.model_var.set("")
else: else:
self.status_text.insert( self.status_text.insert(
tk.END, f"[INFO] Found {len(printers)} printers:\n" tk.END, f"[INFO] Found {len(printers)} printers:\n"
@ -1121,20 +1127,25 @@ class EpsonPrinterUI(tk.Tk):
self.clipboard_append(self.text_dump) self.clipboard_append(self.text_dump)
def print_items(self): def print_items(self):
exit_packet_mode = bytes([
0x00, 0x00, 0x00, 0x1B, 0x01, 0x40, 0x45, 0x4A, 0x4C, 0x20,
0x31, 0x32, 0x38, 0x34, 0x2E, 0x34, 0x0A, 0x40, 0x45, 0x4A,
0x4C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x00, 0x00, 0x00,
])
"""Print items.""" """Print items."""
self.clipboard_append(self.text_dump) self.clipboard_append(self.text_dump)
message = (
"\x1B\x40" # Initialize printer
"Printer configuration\n"
+ self.text_dump
)
ip_address = self.ip_var.get() ip_address = self.ip_var.get()
if not self._is_valid_ip(ip_address): if not self._is_valid_ip(ip_address):
return return
# Send the message to the printer # Send the message to the printer
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((ip_address, 9100)) sock.connect((ip_address, 9100))
sock.sendall(message.encode('utf-8') + b"\f") sock.sendall(
exit_packet_mode + b"\x1B\x40" # Initialize printer
+ b"Printer configuration\n"
+ self.text_dump.encode('utf-8')
+ b"\f" # Form feed
)
def main(): def main():