- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 4 von 4

Thema: Vorstellung: Arduino C++ Menu Lib (ARM oder ESP, ggf auch AVR)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Bisher nutzt die MenuLib Class Lib eine (public) Methode zur zeilenweisen Ausgabe der menü-Einträge:

    Code:
    // Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
    //
    display.setColor(BLACK);
    display.setCursor(FONTWI, line);            
    display.print(list[i]);
    Nicht alle Display Libs (für LCD1602, ILI9341,...)unterstützen aber diese Syntax.
    Es wäre nun eine schöne Erweiterung, wenn die MenuLib Class auch verschiedene Displays nutzen könnte, indem man eine interne, "allgemein gehaltene" ("virtuelle" ?) Schreibmethode verwendet, die erst bei der Instanziierung mit einer bestimmten TFT Lib mit der jeweiligen speziellen Syntax "assoziiert" wird.
    Diese könnte dann gezwungen sein, z.B.
    statt
    display.setColor(BLACK);
    display.setCursor(x,y);
    display.print(cstring);
    display.display();

    etwas in dieser Form aufrufen:
    TextOut(x,y, cstring, TFT_BLACK);
    // schreibt uU sofort, ohne ein zusätzliches display.display(); zu benötigen

    Sieht jemand eine Möglichkeit, so etwas umzusetzen?

    Code:
    class tMenu {  
      
    //...      
      
      public:      
         
         tMenu (...) :   {            
         //...
     
      
         void mdisplay() {          
            if(actln>VISLNUM-1) firstvln=_min(actln-1, MENULEN-VISLNUM);
            else firstvln=0;       
            lastvln=min(firstvln+VISLNUM-1, firstvln+MENULEN-1) ; 
    
            display.clearDisplay();
            
            for(int i=firstvln; i<=lastvln; i++) {   
                displn=(FONTHI-3) + (i-firstvln)*FONTHI;   
                display.setCursor(0, displn);
                
                if(i!=actln && i==tagged) {   
                  display.print('*');   
                }              
                else
                if(i==actln && i==tagged) {   
                  display.print('#');   
                }              
                else                       
                if(i==actln && i!=tagged) {                
                  display.print('>');              
                }
                else {            
                  display.print(' ');              
                }
                display.setCursor(FONTWI, displn);            
                display.print(list[i]);   
            }       
            display.display();
             
         }
          
    
    
         //...
    
    };
    Geändert von HaWe (09.02.2019 um 17:50 Uhr)

  2. #2
    HaWe
    Gast
    das Problem mit stark unterschiedlicher TFTLib-Syntax ist noch nicht gelöst, aber die Zuordnung von Menü-Zeilen und den zugehörigen Exec-Commandos ist deutlich vereinfacht:

    Passend zur Liste mit den einzelnen Zeilen des Menüs
    wird eine entsprechende Exec-Funktion mit den jew. Zeilen der zugehörigen Befehle geschrieben.

    Dadurch ist das Handling der Menü-Funktionen in der loop() deutlich vereinfacht (es können auch optional Strings als Rückgabewerte empfangen werden für spezielle Anforderungen).


    --------------------------
    Update!

    Neu:
    Es können nun auch Variablenwerte in Menüzeilen angezeigt, geupdated und nach Markieren (tag) per Buttons verändert werden, und das sogar für mehrere verschiedene Variablen im selben Menü.

    Beispielcodes hier:

    https://github.com/dsyleixa/Arduino/...ster/MenuClass
    Geändert von HaWe (09.02.2019 um 15:00 Uhr)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 15.12.2018, 22:02
  2. esp8266+Arduino IDE + email lib auch für gmx.de?
    Von HaWe im Forum Arduino -Plattform
    Antworten: 10
    Letzter Beitrag: 11.08.2018, 08:53
  3. Raspberry Pi auch über 9V Batterie wie den Arduino?
    Von RoboTrader im Forum Raspberry Pi
    Antworten: 25
    Letzter Beitrag: 14.01.2018, 17:49
  4. Arduino 101: Intel stellt auch das letzte Bastler-Board ein
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 21.07.2017, 06:21
  5. LCD - Menu-Navigation
    Von testone im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 12.11.2008, 22:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test