Ankündigung

Einklappen
Keine Ankündigung bisher.

switch case

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Featurewunsch] switch case

    Mal wieder ein Wunsch, der unbedingt umgesetzt werden sollte :

    Das "switch-case"-Kommando-Set.

    Hintergrund:
    Durch das Validierungsschema wird die Programmierung des eibPCs sehr einfach.
    Leider fehlt eine Unterstützung für z.B. Abfragen, die "auswählen".

    Beispiele sind State-Maschinen oder selektive Bearbeitungen:

    [highlight=cpu]
    1.
    switch ( State ) {
    case ( "Init" ): { TCP=connecttcp(); State="Wait_for_Connect" }
    case ( "Wait_for_Connect" ): { if TCP==0 or TCP==3 then State="Send_Data" }
    case ( "Send_data"): { sendtcp(); State="Close_Connection"}
    case ( "Close_Connection"): { closetcp(); State="End"}
    case ( "End" ):
    case ( default ): { /* nichts tun */ }
    }

    2.
    switch ( Kommando ) {
    case ( "RAUF" ): { write( GA1, EIN); }
    case ( "RUNTER" ): { write( GA2, AUS); }
    case ( "STOP"): { write( GA1, AUS); }
    case ( "SCHLIESSEN"): { write( GA3, 100%); }
    }
    [/highlight]

    Insbesondere können durch switch-case auch Stolperfallen umgangen werden, die klassischen Programmierern gerne zum Verhängnis werden, wie im 1. Beispiel das setzen des neuen State bei einem if-then-else problematisch ist.

    Folgendes sollte erfüllt sein:
    • switch und damit der code des gültigen case, sollte zumindest entsprechend des Validierungsschemas bei Änderung der switch-Bedingung ausgeführt werden (also analog if-then).
    • falls für die switch bedingung das Validierungsschema gilt, sollte durch eval() oder after(1u64) oder andere Möglichkeiten die kontinuierliche Auswertung möglich sein.
    • das Ändern der switch-Bedingung sollte im gleichen Zyklus nicht zur Ausführung weiterer cases führen.
    • ein "Default" case sollte möglich sein
    BR
    Marc

    #2
    Dafür!
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar

    Lädt...
    X