schaltlogik entwickeln für 8-gang-schaltung

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Samstag 3. August 2019, 17:40

danke!

also:

Code: Alles auswählen

if:  fahrlicht_schalter == 1    #abfrage fahrlicht_schalter
       led_licht_vorn = fahrlicht_vorn  # dann mache 'led_licht_vorn' auf 'fahrlich vorn'

else:   #sonst
        led_licht_vorn.value = startvalue  #led auf startvalue
richtig?

muss nu erstmal mit frauchen einkaufen fahren.....
Sirius3
User
Beiträge: 10223
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 3. August 2019, 17:54

Wenn Du Dich nicht an die Syntax von Python hältst, dann bekommst Du einen SyntaxError. Etwas Sorgfalt gehört zum Programmieren dazu.

Wie schon geschrieben, merkt man sich am besten den Zustand:

Code: Alles auswählen

class Licht:
    FAHRLICHT = 0.6
    FERNLICHT = 1
    BREMSLICHT = 1

    def __init__(self):
        self.led_licht_vorn = PWMLED(21, initial_value=0)
        self.led_licht_hinten = PWMLED(20, initial_value=0)
        self.fahrlicht_schalter = Button(26)
        self.fahrlicht_schalter.when_pressed = self.fahrlicht_an
        self.fahrlicht_schalter.when_released = self.fahrlicht_aus
        self.fernlicht_taster = Button(19)
        self.fernlicht_taster.when_pressed = self.fernlicht_an_aus
        self.bremslicht_taster = Button(10)
        self.bremslicht_taster.when_pressed = self.bremslicht_an
        self.bremslicht_tatser.when_released = self.bremslicht_aus
        self.fahrlicht = False
        self.fernlicht = False
        self.bremslicht = False

    def fahrlicht_an(self):
        self.fahrlicht = True
        self.update()

    def fahrlicht_aus(self):
        self.fahrlicht = False
        self.update()
    
    def fernlicht_an_aus(self):
        self.fernlicht = not self.fernlicht
        self.update()

    def bremslicht_an(self):
        self.bremslicht = True
        self.update()

    def bremslicht_aus(self):
        self.bremslicht = False
        self.update()
    
    def update(self):
        if self.fernlicht:
            self.led_licht_vorn.value = self.FERNLICHT
        elif self.fahrlicht:
            self.led_licht_vorn.value = self.FAHRLICHT
        else:
            self.led_licht_vorn.value = 0
        if self.bremslicht:
            self.led_licht_hinten.value = self.BREMSLICHT
        elif self.fahrlicht:
            self.led_licht_hinten.value = self.FAHRLICHT
        else:
            self.led_licht_hinten.value = 0
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Samstag 3. August 2019, 20:11

wow!
da schaut ja ganz anders aus als bei meinem gewusel.

nun zu verstehen dazu ;-) :
ganz oben setzt du die zustände für's die lichter, wenn sie an sind.

in

def __init__(self):

setzt du alle schalter und anfangs-parameter ein.

danach komme die anweisungen was wann passieren muss.

wie das
def update (self):
GENAU arbeitet ist mir noch nicht ganze klar

das muss ich mir ALLES erstmal ordentlich durchlesen und verstehen lernen :-)

danke für diesen lösungsansatz.

ich muss noch viel viel lernen :-)
morgen wenn ich wieder 'frischer drauf bin' schau ich mir das sehr sehr sorgfälltig an und wenn ich meine ich weiss was da alles passiert,
probier ich mal vorsichtig, mit einer kopie davon(!), den blinker dazu zu nehmen (bitte nicht vormachen sonst lern ich das ja nicht wie man das zusammenbastelt :-) ich schrei dann schon und frage wenn ich's nicht hinkriege -relativ wahrscheinlich ;-) .......
danke danke noch mal!

und für heute is genuch, es qualmt der kopf ;-) ............
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Sonntag 4. August 2019, 13:41

so weiter geht's....
habe den code komplett kopiert und mit allen einrückungen in eine neue datei übernommen.
nur die zeilen:

#!/usr/bin/python3
from gpiozero import LED, Button, PWMLED

