Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - 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