diff --git a/main.py b/main.py index a79c5ec..0e7af89 100644 --- a/main.py +++ b/main.py @@ -3,10 +3,16 @@ from tkinter import messagebox import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure +#import random p = 0.0 i = 0.0 +set_torque = 0.0 + +act_torque = 0.0 +act_angle = 0.0 + class T2000ErdemGUI: def __init__(self, root): self.root = root @@ -22,7 +28,7 @@ class T2000ErdemGUI: self.i_value = tk.DoubleVar() tk.Entry(self.root, textvariable=self.i_value).place(x=100, y=50) - # Eingabefelder für Koordinaten + # Eingabefelder für Koordinaten der Drehmoment-Drehwinkel-Kennlinie tk.Label(self.root, text="Koordinaten der Drehmoment-Drehwinkel-Kennlinie:").place(x=10, y=90) self.coordinates_text = tk.Text(self.root, height=5, width=20) self.coordinates_text.place(x=20, y=110) @@ -30,8 +36,9 @@ class T2000ErdemGUI: # Eingabefeld für direkte Drehmomentvorgabe tk.Label(self.root, text="Soll-Drehmoment in Nm:").place(x=10, y=220) - self.torque_value = tk.DoubleVar() - tk.Entry(self.root, textvariable=self.torque_value).place(x=200, y=220) + self.set_torque_value = tk.DoubleVar() + self.torque_input = tk.Entry(self.root, textvariable=self.set_torque_value) + self.torque_input.place(x=200, y=220) # Anzeige für aktuellen Drehwinkel und Drehmoment tk.Label(self.root, text="Aktueller Drehwinkel:").place(x=10, y=260) @@ -46,10 +53,16 @@ class T2000ErdemGUI: self.close_button = tk.Button(self.root, text="Beenden", command=self.close_application) self.close_button.place(x=300, y=560) - # Button zur Erstellung des Diagramms + # Button zur Übernahme der Eingaben und Aktualisierung des Diagramms self.plot_button = tk.Button(self.root, text="Eingaben übernehmen", command=self.on_plot_button_click) self.plot_button.place(x=10, y=560) + # Schalter für Umschaltung zwischen Drehmomentprofil und direkter Vorgabe + self.torque_mode = tk.BooleanVar() + self.torque_mode.set(False) # Startet im Modus "Drehmomentprofil" + self.torque_switch = tk.Checkbutton(self.root, text="Direkte Drehmomentvorgabe aktivieren", variable=self.torque_mode, command=self.toggle_torque_mode) + self.torque_switch.place(x=10, y=340) + # Diagramm self.figure = Figure(figsize=(6,6), dpi=100) self.plot = self.figure.add_subplot(111) @@ -60,7 +73,9 @@ class T2000ErdemGUI: self.canvas = FigureCanvasTkAgg(self.figure, self.root) self.canvas.get_tk_widget().place(x=424, y=0) + self.toggle_torque_mode() self.create_diagram() + self.update_current_values_periodically() def close_application(self): if messagebox.askokcancel("Beenden", "Möchten Sie die Anwendung wirklich beenden?"): @@ -83,19 +98,41 @@ class T2000ErdemGUI: self.plot.set_ylim(bottom=0) self.canvas.draw() - def update_current_values(self, angle, torque): - self.current_angle.config(text=str(angle)) - self.current_torque.config(text=str(torque)) + def update_current_values(self, angle, act_torque): + self.current_angle.config(text=str(angle) + "°") + self.current_torque.config(text=str(act_torque) + " Nm") def save_set_values(self): p = self.p_value.get() i = self.i_value.get() + def toggle_torque_mode(self): + # Aktivieren oder Deaktivieren des direkten Drehmoment-Eingabefeldes + if self.torque_mode.get(): + self.torque_input['state'] = 'normal' + self.coordinates_text['state'] = 'disabled' + else: + self.torque_input['state'] = 'disabled' + self.coordinates_text['state'] = 'normal' + def on_plot_button_click(self): - self.create_diagram() + if self.torque_mode.get(): + # Logik für die direkte Vorgabe des Soll-Drehmoments + set_torque = self.set_torque_value.get() + else: + # Logik für das Drehmomentprofil + self.create_diagram() self.save_set_values() + def update_current_values_periodically(self): + # Simulieren von veränderlichen aktuellen Werten (als Beispiel) + #new_angle = random.randint(0, 90) + #new_torque = random.uniform(0, 50) + #self.update_current_values(new_angle, new_torque) + self.update_current_values(act_angle, act_torque) + self.root.after(200, self.update_current_values_periodically) + # Anwendung starten root = tk.Tk() app = T2000ErdemGUI(root) -root.mainloop() \ No newline at end of file +root.mainloop()