Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

- √ - Sackzähler

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

    [Codebeispiel] - √ - Sackzähler

    Hallo zusammen,

    nach endlosen, leider vergeblichen Stunden, muss ich mich nun doch an euch mit meiner Frage wenden. Wahrscheinlich ist die Lösung - wie immer - einfachst, aber ich steig einfach nicht dahinter.

    Folgende Ausgangslage:
    Ich befeuer meinen Pellet-Kaminofen im Wohnzimmer mit Pellet-Sackware. um den Verbrauch darzustellen, hab ich bisher eine extra Excle-Liste geführt - unpraktisch, unschön.
    Als Lösung hätt ich mir gern einen "Sackzähler" am Webserver implementiert, damit der mir einfach die Sackanzahl hochzählt, wenn ich "+" drücke. In der Visualisierung bekomm ich nur "15kg Sack" angezeigt und auch beim Drücken des buttons ändert sich nichts, auch nicht der Wert wenn ich ihn im Debugger auslese.

    mein bisheriger Code:
    [highlight=epc]
    // Sackzähler Pellets
    Sack=0u16
    SackPlus=0u16
    // Flashspeichplatz 7
    SackCounter=0u16
    FlashSpeicher7=7u16
    // Sackzähler auslesen
    if systemstart() then readflash(SackCounter,FlashSpeicher7) endif
    // Sackzähler schreiben
    if change(SackPlus) or htime(23,59,15) then writeflash(SackCounter,FlashSpeicher7) endif

    if pbutton(SackID,AllgemeinHeizungID)==1 then SackCounter+1u16 endif
    if change(SackCounter) then {
    SackCounter+1u16;pdisplay(SackID,$SackCounter$,PLU S,INACTIVE,GREY,AllgemeinHeizungID)
    } endif
    [/highlight]
    und die Visualisierung:
    [highlight=epc]
    pbutton(SackID)[PLUS]$15kg Sack$
    [/highlight]

    Könnt ihr mir da bitte auf die Sprünge helfen? Ich hab da einen groben Fehler drin, komm aber einfach nicht dahinter.
    Haha, du lustiger Bucklfips

    #2
    Versuch mal : Sackcounter=Sackcounter+1u16 ..
    Dann in der "if change" würd ich das ganz weg lassen... Sonst führt er es ja noch mal aus.. Und im pdisplay würd ich keinen statischen Text ($Sackcounter$) ausgeben sondern die Variable (Sackcounter)..

    Gruss Martin
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      Zumindest in dem von Dir hier dargestellen Code wird kein
      "change(Sackplus)"
      auftreten, außer Du hast das woanders stehen...

      Kommentar


        #4
        Ich danke euch. Das waren natürlich die richtigen Lösungsansätze. Schön langsam wird mir das immer verständlicher, aber nach ein paar Stunden Getüftel wird man einfach "blind".

        Der funktionierende Code:
        [highlight=epc]
        // Sackzähler Pellets
        SackCounter=0u16
        // Flashspeichplatz 7
        FlashSpeicher7=7u16
        // Sackzähler aus Flash auslesen
        if systemstart() then readflash(SackCounter,FlashSpeicher7) endif
        // Sackzähler auf Flash schreiben
        if change(SackCounter) or htime(23,59,15) then writeflash(SackCounter,FlashSpeicher7) endif
        // bei Betätigung des buttons hochzählen
        if pbutton(SackID,AllgemeinHeizungID)==1 then SackCounter=SackCounter+1u16 endif
        // Visualisierung
        if change(SackCounter) then {
        pdisplay(SackID,SackCounter,PLUS,INACTIVE,GREY,All gemeinHeizungID)
        } endif
        [/highlight]
        Haha, du lustiger Bucklfips

        Kommentar

        Lädt...
        X