Ankündigung

Einklappen
Keine Ankündigung bisher.

Speicherung im Flash - Best Practice

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

    Speicherung im Flash - Best Practice

    eine Frage an die Profis:

    wenn man viele Variable (darunter viele 1Bit-Werte) im Flash speichert will, soll man diese in Bytes zusammenfassen und dann als 1 Byte speichern?

    also
    Bitwert1, Bitwert2, ..., Bitwert8 in eine Flashvariable "Bytewert" -> Flash speichern

    und beim Systemstart nur die Variable "Bytewert" mit readflash() auslesen und wieder zurückwandeln in die einzelnen Bitwerte
    (also ähjnlich wie im Enertex Makro "vmPIRaumKontrollerVar()"
    Hintergrund ist, die Lese/Schreibzyklen im Flash zu minimieren - oder ist das überflüssig...
    Zuletzt geändert von EPIX; 18.02.2022, 10:13.
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    #2
    Als Richtwert kann man beim Flash annehmen, dass es erst ab einstelligen Terabytes relevant wird, die über die Lebenszeit geschrieben wurden.

    So lange du nicht alle paar Sekunden 1000 Werte schreibst ist alles OK.

    Generell ist meine Empfehlung bei Einstellungen einen "Speichern"-Knopf zu machen und ansonsten bei sich häufig ändernden Werten nicht unbedingt bei change() sondern eher zeitgesteuert zu speichern.

    Kommentar


      #3
      OK, danke dir für die rasche Antwort....

      schönes Wochenende..
      EPIX
      ...und möge der Saft mit euch sein...
      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

      Kommentar


        #4
        Ich gebe Werten, die ich über "+"/"-" Buttons setze, wie bei meinem "intelligenten" EibPC Radiowecker, immer noch einen delay mit, der eine Minute ohne Änderung der Variablen wartet, bevor dann geflasht wird.

        Kommentar


          #5
          auch eine gute Lösung...
          EPIX
          ...und möge der Saft mit euch sein...
          Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

          Kommentar


            #6
            Code:
            if (delay(change(Name_BF),60000u64)) then {
            readflash(bfInFlash@,FlashFbhPumpeBF);
            if (Name_BF != bfInFlash@) then {
            writeflash(Name_BF,FlashFbhPumpeBF);
            Name_txtBF = $Betriebsart gesichert: <small>$ + convert(setdate(),$$) + $ $ + convert(settime(),$$) + $</small><br>$ + strBF@;
            } endif;
            } endif
            Vor dem Flashen wird auch noch geschaut, ob der Wert nicht eh schon drin steht...

            (und davor ein mpbutton mit unnötig viel Code, da er keine nutzbaren Werte gibt -> Betaforum )
            Zuletzt geändert von klaus_kraemer; 27.02.2022, 10:47.

            Kommentar


              #7
              nur interessehalber: wieso verwendest du nicht readflashvar / writeflashvar - da brauchst du dich nicht um den Speicherplatz kümmern ..
              EPIX
              ...und möge der Saft mit euch sein...
              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

              Kommentar


                #8
                Die Funktion kam damals - so weit ich es in Erinnerung habe - erst nachher in den EibPC. An Anderen Stellen kommt auch "readflashvar / writeflashvar" zur Anwendung.

                Ich hoffe gegen Ende des Jahres kann ich mit meiner EibPCapi viele solcher Dinge extern lagern und manipulieren, trotzdem natürlich für die Grundfunktionen weiter die Flashs - falls der externe Server ncht erreichbar ist. Die Wettervorhersage ziehe ich schon so rein (OpenWeatherMap) und bereite serverseitig die Daten schon mal auf.

                Aber erst mal muss mancher Code im EibPC wohl noch sauberer werden, bevor ich wieder einen größeren Schritt gehe...

                Kommentar

                Lädt...
                X