Ankündigung

Einklappen
Keine Ankündigung bisher.

mpchart mit Daten füllen

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

    [EibParser] mpchart mit Daten füllen

    Hallo Enertegus,

    es wurde schon häufig in Zusammenhang mit mpchart vorgeschlagen zu bestimmten Zeitpunkten (z.B. Mitternacht) 48 Werte in das mpchart zu schreiben um so ein leeres Chart zu erzeugen.

    Im Vorfeld zu ersten Überlegungen zu einem mpchart Remanent Makro habe ich dies einmal auf verschiedene Arten ausprobiert. Keiner meiner Versuche führte zu dem gewünschten Ergebnis.

    Warum liefert diese "stumpfe" Methode hier nicht eine stufenförmige Rampe:

    [highlight=epc]
    n=0.5f16
    if "EibPC Test-5/4/1" == EIN then \\
    mpchart(ID_Temp_EG1,8.0f16,1.5f16+n,0,PageID_Tempe raturverlaeufe); \\
    mpchart(ID_Temp_EG1,8.25f16,1.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,8.50f16,1.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,8.75f16,1.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,9.0f16,2.0f16+n,0,PageID_Tempe raturverlaeufe); \\
    mpchart(ID_Temp_EG1,9.25f16,2.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,9.50f16,2.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,9.75f16,2.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,10.0f16,2.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,10.25f16,2.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,10.50f16,2.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,10.75f16,2.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,11.0f16,3.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,11.25f16,3.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,11.50f16,3.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,11.75f16,3.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,12.0f16,3.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,12.25f16,3.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,12.50f16,3.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,12.75f16,3.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,13.0f16,4.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,13.25f16,4.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,13.50f16,4.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,13.75f16,4.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,15.0f16,4.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,15.25f16,4.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,15.50f16,4.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,15.75f16,4.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,16.0f16,5.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,16.25f16,5.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,16.50f16,5.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,16.75f16,5.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,17.0f16,5.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,17.25f16,5.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,17.50f16,5.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,17.75f16,5.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,18.0f16,6.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,18.25f16,6.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,18.50f16,6.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,18.75f16,6.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,19.0f16,6.5f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,19.25f16,6.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,19.50f16,6.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,19.75f16,6.5f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,20.0f16,7.0f16+n,0,PageID_Temp eraturverlaeufe); \\
    mpchart(ID_Temp_EG1,20.25f16,7.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,20.50f16,7.0f16+n,0,PageID_Tem peraturverlaeufe); \\
    mpchart(ID_Temp_EG1,20.75f16,7.0f16+n,0,PageID_Tem peraturverlaeufe) \\
    endif
    [/highlight]

    Das Chart war nach diesem Versuch leer.

    Viele Grüße

    Michael

    #2
    Am einfachsten das Makro
    Code:
    // Foor loop
    // @date    21.07.2012
    // @version    2 
    // @author    Enertex Bayern GmbH
    :begin ForLoop(Name,Start,CountMax,Aktion)
    :info $Eine Aktion (ein oder mehrere Funktionsaufrufe, ausführbarer Code) in einer Schleife Ausführen. Als Schleifenzähler wird Name^Counter genutzt. Dieser Zähler wird um 1 erhöht und läuft bis zur Grenze CountMax. Danach wird die Startvariable wieder auf AUS gesetzt.$\\
          $Name der Schleife$\\
          $Startvariable (EIN oder AUS). Bei Wechsel auf EIN fängt die Schleife an zu arbeiten$\\
          $Maximale Zahl der Durchläufe als Zahl zwischen 0 und 4294967295$\\
          $Ein oder mehrere Anweisungen (entspricht Code des Anwendungsprogramms). Zwischen den Anweisungen (nicht am Ende) durch Strichpunkt getrennt.$
    :shortinfo $For-Schleife$
    Name^Counter=99u32
    :var Next@
    Next@=AUS          
    if (Start) then Name^Counter=0u32 endif
    if change(Name^Counter) then Next@=!Next@ endif 
    if change(Next@) and Name^Counter<CountMax^u32 then Aktion; Name^Counter=Name^Counter+1u32 endif
    :end
    in der Enertex.lib ersetzen.
    Dann geht einfach folgendes zum Zurücksetzen [Das alte loop Makro dürfte nicht mehr kompatibel sein mit der 2.308]:
    Code:
    ForLoop(Nullen,htime(0,0,0),48, mpchart(MyVisu,0.0,0.0,MyGraf,MyPage))
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Falschen Thread beantwortet, Michael ... ?

      Kommentar


        #4
        Zitat von bmx Beitrag anzeigen
        Falschen Thread beantwortet, Michael ... ?
        nee, es ging doch um:
        es wurde schon häufig in Zusammenhang mit mpchart vorgeschlagen zu bestimmten Zeitpunkten (z.B. Mitternacht) 48 Werte in das mpchart zu schreiben um so ein leeres Chart zu erzeugen.
        hab ich eigenhändig getestet .
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Faszinierend! Ich hätte daraus gelesen "Warum liefert diese "stumpfe" Methode hier nicht eine stufenförmige Rampe".

          Kommentar


            #6
            Hi Bernd,

            ich meinte mit stumpf die 48 Einzelschritte innerhalb der if-Abfrage, also ohne eine Schleife zu nutzen.

            Ich habe auch schon mit Schleifen getestet, aber die am leichtesten nachvollziehbare Variante hier eingestellt.

            Ich probiere einmal dieses Loop Makro. 48 Nullen ins Chart schreiben wäre nur der erste Schritt, aber eigentlich möchte ich das Chart ja nach einem Neustart aus dem Remanentspeicher zurückschreiben.

            Warum das mit den 48 Einzelschritten nicht funktioniert ist mir schleierhaft.

            Viele Grüße

            Michael

            Kommentar


              #7
              Zitat von Jambala Beitrag anzeigen
              Warum das mit den 48 Einzelschritten nicht funktioniert ist mir schleierhaft.
              Man schreibt mit dem mpchart einen Wert in dessen Speicher pro Verarbeitungsschritt. Ohne es ganauer untersucht zu haben, denke ich liegt das Problem darin, dass Du pro Verarbeitung gleich mehrere Daten an das Diagramm senden willst und das wird nicht gehen.
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von bmx Beitrag anzeigen
                Faszinierend! Ich hätte daraus gelesen "Warum liefert diese "stumpfe" Methode hier nicht eine stufenförmige Rampe".
                Stimmt schon, das war die formulierte Frage. Aber wie hat mein Mathe-Prof mal gesagt:
                "Soll ich nun ihre Frage beantworten, oder das erklären, was sie - vermutlich - wissen wollen."
                Mein Lieblingsspruch aus diesen Zeiten...
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  der Spruch ist gut! Den muss ich mir merken!
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar

                  Lädt...
                  X