Fahrgastinformation - Plugin Vorschau
Moderatoren: Stellwerk-Admin, Moderatoren
Re: Fahrgastinformation - Plugin Vorschau
Also das, was die Klasse Timer (http://download.oracle.com/javase/6/doc ... Timer.html) etwas eleganter löst, nicht durch warten sondern durch gezieltes Aufrufen. Für Nicht-Swing Operationen ist sie ohnehin besser geeignet als der Swing-Timer, der immer im Event-Thread läuft. Er läuft auch genauer.
Hier würde eine Signatur stehen. Beachtet eh keiner, wozu also.
Re: Fahrgastinformation - Plugin Vorschau
Kann ich nur bestätigen.abrixas hat geschrieben:Habe es bei mir probiert, egal welches Tempo, die Laufschrift springt im Takt weiter (zwischen 1-2 sec).
Wenn das Tool läuft (Start) ist ein Kern bei 100 %.
Mac OS 10.6.6
Re: Fahrgastinformation - Plugin Vorschau
So dann habe ich das jetzt nochmal mit util.Timer.
Sowie etwas modifiziertem Menü.
http://www.file-upload.net/download-324 ... n.jar.html
Hoffe das mit den 100% ist weg.
Bitte mal nachsehen.
Sowie etwas modifiziertem Menü.
http://www.file-upload.net/download-324 ... n.jar.html
Hoffe das mit den 100% ist weg.
Bitte mal nachsehen.
Euer Matthias ♂
R-Admin:
Fernverkehrsteam: Niederlande
R-Admin:
Fernverkehrsteam: Niederlande
-
- Beiträge: 3769
- Registriert: Mi Sep 19, 2007 10:19 am
Re: Fahrgastinformation - Plugin Vorschau
Kannst Du ja auch mal auf den SVN-Server packen. Siehe unter: http://www.stellwerksim.de/forum/viewto ... 17#p125817
--- Hier wird gebuddelt. ---
Re: Fahrgastinformation - Plugin Vorschau
Stehe schon mit js im Kontakt.
Will mir dort was anlegen.
Will mir dort was anlegen.
Euer Matthias ♂
R-Admin:
Fernverkehrsteam: Niederlande
R-Admin:
Fernverkehrsteam: Niederlande
Re: Fahrgastinformation - Plugin Vorschau
Hi,
Nach dem öffnen des Programms, sorgt es für ca 6% CPU-Auslastung. Nach klicken auf 'Start' kommt es auf ca. 36% bei Tempo 25 (variiert je nach Geschwindigkeit des Textes. Schneller Text = Höhere Auslastung; Langsamer Text = Niedrigere Auslastung). Die Darstellung ist nun jedoch flüssig, und gut lesbar.
Gruß John
EDIT: Beim Tempo 50 liegt die CPU Auslastung nur noch bei 26%, bei Tempo 20 liegt sie bei 71%.
Nach dem öffnen des Programms, sorgt es für ca 6% CPU-Auslastung. Nach klicken auf 'Start' kommt es auf ca. 36% bei Tempo 25 (variiert je nach Geschwindigkeit des Textes. Schneller Text = Höhere Auslastung; Langsamer Text = Niedrigere Auslastung). Die Darstellung ist nun jedoch flüssig, und gut lesbar.
Gruß John
EDIT: Beim Tempo 50 liegt die CPU Auslastung nur noch bei 26%, bei Tempo 20 liegt sie bei 71%.
Re: Fahrgastinformation - Plugin Vorschau
Das ist dann leider sehr anhängig vom PC.
Habe aber auch die Erfahrung gemacht, dass MacOS irgendwie dazu neigt auch Werte über 100% anzuzeigen.
Heißt die Auslastung bedeutet dort war anderes, aber frage mich nicht was.
Ich bekomme bei Tempo 10 nichtmal 1% CPU hin.
Ist aber auch ein Intel Core 2 Quad Q9550 mit 4x2,83 GHz.
Wie sieht es bei anderen MacOS Nutzeren aus?
Habe aber auch die Erfahrung gemacht, dass MacOS irgendwie dazu neigt auch Werte über 100% anzuzeigen.
Heißt die Auslastung bedeutet dort war anderes, aber frage mich nicht was.
Ich bekomme bei Tempo 10 nichtmal 1% CPU hin.
Ist aber auch ein Intel Core 2 Quad Q9550 mit 4x2,83 GHz.
Wie sieht es bei anderen MacOS Nutzeren aus?
Euer Matthias ♂
R-Admin:
Fernverkehrsteam: Niederlande
R-Admin:
Fernverkehrsteam: Niederlande
-
- Beiträge: 3769
- Registriert: Mi Sep 19, 2007 10:19 am
Re: Fahrgastinformation - Plugin Vorschau
Vielleicht solltest Du die Anwendungen auch mal unter anderen Umgebungen testen. Hat ja nicht jeder direkt einen Quad-Core da stehen. Und mit einer virtuellen Maschine solltest Du alle Betriebssysteme auch testen können.
--- Hier wird gebuddelt. ---
Re: Fahrgastinformation - Plugin Vorschau
Hi,
Ich möchte noch hinzufügen das mein Mac einen 2.53 GHz Intel Core 2 Duo Prozessor hat. Zwar schon 1 1/2 Jahre alt, läuft aber immer noch super.
Ich vermute mal das eine CPU Auslastung bei über 100% beim Mac eventuell mit einer 'Turboboost' Funktion (Übertaktung einzelner Kerne der CPU) des Prozessors zusammenhängt.
Gruß John
Ich möchte noch hinzufügen das mein Mac einen 2.53 GHz Intel Core 2 Duo Prozessor hat. Zwar schon 1 1/2 Jahre alt, läuft aber immer noch super.
Ich vermute mal das eine CPU Auslastung bei über 100% beim Mac eventuell mit einer 'Turboboost' Funktion (Übertaktung einzelner Kerne der CPU) des Prozessors zusammenhängt.
Gruß John
Re: Fahrgastinformation - Plugin Vorschau
Mache das Zeichnen mit repaint.
Gibt es da was sparsameres?
Man möge sich auch den Quelltext dazu ansehen.
Entweder in SVN oder hier:
Unter AMD Turion 64 x2 TK- 57 2x1.9 MHz komme ich bei Tempo 25 auch auf 30% CPU.
Gibt es da was sparsameres?
Man möge sich auch den Quelltext dazu ansehen.
Entweder in SVN oder hier:
Code: Alles auswählen
public void paint( Graphics g ){
if(erstesMal<2){
super.paint(g);
g.setColor(Color.DARK_GRAY);
g.fillRect(links-pG/2,oben-pG/2,pG*(pA+1),(pG*1)+(pG*7));
for(int i=0;i<pA;i++){
g.setColor(Color.GRAY);
for(int u=0;u<7;u++){
g.setColor(Color.GRAY);
g.fillOval(links+(i*pG),oben+(u*pG),pG,pG);
}
}
erstesMal++;
}
if(meinText.size()>1){
int textX;
for(int aktX = 0;aktX<100;aktX++){
textX = (aktX+untereGrenze)%meinText.size();
boolean[] aktSpalte = (boolean[]) meinText.get(textX);
for(int u=0;u<aktSpalte.length;u++){
if(aktSpalte[u]){
g.setColor(Color.YELLOW);
g.fillOval(links+(aktX*pG),oben+(u*pG),pG,pG);
}
else{
g.setColor(Color.GRAY);
g.fillOval(links+(aktX*pG),oben+(u*pG),pG,pG);
}
}
}
}
}
Euer Matthias ♂
R-Admin:
Fernverkehrsteam: Niederlande
R-Admin:
Fernverkehrsteam: Niederlande
-
- Beiträge: 3769
- Registriert: Mi Sep 19, 2007 10:19 am
Re: Fahrgastinformation - Plugin Vorschau
Was mir jetzt beim "nur" überfliegen auffällt ist, daß die Variablen-Namen nicht selbsterklärend sind. Kommentare, was da passiert stehen auch nicht dabei.
--- Hier wird gebuddelt. ---
Re: Fahrgastinformation - Plugin Vorschau
Dann hier mal was ausführlicher:
Code: Alles auswählen
private ArrayList meinText = new ArrayList();
private Alphabet meinAlphabet = new Alphabet();
private int oben = 105; // Abstand von oben
private int links = 35; // Abstand von links
private int pG = 4; // LED (Punkt) Größe
private int pA = 100; // LED (Punkt) Anzahl in x-Richtung
private int delay = 25; // Laufgeschwindigkeit
private boolean laeuft = false; // Läuft das Band
private int untereGrenze = 0; // erstes anzuzeigendes Zeichen
private ArrayList eintraege = new ArrayList(); // Verzeichnis mit den Einträgen und deren unterer Grenze
private Timer t; // Timer für das Laufen
private boolean erstesMal; // schauen ob paint() schonmal durchlaufen
@Override
public void paint( Graphics g ){
if(erstesMal){ // Wird benötigt um die leere Anzeige zu zeichen, wenn es erstes Mal ist
super.paint(g); // Zeichnet Schaltflächen etc.
g.setColor(Color.DARK_GRAY); // setzt die Stiftfarbe auf Dunkelgrau
g.fillRect(links-pG/2,oben-pG/2,pG*(pA+1),(pG*1)+(pG*7)); // Zeichnet den Hintegund der Anzeige
for(int i=0;i<pA;i++){ // Schleife für Splaten der Anzeige (links --> rechts)
g.setColor(Color.GRAY); // setzt die Stiftfarbe auf Grau
for(int u=0;u<7;u++){ // Schleife für Zeilen der Anzeige (oben --> unten)
g.fillOval(links+(i*pG),oben+(u*pG),pG,pG); // Zeichnet Punkt AUS
}
}
erstesMal = false ; // erstesMal auf false, damit nicht nochmal durchlaufen wird
}
if(meinText.size()>1){ // Wenn Text zum schreiben vorhanden
int textX; // x-Position (Spalte) im gesamten Text
for(int aktX = 0;aktX<pA;aktX++){ // Schleife für Splaten der Anzeige (links --> rechts)
textX = (aktX+untereGrenze)%meinText.size(); // Wenn Ende vom gesamten Text erreicht, wieder beim Ersten zeichen beginnen
boolean[] aktSpalte = (boolean[]) meinText.get(textX); // Liest aktuell zu zeichnende Spalte in aktSplate ein
for(int u=0;u<aktSpalte.length;u++){ // Zeichnet untereinander die LED's bis unterste Zeile von aktSpalte
if(aktSpalte[u]){ // Wenn die LED an ist
g.setColor(Color.YELLOW); // setz die Stiftfarbe auf Gelb
g.fillOval(links+(aktX*pG),oben+(u*pG),pG,pG); // zeichnet LED
}
else{ // Wenn die LED aus ist
g.setColor(Color.GRAY); // setz die Stiftfarbe auf Grau
g.fillOval(links+(aktX*pG),oben+(u*pG),pG,pG); // zeichnet LED
}
}
}
}
}
Euer Matthias ♂
R-Admin:
Fernverkehrsteam: Niederlande
R-Admin:
Fernverkehrsteam: Niederlande
Re: Fahrgastinformation - Plugin Vorschau
Komplexe Animationen sollte man grundsätzlich immer mit Double-Buffering machen. Also das Malen in einen Puffer und nur diesen dann in der paint-Funktion darstellen. Alleine das dürfte schonmal etliche Ausgabeprobleme beheben.
Hier würde eine Signatur stehen. Beachtet eh keiner, wozu also.
Re: Fahrgastinformation - Plugin Vorschau
Ich (=Null-Ahnung-Habenden von Java) erlaube mir mal jetzt ein kleines Feedback zu geben.
Ich finde die Idee nicht schlecht, macht Spaß ein wenig damit rumzuspielen
Was mir aufgefallen ist, dass die Anzeige keine Sonderzeichen wie . + etc. anzeigt. Evtl könnte man da entweder die Eingabe sperren oder es ermöglichen (vor allem der Punkt wäre meiner Meinung wichtig).
Außerdem ist zwischen zwei Nachrichten kein Abstand, die folgen direkt aufeinander ohne Leer. Evtl. Trennung mit +++ oder ähnliches würde sich anbieten, ich weiß es aber nicht, wie es in der Realität ist.
Sonst schauts super aus, und ich freu mich schon, wenn's komplett einsatzfähig ist! Mach(t) weiter so!
Ich finde die Idee nicht schlecht, macht Spaß ein wenig damit rumzuspielen
Was mir aufgefallen ist, dass die Anzeige keine Sonderzeichen wie . + etc. anzeigt. Evtl könnte man da entweder die Eingabe sperren oder es ermöglichen (vor allem der Punkt wäre meiner Meinung wichtig).
Außerdem ist zwischen zwei Nachrichten kein Abstand, die folgen direkt aufeinander ohne Leer. Evtl. Trennung mit +++ oder ähnliches würde sich anbieten, ich weiß es aber nicht, wie es in der Realität ist.
Sonst schauts super aus, und ich freu mich schon, wenn's komplett einsatzfähig ist! Mach(t) weiter so!
Mfg VT628
Ich bin zwar langsam, aber zuverlässig!
Ich bin zwar langsam, aber zuverlässig!