Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
cpu graph optimieren
#1
Habe ein fertiges Script von hier schon auf das gekürzt, was ich brauche, auf diese scrollende Sy-Last Anzeige.
Nun müßte dieses nur noch für mein LCD optimiert werden (Auflösung 128x64) (im Moment 240x128 und in die ecke gequetscht)
doch ich habe leider übehaupt keine Ahnung welche Sachen ich ändern muss (seh garnich durch beim scripten sad.gif ). hoffe ihr könnt mir da helfen, wäre riiiiiiieeesssssiiiiiiiggg super.

QUOTE

***********************************
* LCD Sys Info                    *
* by El-Blindo                    *
***********************************

#Header
%Common.SetPriority(1000)
%DefList(CPULoad,Local)
%DefVar(xPos,Local = 6)
%DefVar(yPos,Local =  0)
%DefVar(Counter,Local = 1)
%DefVar(LastTimeStamp,Local=0)
%DefVar(Temp,Local  = 0)

#EndHeader

#GfxMode
/Systemlast Graph/
%Assign(Temp,%System.CPU(Usage))
%If(%List.Count(CPULoad) = 0) Then
  {%Loop.For(C,0,24){%List.Add(CPULoad,122)}}
%Assign(yPos,%CPULoad(0))
%List.Delete(CPULoad,0)
%List.Add(CPULoad,%Dec(122,%Round(%Dec(%Div(%Temp(),4),0.5))))
%Graph.Rect(3,96,57,124,1,0)
%Graph.Pen(%xPos(),%yPos(),1)
%Loop.For(C,0,24)
{
  %Assign(yPos,%CPULoad(%C()))
  %Graph.LineTo(%xPos(),%yPos(),1)
  %Graph.Pen(%xPos(),%yPos(),1)
  %Assign(xPos,%Inc(%xPos(),2))
}
%If(%xPos() > 54 )Then {%Assign(xPos,6)}
#EndGfxMode
#2
Please help! Ich habe keine Ahnung davon sad.gif
#3
Kann mir echt keiner helfen??
#4
puuhh also ich musste auch erstmal ne halbe stunde durchdenken was da gemacht wird. die berechnung des graphen is mir absolut nicht einleuchtend, hab das also umgeschrieben. hier meine loesung basierend auf deinem geposteten beispiel:

CODE

#Header
%Common.SetPriority(1000)

/change values of these vars to customize output/
%DefVar(xOffset,Local = 0)
%DefVar(yOffset,Local = 0)
%DefVar(AreaHeight,Local = 28)

/vars used for drawing graph/
%DefList(CPULoad,Local)
%DefVar(xPos,Local)
%DefVar(yPos,Local)
%DefVar(Counter,Local = 1)
%DefVar(LastTimeStamp,Local=0)
%DefVar(Temp,Local  = 0)
#EndHeader

#GfxMode
/store current cpu usage to temp/
%Assign(Temp,%System.CPU(Usage))

/initialize list with cpu load values/
%If(%List.Count(CPULoad) = 0) Then
 {%Loop.For(C,0,24){%List.Add(CPULoad,%Dec(%Inc(%yOffset(),%AreaHeight()),3))}}
   
%Assign(yPos,%CPULoad(0))

/delete oldest cpu load value (is leftmost value in the graph)/
%List.Delete(CPULoad,0)

/add current cpu load value to list (is rightmost value in the graph)/
%List.Add(CPULoad,%Dec(
                    /calculate baseline ypos/
                    %Dec(%Inc(%yOffset(),%AreaHeight()),3),
                    /and decrement the calculated graph height depending on the areaheight/
                    %Round(%Div(%Mul(%Dec(%AreaHeight(),6),%Temp()),100))
                 )
        )

/draw rectangle surrounding graph, also clears graph/
%Graph.Rect(%xOffset(),%yOffset(),%Inc(%xOffset(),54),%Inc(%yOffset(),%AreaHeight()),1,0)

/draw graph/
%Assign(xPos,%Inc(3,%xOffset()))
%Graph.Pen(%xPos(),%yPos(),1)
%Loop.For(C,0,24)
{
 %Assign(yPos,%CPULoad(%C()))
 %Graph.LineTo(%xPos(),%yPos(),1)
 %Graph.Pen(%xPos(),%yPos(),1)
 %Assign(xPos,%Inc(%xPos(),2))
}
#EndGfxMode


:edit:

an die leute die scripte veröffentlichen:

bitte schreibt kommentare dazu. es versteht sonst kein mensch was ihr da schreibt wenn man nicht schon x jahre programmiert.
Current stable version of LCDHype: 0.7.6
New plugin: Notepad++ Bookmark Manager
New music: Nordwise - Empire transition
#5
Yeah immerhin schonmal aufn Display erkennbar, DANKESCHÖN
Und wie bekomm ich das nun auf die volle 128x64er Größe.
Wenn ich ja z.B. diese 54 Größe beim Rechteck ändere, wirds zwar nachunten größer, aber es füllt nicht bei 100%Auslastung das ganze rechteck aus. ihr versteht?
Und nach rechts müßte es ja auch noch vergrößert werden :S
#6
Hi,

Ich hab mal Versucht das Ganze in eine Funktion umzuwandeln.

Es funktioniert auch FAST alles.

Bin aber an einem Punkt angekommen, wo ich nicht weiter weis!

Der Graph is zu sehen, aber nur an der startposition,
d.h. die Werte werden nicht auf die länge angezeigt.
(quasi wie ne Bar Funktion)

Ich hab das script mal im anhang reingestellt
um mein problem zu verdeutlichen.

