Updated script
This commit is contained in:
parent
58bb75158a
commit
ad01149daa
@ -1,7 +1,8 @@
|
|||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
from tkinter import messagebox
|
|
||||||
from tkinter.font import Font
|
from tkinter.font import Font
|
||||||
import serial
|
import serial
|
||||||
|
import os
|
||||||
|
os.environ['GDK_SCALE'] = '2'
|
||||||
|
|
||||||
# Serial configuration
|
# Serial configuration
|
||||||
port = '/dev/ttyUSB0' # Adjust to your specific port
|
port = '/dev/ttyUSB0' # Adjust to your specific port
|
||||||
@ -21,28 +22,69 @@ def send_command(command):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
def get_id():
|
def get_id():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
return send_command('*IDN?')
|
return send_command('*IDN?')
|
||||||
|
|
||||||
def get_multimeter_data():
|
def get_multimeter_data():
|
||||||
|
if not ser:
|
||||||
|
return "TEST,+00.1234TEST,TEST,TEST"
|
||||||
rawdata = send_command(f'CONFigure:ALL?')
|
rawdata = send_command(f'CONFigure:ALL?')
|
||||||
return rawdata
|
return rawdata
|
||||||
|
|
||||||
def get_powersupply_data():
|
def get_powersupply_data():
|
||||||
|
if not ser:
|
||||||
|
return "0.1234,0.1234,0.1234"
|
||||||
rawdata = send_command(f'MEASure:ALL:INFO?')
|
rawdata = send_command(f'MEASure:ALL:INFO?')
|
||||||
return rawdata
|
return rawdata
|
||||||
|
|
||||||
def set_res_mode():
|
def set_res_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
rawdata = send_command(f'[SENSe:]FUNCtion:RESistance')
|
rawdata = send_command(f'[SENSe:]FUNCtion:RESistance')
|
||||||
|
rawdata = send_command(f'[SENSe:]RESistance:RANGe:AUTO')
|
||||||
|
return rawdata
|
||||||
|
|
||||||
|
def set_res200_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
|
rawdata = send_command(f'[SENSe:]FUNCtion:RESistance')
|
||||||
|
rawdata = send_command(f'[SENSe:]RESistance:RANGe:200')
|
||||||
return rawdata
|
return rawdata
|
||||||
|
|
||||||
def set_cont_mode():
|
def set_cont_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
rawdata = send_command(f'[SENSe:]FUNCtion:CONTinuity')
|
rawdata = send_command(f'[SENSe:]FUNCtion:CONTinuity')
|
||||||
return rawdata
|
return rawdata
|
||||||
|
|
||||||
|
def set_diod_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
|
rawdata = send_command(f'[SENSe:]FUNCtion:DIODe')
|
||||||
|
return rawdata
|
||||||
|
|
||||||
|
def set_voltdc_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
|
rawdata = send_command(f'[SENSe:]FUNCtion:VOLTage:DC')
|
||||||
|
return rawdata
|
||||||
|
|
||||||
|
def set_voltac_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
|
rawdata = send_command(f'[SENSe:]FUNCtion:VOLTage:AC')
|
||||||
|
return rawdata
|
||||||
|
|
||||||
|
def set_cap_mode():
|
||||||
|
if not ser:
|
||||||
|
return "TEST"
|
||||||
|
rawdata = send_command(f'[SENSe:]FUNCtion:CAPacitance')
|
||||||
|
return rawdata
|
||||||
|
|
||||||
# --- GUI Setup ---
|
# --- GUI Setup ---
|
||||||
def fetch_device_info():
|
def fetch_device_info():
|
||||||
# Fetch the device ID and Channel data
|
# Fetch the device ID and Channel data
|
||||||
device_id = get_id()
|
|
||||||
multimeter_data = get_multimeter_data()
|
multimeter_data = get_multimeter_data()
|
||||||
|
|
||||||
# Update the labels
|
# Update the labels
|
||||||
@ -62,23 +104,69 @@ multimeter_type_var = tk.StringVar()
|
|||||||
multimeter_data_var = tk.StringVar()
|
multimeter_data_var = tk.StringVar()
|
||||||
multimeter_range_var = tk.StringVar()
|
multimeter_range_var = tk.StringVar()
|
||||||
|
|
||||||
# Create a font object
|
# Create dynamic font objects
|
||||||
fontSmall = Font(size=10)
|
fontSmall = Font(size=10)
|
||||||
fontMedium = Font(size=20)
|
fontMedium = Font(size=20)
|
||||||
fontBig = Font(size=80)
|
fontBig = Font(size=80)
|
||||||
|
|
||||||
app.rowconfigure(0, weight=1)
|
resize_after_id = None
|
||||||
app.rowconfigure(1, weight=1)
|
|
||||||
app.rowconfigure(2, weight=1)
|
def apply_font_resize():
|
||||||
app.columnconfigure(0, weight=1)
|
width = app.winfo_width()
|
||||||
app.columnconfigure(1, weight=2)
|
|
||||||
|
fontSmall.configure(size=max(4, int(width * 0.02)))
|
||||||
|
fontMedium.configure(size=max(14, int(width * 0.03)))
|
||||||
|
fontBig.configure(size=max(24, int(width * 0.1)))
|
||||||
|
|
||||||
|
def resize_loop():
|
||||||
|
apply_font_resize()
|
||||||
|
app.after(200, resize_loop)
|
||||||
|
|
||||||
|
resize_loop() # start it once
|
||||||
|
|
||||||
|
# Bind resize event
|
||||||
|
#app.bind("<Configure>", resize_fonts)
|
||||||
|
|
||||||
|
# Configure grid to be fully responsive
|
||||||
|
app.rowconfigure(0, weight=4) # Top - medium
|
||||||
|
app.rowconfigure(1, weight=20) # Middle - big
|
||||||
|
app.rowconfigure(2, weight=1) # Bottom - small
|
||||||
|
|
||||||
|
for j in range(7):
|
||||||
|
app.columnconfigure(j, weight=1)
|
||||||
|
|
||||||
|
button_fg = "#444444"
|
||||||
|
|
||||||
# Labels
|
# Labels
|
||||||
tk.Label(app, textvariable=multimeter_type_var, font=fontMedium, bg="black", fg="lightgrey").grid(column=0, row=0, sticky=tk.W)
|
tk.Label(app, textvariable=multimeter_type_var, font=fontMedium, bg="black", fg="lightgrey") \
|
||||||
tk.Label(app, textvariable=multimeter_range_var, font=fontMedium, bg="black", fg="lightgrey").grid(column=1, row=0, sticky=tk.E)
|
.grid(column=0, columnspan=3, row=0, sticky="nsew", padx=0, pady=0)
|
||||||
tk.Label(app, textvariable=multimeter_data_var, font=fontBig, bg="black", fg="lightgrey").grid(column=0, columnspan=2, row=1, sticky=tk.W)
|
|
||||||
tk.Button(app, text="RES", command=set_res_mode, font=fontSmall, bg="black", fg="lightgrey", border=False).grid(column=0, row=2, sticky=tk.W)
|
tk.Label(app, textvariable=multimeter_range_var, font=fontMedium, bg="black", fg="lightgrey") \
|
||||||
tk.Button(app, text="CONT", command=set_cont_mode, font=fontSmall, bg="black", fg="lightgrey", border=False).grid(column=1, row=2, sticky=tk.W)
|
.grid(column=4, columnspan=3, row=0, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Label(app, textvariable=multimeter_data_var, font=fontBig, bg="black", fg="lightgrey") \
|
||||||
|
.grid(column=0, columnspan=7, row=1, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="RES", command=set_res_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=0, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="RES200", command=set_res200_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=1, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="CONT", command=set_cont_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=2, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="VOLT:DC", command=set_voltdc_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=3, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="VOLT:AC", command=set_voltac_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=4, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="DIOD", command=set_diod_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=5, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
|
tk.Button(app, text="CAP", command=set_cap_mode, font=fontSmall, bg="black", fg=button_fg, highlightbackground=button_fg, borderwidth=0) \
|
||||||
|
.grid(column=6, row=2, sticky="nsew", padx=0, pady=0)
|
||||||
|
|
||||||
# Initial fetch to start the auto-update process
|
# Initial fetch to start the auto-update process
|
||||||
fetch_device_info()
|
fetch_device_info()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user