habe ich ganz oben rein gechrieben, weil sonst weiss ja das script nicht, das es gpiozero, buttons etc. nutzen soll.

der code funktioniert nicht.
wenn ich ihn recht verstanden habe, sollte er es aber -eigentlich. :-)

ich mutmaße mal das noch etwas fehlt, was für nicht-anfänger selbstverständlich ist.
für mich leider, noch nicht .

kann mir da jemand einen hinweis geben?
sonst fang ich wieder das rumpobieren an und verwirre mich nur selbst(im prinzip hab ich das schon, hab schon einiges probiert in einer extra-kopie um das original nicht kaputt zu machen)

jetzt gibt es aber erstmal essen und dann müssen wir zu einem notfall der meerschweinchen-nothilfe-hamburg, paar schweine retten....
heut abend geht's dann evtl weiter.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 13:04

jetzt geht's weiter....
ich finde den ansatz mit class, also klassen interessant, weil dann könnte ich ja später die gangschaltung auch in eine class setzen, ähnlich dem licht jetzt und eine class=schaltung dazu setzen wodurch licht und schaltung schön getrennt wären, aber zusammen in einem script...

dazu müsste ich aber das mit dem was da gemacht wurde genauer verstehen(was ich schon recht weit tuhe, wenn ich das richtig sehe)
nur es läuft nicht :-)

ich werde jetzt mal mit komentaren dazu schrieben was ich sehe, was welche zeile tut, evtl ergibt sich für andere dann ja etwas was ich nicht sehe(oder ich falsch verstanden habe) und man mir da auf die sprünge helfen kann....

Code: Alles auswählen

#!/usr/bin/python3 #ort python interpreter
from gpiozero import LED, Button, PWMLED #nimmt bibliothek 'gpiozero' und davon 'led, button und pwmled' rein
from signal import pause #nimmt pause aus signal' mit rein

class Licht:	#klassenangabe 'Licht'
    FAHRLICHT = 0.6 #pwm-wert licht
    FERNLICHT = 1 #pwm-wert fernlicht
    BREMSLICHT = 1 #pwm-wert bremslicht

    def __init__(self): #initialisierung aller taster, schalter led's usw, für self
        self.led_licht_vorn = PWMLED(21, initial_value=0) #led licht vorn mit anfangs-helligkeit
        self.led_licht_hinten = PWMLED(20, initial_value=0) #led licht hinten mit anfangswert
        self.fahrlicht_schalter = Button(26) fahrlichtschalter
        self.fahrlicht_schalter.when_pressed = self.fahrlicht_an #wenn button gedrückt führe 'self.fahrlicht_an' aus
        self.fahrlicht_schalter.when_released = self.fahrlicht_aus #wenn button losgelassen führe 'self.fahrlicht_aus' aus
        self.fernlicht_taster = Button(19) #fernlicht-button
        self.fernlicht_taster.when_pressed = self.fernlicht_an_aus #wenn button gedrückt führe 'self.fernlicht_an' aus
        self.bremslicht_taster = Button(10) #bremslicht-button
        self.bremslicht_taster.when_pressed = self.bremslicht_an #wenn button gedrückt führe 'self.bremslicht_an' aus
        self.bremslicht_tatser.when_released = self.bremslicht_aus #wenn button losgelassen führe 'self.fernlicht_aus' aus
        self.fahrlicht = False # ist-wert 'fahrlicht'
        self.fernlicht = False # ist-wert 'fernlicht'
        self.bremslicht = False # ist-wert 'bremslicht'

    def fahrlicht_an(self): #funktion für fahrlicht an
        self.fahrlicht = True #setze self.fahrlicht auf 'TRUE'
        self.update() #führe self.update aus

    def fahrlicht_aus(self): #funktion fahrlicht aus
        self.fahrlicht = False #setze fahrlicht auf 'false'
        self.update()	#führe update aus
    
    def fernlicht_an_aus(self): #funktion fernlich an
        self.fernlicht = not self.fernlicht #fernlicht oder nicht fernlicht -genaue bedeutung unklar
        self.update() #führe update aus

    def bremslicht_an(self): #funktion bremslicht an
        self.bremslicht = True #setze bremslich auf true
        self.update() #führe update aus

    def bremslicht_aus(self): #funktion bremslicht aus
        self.bremslicht = False #setze bremslicht auf false
        self.update() #führe update aus
    
    def update(self): #funktion update
        if self.fernlicht: #wenn(if) fernlicht angesprochen wird
            self.led_licht_vorn.value = self.FERNLICHT # nehme wert von FERNLICHT und setze ihn bei led_licht_vorn.value ein
        elif self.fahrlicht: #ausserdem wenn fahrlicht angesprochen wird
            self.led_licht_vorn.value = self.FAHRLICHT #nehme wert von FAHRLICHT und setze ihn  bei led_licht_vorn.value ein
        else: #sonst
            self.led_licht_vorn.value = 0 #setze led_licht_vorn auf value 0
            
        if self.bremslicht: #wenn bremslicht angesprochen wird
            self.led_licht_hinten.value = self.BREMSLICHT #nehme wert von BREMSLICHT und setze den für led_licht_hinten.value ein
        elif self.fahrlicht: #ausserdem wenn fahrlicht angesprochen wird
            self.led_licht_hinten.value = self.FAHRLICHT #nehme wert von FAHRLICHT und setze ihn bei led_licht_hinten.alue ein
        else: #sonst
            self.led_licht_hinten.value = 0 #setze led_licht_hinten auf value 0