Bin fuer jeden Vorschlag, oder besser noch fuer jede Lösung dankbar


Attached Files
.sd   Funktionen.sd (Size: 4,93 KB / Downloads: 144)
#7
Kann mir keiner helfen? sad.gif sad.gif sad.gif sad.gif
#8
kannst du mal kurz erklären was diese linegraph funktion machen soll?
Current stable version of LCDHype: 0.7.6
New plugin: Notepad++ Bookmark Manager
New music: Nordwise - Empire transition
#9
HI biggrin.gif
also mein vorhaben ist folgendes:
den code, den du oben gepostet hast,
den wollte ich in eine funktion umwandeln.

die funktion soll aber im endeffekt genau
das zeigen, was dein script auch anzeigt,
den (z.b. cpu) graph. bloss das man
mit der "%linegraph" funktion das
variabel gestallten kann.

ich hab dein code als grundbasis genommen
und mehrmals mit meinem verglichen.
kann soweit keine unterschiede erkennen,
ausser das meins net funst blink.gif

CODE

#Code
%DefFunc(LineGraph=
           %DefVar(Xstart=%LineGraph->Para1())
           %DefVar(Ystart=%LineGraph->Para2())
           %DefVar(Width=%LineGraph->Para3())
           %DefVar(Height=%LineGraph->Para4())
           %DefVar(Design=%LineGraph->Para5())

     %DefList(CPULoad,Local)
     %DefVar(XCPU,Local)
     %DefVar(YCPU,Local)
     %DefVar(Temp=0)
     
%Assign(Temp,%LineGraph->Para0())

%If(%List.Count(CPULoad) = 0)
Then {%Loop.For(C,0,%Width()){%List.Add(CPULoad,%Dec(%Inc(%Ystart(),%Height()),3))}}    

%Assign(YCPU,%CPULoad(0))

%List.Delete(CPULoad,0)
%List.Add(CPULoad,%Dec(%Dec(%Inc(%Ystart(),%Height()),3),%Round(%Div(%Mul(%Dec(%Height(),6),%Temp()),100))))

%If(%LineGraph->Para5() = 0)
        Then {
        %Graph.Rect(%Xstart(),%Ystart(),%Inc(%Xstart(),%Inc(%Width(),6)),%Inc(%Ystart(),%Height()),1,0)
        %Assign(XCPU,%Inc(%Xstart(),3))
        %Graph.Pen(%XCPU(),%YCPU(),1)
        %Loop.For(C,0,%Width()){ %Assign(YCPU,%CPULoad(%C())) %Graph.LineTo(%XCPU(),%YCPU(),0) %Graph.Pen(%XCPU(),%YCPU(),1) %Assign(XCPU,%Inc(%XCPU(),1)) }
        }
       
%If(%LineGraph->Para5() = 1)
        Then {
        %Graph.Rect(%Xstart(),%Inc(%Ystart(),2),%Inc(%Xstart(),%Inc(%Width(),2)),%Dec(%Inc(%Ystart(),%Height()),2),1,1)
        %Assign(XCPU,%Inc(%Xstart(),1))
        %Graph.Pen(%XCPU(),%YCPU(),1)
        %Loop.For(C,0,%Width()){ %Assign(YCPU,%CPULoad(%C())) %Graph.LineTo(%XCPU(),%YCPU(),1) %Graph.Pen(%XCPU(),%YCPU(),0) %Assign(XCPU,%Inc(%XCPU(),1)) }
        }
       

           )            
#EndCode
#10
achsooo smile.gif

naja is ganz klar, du definierst ja in der funktion ne liste. d.h. sie is von der sichtbarkeit her eine lokale liste und wird somit beim beenden der funktion aus dem speicher entfernt. und das is auch der grund warum immer nur die rechte seite bei dir ausschlägt und der rest immer ganz unten hängt. da musst du wohl oder übel ne liste nehmen die im ganzuen script sichtbar is.

sichtbarkeit = gültigkeit (siehe hilfe)
Current stable version of LCDHype: 0.7.6
New plugin: Notepad++ Bookmark Manager
New music: Nordwise - Empire transition
#11
blink.gif ma so übersetzt,
ich lösch den Kram und nehm Dein code wink.gif

Thx 4 U h3lp
HaeDDe da sonst noch wochen geknobelt wink.gif
biggrin.gif
#12
QUOTE (speedyisoFF @ February 17, 2006 09:35 am)
blink.gif ma so übersetzt,
ich lösch den Kram und nehm Dein code wink.gif

Thx 4 U h3lp
HaeDDe da sonst noch wochen geknobelt wink.gif
biggrin.gif

Ich rall das nicht wie habt ihr das hinbekommen. Also das Script läuft bei mir. In der Grafik Ausgabe
von LCD Hype sieht alles richtig aus aber wenn ich das aufs LCD ausgebe bekomme ich einfach keine
Linie vom graphen gezeichnet man sieht auch das er da was macht aber irgendwie werden immer
wieder pixel ueberzeichnet. Auch bei der Version von Virus. Haengt das mit dem Alphacool display zusammen bzw. mit dem Treiber ??? Set ihr auf euren Display den Graphen genau so wie in der Vorschau ????
#13
...hatten wir erst dieses we, vieleicht probierst du das script mal:

http://lcdhype.condense.de/index.php?showt...indpost&p=27612

Das thema hier ist von 2006, ich weis garnicht mehr was sich seit dem alles geändert hat gg.
Current stable version of LCDHype: 0.7.6
New plugin: Notepad++ Bookmark Manager
New music: Nordwise - Empire transition


Forum Jump:


Users browsing this thread: 1 Guest(s)