Button drücken und Variable mit übergeben
Verfasst: Dienstag 10. November 2020, 12:06
				
				Hallo Zusammen,
ich habe eine Frage bezüglich dem Einsatz von Buttons. Aktuell erstelle ich Skript zur Ansteuerung einer Pumpe mit 4 Kanälen, jeder Kanal soll über eine Button an und aus geschaltet werden.
Der Einfachheit halber habe ich jedem Button eine eigene DEF zugewiesen. Sozusagen 4 mal die Gleiche...wo sich lediglich ein Zahlenwert zwischen 1-4 unterscheidet.
Ich würde gern das alle Buttons mit der gleichen DEF verbunden sind und entsprechend zusetzlich einen INT Wert von 1-4 übertragen, ist das Möglich?
Daher meine Überlegung, wo jetzt bei dem entsprechenden CH* eine Zahl steht, dann einfach die Variable übertragen, die repräsentativ für 1-4 steht.
Das würde mir im gesamten Code sehr viele Zeilen sparen, da ich sonst immer alles 4-fach machen muss.
Danke für eure Hilfe!!!
Aktuell wird es so gelöst:
			ich habe eine Frage bezüglich dem Einsatz von Buttons. Aktuell erstelle ich Skript zur Ansteuerung einer Pumpe mit 4 Kanälen, jeder Kanal soll über eine Button an und aus geschaltet werden.
Der Einfachheit halber habe ich jedem Button eine eigene DEF zugewiesen. Sozusagen 4 mal die Gleiche...wo sich lediglich ein Zahlenwert zwischen 1-4 unterscheidet.
Ich würde gern das alle Buttons mit der gleichen DEF verbunden sind und entsprechend zusetzlich einen INT Wert von 1-4 übertragen, ist das Möglich?
Daher meine Überlegung, wo jetzt bei dem entsprechenden CH* eine Zahl steht, dann einfach die Variable übertragen, die repräsentativ für 1-4 steht.
Das würde mir im gesamten Code sehr viele Zeilen sparen, da ich sonst immer alles 4-fach machen muss.
Danke für eure Hilfe!!!
Aktuell wird es so gelöst:
Code: Alles auswählen
        # Buttons Pumpenkanäle ein / aus
        self.ui.button_ch1.clicked.connect(self.CH1_on_off)
        self.ui.button_ch2.clicked.connect(self.CH2_on_off)
        self.ui.button_ch3.clicked.connect(self.CH3_on_off)
        self.ui.button_ch4.clicked.connect(self.CH4_on_off)
        
     def CH1_on_off(self):       
        if self.status_ch1 == False:
            self.ser.write("1H\r\n".encode())
            antwort_ch1 = self.ser.read().decode()
            self.label_ch1.setText("running") 
            print("CH1 Abfrage Zustand: "+ antwort_ch1)
            self.status_ch1 = True
        elif self.status_ch1 == True:
            self.ser.write("1I\r\n".encode())
            antwort_ch1 = self.ser.read().decode()
            self.label_ch1.setText("stop")
            print("CH1 Abfrage Zustand: "+ antwort_ch1)
            self.status_ch1 = False
            
    def CH2_on_off(self):
        if self.status_ch2 == False:
            self.ser.write("2H\r\n".encode())
            self.label_ch2.setText("running") 
            antwort_ch2 = self.ser.read().decode()
            print("CH2 Abfrage Zustand: "+ antwort_ch2)
            self.status_ch2 = True
        elif self.status_ch2 == True:
            self.ser.write("2I\r\n".encode())
            self.label_ch2.setText("stop")
            antwort_ch2 = self.ser.read().decode()
            print("CH2 Abfrage Zustand: "+ antwort_ch2)
            self.status_ch2 = False
            
    def CH3_on_off(self):
        if self.status_ch3 == False:
            self.ser.write("3H\r\n".encode())
            self.label_ch3.setText("running") 
            antwort_ch3 = self.ser.read().decode()
            print("CH3 Abfrage Zustand: "+ antwort_ch3)
            self.status_ch3 = True
        elif self.status_ch3 == True:
            self.ser.write("3I\r\n".encode())
            self.label_ch3.setText("stop")
            antwort_ch3 = self.ser.read().decode()
            print("CH3 Abfrage Zustand: "+ antwort_ch3)
            self.status_ch3 = False
            
    def CH4_on_off(self):
        if self.status_ch4 == False:
            self.ser.write("4H\r\n".encode())
            self.label_ch4.setText("running") 
            antwort_ch4 = self.ser.read().decode()
            print("CH4 Abfrage Zustand: "+ antwort_ch4)
            self.status_ch4 = True
        elif self.status_ch4 == True:
            self.ser.write("4I\r\n".encode())
            self.label_ch4.setText("stop")
            antwort_ch4 = self.ser.read().decode()
            print("CH4 Abfrage Zustand: "+ antwort_ch4)
            self.status_ch4 = False