#müsste hier nicht 'pause()' stehen 
das das script nicht nur einmal 
durchläuft und sich dann beendet? 
-so habe ich die erklärungen dazu jedenfalls verstanden......-
bis auf 'self.fernlicht = not self.fernlicht' meine ich also eigentlich alles zu verstehen, wobei ich mich wohl täusche, weil, es läuft zwar fehlerfrei(also ohne fehlermeldungen) aber tut nix :-) .
wo liegt mein denkfehler, was hab ich nicht beachtet oder vergessen um das dazu zu bringe das es auch was tut?

ich wollte sonst versuchen SELBER den bremslicht-button samt led(eigentlich ja einen ausgang high/low setzen) mal da mit ein zu bauen.
Sirius3
User
Beiträge: 10223
Registriert: Sonntag 21. Oktober 2012, 17:20

Montag 5. August 2019, 14:11

Das ist nur die Definition der Klasse. Zumindest eine Instanz der Klasse mußt Du erzeugen.
"not a" ist eine logische Operation, not True -> False und not False -> True
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 14:50

wie erzeuge ich eine instanz der klasse (hier ja 'Licht')?
verstehe ich das richtig das ich also zwar die klasse definiert und mit inhalt gefüllt habe, diese aber 'so für sich allein' nicht benutzen kann(deswegen tu sich natürlich auch nix) und also noch angeben muss ob und wie diese klasse benutzt werden soll?

zu 'not a' das steht doch für 'nicht a' richtig? da versteh ich nicht die logik hinter
self.fernlicht = not self.fernlicht,

das ist für mich gerade wie:
'bierkasten' = nicht 'bierkasten' ;-)

oder soll das sein 'nichtmehr' also wenn fernlicht nichtmehr fernlicht ist, also dazugehöriger taster gedrückt bzw eben nichtmehr gedrückt - dann (nächste zeile )führe 'self update' aus?

kurz: solange fernlicht-taster gedrückt fernlicht an, sonst update, also ausmachen.

ich frage da so genau nach, damit ich das auch richtig verstehe, nicht das ich mir das falsch merke.
Benutzeravatar
noisefloor
User
Beiträge: 2725
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Montag 5. August 2019, 15:10

Hallo,
wie erzeuge ich eine instanz der klasse (hier ja 'Licht')?
Wenn du das (noch) nicht weißt, dann solltest du nochmal z.B. das Tutorial auf docs.python.org durcharbeiten, zumindest den Teil zu Klassen und Instanzen. Das ist elementar wichtig. Bring ja nix, wenn du eine Klasse per C&P übernimmst und dann keine Plan hast, was du damit anstellen sollst.

