mirror of
https://github.com/Ircama/epson_print_conf.git
synced 2024-10-18 09:10:36 -04:00
Add dump of the current EEPROM values before confirming new values
Ref #26
This commit is contained in:
parent
41c20abf04
commit
526e5d07d4
1 changed files with 74 additions and 9 deletions
83
ui.py
83
ui.py
|
@ -34,6 +34,13 @@ NO_CONF_ERROR = (
|
||||||
" or press 'Detect Printers'.\n"
|
" or press 'Detect Printers'.\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CONFIRM_MESSAGE = (
|
||||||
|
"Confirm Action",
|
||||||
|
"Please copy and save the codes in the [NOTE] shown on the screen."
|
||||||
|
" They can be used to restore the initial configuration"
|
||||||
|
" in case of problems.\n\n"
|
||||||
|
"Are you sure you want to proceed?"
|
||||||
|
)
|
||||||
|
|
||||||
def get_printer_models(input_string):
|
def get_printer_models(input_string):
|
||||||
# Tokenize the string
|
# Tokenize the string
|
||||||
|
@ -666,6 +673,24 @@ class EpsonPrinterUI(tk.Tk):
|
||||||
self.config(cursor="")
|
self.config(cursor="")
|
||||||
self.update_idletasks()
|
self.update_idletasks()
|
||||||
|
|
||||||
|
def get_current_eeprom_values(self, values, label):
|
||||||
|
try:
|
||||||
|
org_values = ', '.join(
|
||||||
|
f"{k}: {int(v, 16)}" for k, v in zip(
|
||||||
|
values, self.printer.read_eeprom_many(values, label=label)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.status_text.insert(
|
||||||
|
tk.END,
|
||||||
|
f"[NOTE] Current EEPROM values for {label}: {org_values}.\n"
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
self.handle_printer_error(e)
|
||||||
|
self.config(cursor="")
|
||||||
|
self.update_idletasks()
|
||||||
|
return False
|
||||||
|
|
||||||
def set_po_mins(self, cursor=True):
|
def set_po_mins(self, cursor=True):
|
||||||
if cursor:
|
if cursor:
|
||||||
self.config(cursor="watch")
|
self.config(cursor="watch")
|
||||||
|
@ -699,12 +724,21 @@ class EpsonPrinterUI(tk.Tk):
|
||||||
tk.END, "[ERROR] Please Use a valid value for minutes.\n"
|
tk.END, "[ERROR] Please Use a valid value for minutes.\n"
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
try:
|
||||||
|
if not self.get_current_eeprom_values(
|
||||||
|
self.printer.parm["stats"]["Power off timer"],
|
||||||
|
"Power off timer"
|
||||||
|
):
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
self.handle_printer_error(e)
|
||||||
|
self.config(cursor="")
|
||||||
|
self.update_idletasks()
|
||||||
|
return
|
||||||
self.status_text.insert(
|
self.status_text.insert(
|
||||||
tk.END, f"[INFO] Set Power off timer: {po_timer} minutes.\n"
|
tk.END, f"[INFO] Set Power off timer: {po_timer} minutes.\n"
|
||||||
)
|
)
|
||||||
response = messagebox.askyesno(
|
response = messagebox.askyesno(*CONFIRM_MESSAGE)
|
||||||
"Confirm Action", "Are you sure you want to proceed?"
|
|
||||||
)
|
|
||||||
if response:
|
if response:
|
||||||
try:
|
try:
|
||||||
self.printer.write_poweroff_timer(int(po_timer))
|
self.printer.write_poweroff_timer(int(po_timer))
|
||||||
|
@ -784,14 +818,23 @@ class EpsonPrinterUI(tk.Tk):
|
||||||
self.update_idletasks()
|
self.update_idletasks()
|
||||||
return
|
return
|
||||||
date_string = self.date_entry.get_date()
|
date_string = self.date_entry.get_date()
|
||||||
|
try:
|
||||||
|
if not self.get_current_eeprom_values(
|
||||||
|
self.printer.parm["stats"]["First TI received time"],
|
||||||
|
"First TI received time"
|
||||||
|
):
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
self.handle_printer_error(e)
|
||||||
|
self.config(cursor="")
|
||||||
|
self.update_idletasks()
|
||||||
|
return
|
||||||
self.status_text.insert(
|
self.status_text.insert(
|
||||||
tk.END,
|
tk.END,
|
||||||
f"[INFO] Set 'First TI received time' (YYYY-MM-DD) to: "
|
f"[INFO] Set 'First TI received time' (YYYY-MM-DD) to: "
|
||||||
f"{date_string.strftime('%Y-%m-%d')}.\n",
|
f"{date_string.strftime('%Y-%m-%d')}.\n",
|
||||||
)
|
)
|
||||||
response = messagebox.askyesno(
|
response = messagebox.askyesno(*CONFIRM_MESSAGE)
|
||||||
"Confirm Action", "Are you sure you want to proceed?"
|
|
||||||
)
|
|
||||||
if response:
|
if response:
|
||||||
try:
|
try:
|
||||||
self.printer.write_first_ti_received_time(
|
self.printer.write_first_ti_received_time(
|
||||||
|
@ -947,9 +990,31 @@ class EpsonPrinterUI(tk.Tk):
|
||||||
self.config(cursor="")
|
self.config(cursor="")
|
||||||
self.update_idletasks()
|
self.update_idletasks()
|
||||||
return
|
return
|
||||||
response = messagebox.askyesno(
|
try:
|
||||||
"Confirm Action", "Are you sure you want to proceed?"
|
if "raw_waste_reset" in self.printer.parm:
|
||||||
)
|
if not self.get_current_eeprom_values(
|
||||||
|
self.printer.parm["raw_waste_reset"],
|
||||||
|
"raw_waste_reset"
|
||||||
|
):
|
||||||
|
return
|
||||||
|
if "main_waste" in self.printer.parm:
|
||||||
|
if not self.get_current_eeprom_values(
|
||||||
|
self.printer.parm["main_waste"]["oids"],
|
||||||
|
"main_waste"
|
||||||
|
):
|
||||||
|
return
|
||||||
|
if "borderless_waste" in self.printer.parm:
|
||||||
|
if not self.get_current_eeprom_values(
|
||||||
|
self.printer.parm["borderless_waste"]["oids"],
|
||||||
|
"borderless_waste"
|
||||||
|
):
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
self.handle_printer_error(e)
|
||||||
|
self.config(cursor="")
|
||||||
|
self.update_idletasks()
|
||||||
|
return
|
||||||
|
response = messagebox.askyesno(*CONFIRM_MESSAGE)
|
||||||
if not self.printer:
|
if not self.printer:
|
||||||
return
|
return
|
||||||
if response:
|
if response:
|
||||||
|
|
Loading…
Reference in a new issue