Wobei du ja schon - wahrscheinlich unbewusst - Instanzen von Klassen nutzt. Z.B. hier ´self.bremslicht_taster = Button(10)` bindest du ein Instanz der der Klasse `Button` an das Attribut `self.bremslicht_taster`.
zu 'not a' das steht doch für 'nicht a' richtig? da versteh ich nicht die logik hinter
Das ist Bool'sche Logik. Es gibt zwei Zustände, True und False. Wenn du einen Zustand negierst, dann ist es automatisch der andere. Also würde die Zeile `self.fahrlicht = not self.fahrlich` das Licht umschalten (also von aus -> an oder an -> aus, je nach dem, was der Ausgangszustand ist).
Der Vergleich mit dem Bierkasten passt nicht, weil der Bierkasten keine Wahr oder Falsch Zustand hat.

Gruß, noisefloor

P.S.: und kauf' dir endlich mal einen neue Tastatur, deine Umschalten-Tasten ist immer noch kaputt. Hatte ich dich schon im Rapsi-Forum drauf hingewiesen...
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 16:33

Ja meine schreibweise......
Ich werde es versuchen, auch wenn all meine Beiträge dann mindestens ne 1/4std länger dauern und ich mich oft selbst wieder aus dem konzept bringe, weil ich nimmer weis was ich schreiben wollte, hoffe ihr kommt nie in solch eine situation das ihr nicht immer könnt wie ihr wollt...........

Nun zum eigenlichen:
Ich dacht, ich hab ja ein classen-Script welches gut funktioniert, das von der Gangschaltung.
Also bringen wir mal beide zusammen und wenn des mit Gangschaltung funktioniert, also wohl dei Instanz für die classe schon mit drin hat, sollte ja dann auch die Lichtschaltung hinhauen......

war natürlich Pustekuchen :-)

Nun hab ich ein Script wo aber wenigstens schonmal die Gangschaltung hinhaut ;-)

Jetzt hattet Ihr was zum schmunzeln und ich versuche raus zu kriegen wie ich Instanzen und Kassen richtig anwende.

für neugierige hier mein copy&paste werk:

Code: Alles auswählen

#!/usr/bin/env python3

from functools import partial
from signal import pause
from gpiozero import Button, AngularServo, LED, PWMLED


GEAR_CHANGE_SERVO_PIN = 25
GEAR_UP_PIN = 11
GEAR_DOWN_PIN = 9

GEAR_TO_ANGLE = [-90, -64.3, -38.6, -12.9, 12.8, 38.5, 64.2, 90]


def clamp(value, lower, upper):
    return max(min(upper, value), lower)


class GearChange:
    
    def __init__(self, gear_to_angle, servo_pin, gear_up_pin, gear_down_pin):
        self._current_gear = 0
        self._gear_to_angle = gear_to_angle
        self._servo = AngularServo(
            servo_pin,
            initial_angle=self._gear_to_angle[self.current_gear],
            min_angle=min(self._gear_to_angle),
            max_angle=max(self._gear_to_angle),
            min_pulse_width=0.0008,
            max_pulse_width=0.0023,
        )
        self._gear_up_button = Button(gear_up_pin)
        self._gear_up_button.when_pressed = partial(self.change, +1)
        self._gear_down_button = Button(gear_down_pin)
        self._gear_down_button.when_pressed = partial(self.change, -1)

    @property
    def gear_count(self):
        return len(self._gear_to_angle)

    @property
    def current_gear(self):
        return self._current_gear
    
    @current_gear.setter
    def current_gear(self, value):
        self._current_gear = clamp(value, 0, self.gear_count - 1)

    def change(self, direction):
        self.current_gear += direction
        self._servo.angle = self._gear_to_angle[self.current_gear]


class Licht:
    FAHRLICHT = 0.6
    FERNLICHT = 1
    BREMSLICHT = 1

    def __init__(self):
        self.led_licht_vorn = PWMLED(21, initial_value=0)
        self.led_licht_hinten = PWMLED(20, initial_value=0)
        self.fahrlicht_schalter = Button(26)
        self.fahrlicht_schalter.when_pressed = self.fahrlicht_an
        self.fahrlicht_schalter.when_released = self.fahrlicht_aus
        self.fernlicht_taster = Button(19)
        self.fernlicht_taster.when_pressed = self.fernlicht_an_aus
        self.bremslicht_taster = Button(10)
        self.bremslicht_taster.when_pressed = self.bremslicht_an
        self.bremslicht_tatser.when_released = self.bremslicht_aus
        self.fahrlicht = False
        self.fernlicht = False
        self.bremslicht = False

    def fahrlicht_an(self):
        self.fahrlicht = True
        self.update()

    def fahrlicht_aus(self):
        self.fahrlicht = False
        self.update()
    
    def fernlicht_an_aus(self):
        self.fernlicht = not self.fernlicht
        self.update()

    def bremslicht_an(self):
        self.bremslicht = True
        self.update()

    def bremslicht_aus(self):
        self.bremslicht = False
        self.update()
    
    def update(self):
        if self.fernlicht:
            self.led_licht_vorn.value = self.FERNLICHT
        elif self.fahrlicht:
            self.led_licht_vorn.value = self.FAHRLICHT
        else:
            self.led_licht_vorn.value = 0
        if self.bremslicht:
            self.led_licht_hinten.value = self.BREMSLICHT
        elif self.fahrlicht:
            self.led_licht_hinten.value = self.FAHRLICHT
        else:
            self.led_licht_hinten.value = 0
            

   
def main():
    hupe = Button(5)
     
    _gear_change = GearChange(
        GEAR_TO_ANGLE, GEAR_CHANGE_SERVO_PIN, GEAR_UP_PIN, GEAR_DOWN_PIN
    )


if __name__ == '__main__':
    main()           
ist wie gesagt schon getestet, der Servo läuft wie er soll ;-)
__deets__
User
Beiträge: 6054
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 5. August 2019, 17:22

Wenn dich die Großschreibung belastet, lass es. Konzentrier dich auf die Semantik des Codes. Das PI Forum hat andere regeln, hier wird zwar auch gelegentlich ein bisschen mehr Mühe beim formulieren von Fragen gefordert, aber Großbuchstaben sind im Zeitalter von Textnachrichten, mobilen Endgeräten, und dem allgegenwärtigen Englisch, das auch ohne auskommt, das geringste Problem. Ich schreibe das hier auf nem iPad. Da erstmal zum Deutsch Diktat zu bitten bevor ich abschicke ist ein bisschen übertrieben.

Bei deinem Code hingegen steckt vieles im Argen. Viel zu viel Zustand, viel zu viele callbacks.

Ich habe es schon ein paar mal angesprochen, aber hier mal als Code:

Code: Alles auswählen

ruecklicht_stufe = self.bremslicht_taster.value << 1 | self.fahrlicht_schalter.value
scheinwerfer_stufe = self.fernlicht_taster.value << 1 | self.fahrlicht_schalter.value
Das packst du in eine Methode, die für ALLE 3 Buttons als callback gesetzt wird. Und die resultierenden werte von 0 bis 3 übersetzt du per Lookup-Tabelle in deine PWMs. Wann immer sich also irgendwas der drei Taster ändert, rechnest du die neuen Stufen aus & setzt die. Es ist völlig überkandidelt da feingranular nur was machen zu wollen, wenn für einen der Dinger was passiert.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 17:57

Wenn du das (noch) nicht weißt, dann solltest du nochmal z.B. das Tutorial auf docs.python.org durcharbeiten, zumindest den Teil zu Klassen und Instanzen. Das ist elementar wichtig. Bring ja nix, wenn du eine Klasse per C&P übernimmst und dann keine Plan hast, was du damit anstellen sollst.
ich weiss ja recht genau was da anstellet wird und auch was die freunlichen helfer da geschrieben haben.
wenn nicht frag ich, und ich kann auch funktionen und schalter usw dazu hinzufügen usw.

aber wie krieg ich es hin das das ganze überhaupt erstmal läuft?!

konkret, was muss ich wo bitte schreiben damit die 'class Licht' zb genutzt wird und nicht einfach nur 'nichts' passiert?

das ist so dermaßen frustrierend, das ich den pi echt langsam in die ecke pfeffern könnte und mir ein paar transistoren schnapp und das damit mach.

sch... auf camera usw was später noch dazu sollen könnte, komm da eh nie hin, es fehlt einfach der allererste anfang.

und der steht nirgends so das ich es auch verstehe.

ich hab da beim lesen immer das gefühl man sagt:
schreib: class 'dein wahlname':
schreib: def __init__: und setzt da alles rein womit du hantieren willst

und dann stürzt man sich auf funktionen, zusammenhäge also iregendwas anderes, aber wie ich die classe dann auch korrekt aufrufe und nutze, das fehlt

tschuldigung wenn da jetzt die exakte rechtschreibung wieder fehlt aber dafür hab ich jetzt nicht auchnoch die nerven....
__deets__
User
Beiträge: 6054
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 5. August 2019, 18:04

Wenn du das elektronisch lösen kannst, mach das. Ist besser. Das meine ich nicht sarkastisch. Der PI ist kompliziert, stromhungrig, fehleranfällig. Damit sowas aufzubauen war noch nie ne gute Idee. Du hast halt behauptet du willst damit das programmieren lernen. Aber das scheint ja nun etwas schwieriger als geplant. Und vor allem: wenn du mit der Nummer deine Ruhe haben willst, ist das eh keine gute Idee gewesen.

Alternativ, als Zwischenlösung, ein Arduino oder so. Robuster, und leichter zu programmieren.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 20:08

naja, ich sags mal so:
was ich machen wollte,
ist von SPS, was ich irgendwann als azubi hatte und konnte, ja nicht zu weit weg.

er hakt vor allem ja an den einfachen einstiegs-schritten in python.
der rest ist nicht das unüberwältigbare problem, ich will ja auch nicht überbordert-aussergewöhnlich schwieriges machen.

wenn sich nirgends etwas, und keiner findet der einem diese anfänglichkeiten erklären kann, auch auf anfrage, ist das traurig und frustrierend und dann wendet man sich eben ab nachdem man häuftig genug versucht hat diese 'anfangswand' zu durchbrechen......
auch wenn es evt so klingen mag für den ein oder anderen, das ist eine feststellung keine kritik an irgendwem.
ich werde noch ein wenig mich weiter versuchen, mit hilfe der vielen hilfreichen codebeispiele von hier (wofür ich mich ausdrücklich bedanken möchte!) und werde sehen ob ich den einstieg nun irgendwie allein hinbekomme oder nicht.....

@deets: klar will ich programmieren lernen, gerne sogar, nur wenn ich nichtmal das einfachste verstehe, wie soll ich das dann lernen?
bin wohl zu alt den sinn der zich tutorials die es so gibt zu verstehen und die 'originale' sind alle in englisch da bin ich nicht gut genug drin.
geist4711
User
Beiträge: 47
Registriert: Montag 29. Juli 2019, 11:48

Montag 5. August 2019, 21:50

Abschluss für Heute:
Hab nun mich nochmal dran gesetzt und scripte alles ohne Objekt-orientierung ähm -Programmierung ;-) und Klassen.
Bin jetzt soweit das die Gangschaltung läuft und Licht grundsätzlich auch funktioniert.
Einzig 'zurückschalten' von Fern- und Brems-Licht, bestimmt davon ob gerade Fahrlicht an oder aus ist, geht noch nicht auf die korrekte Stufe, sondern nur auf 'Fahrlicht-helligkeits-Stufe'.
Evtl find ich da auch noch ne Lösung für, den Ansatz hab ich dazu ja im class-script versteckt.
Morgen gibt's dann wahrscheinlich noch mal ein paar Fragen und dann auch den aktuellsten Code, für diejenigen die hier jetzt und später mal mitlesen -der Pi 'schläft' für heute schon, da liegt das aktuellste Script ;-)
__deets__
User
Beiträge: 6054
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 5. August 2019, 22:05

Ich habe dir den Ansatz weiter oben gegeben. Der hat auch mit Klasse oder nicht Klasse nix zu tun.
Antworten