Forum: PC-Programmierung Java Oberfläche für Logik Analysator ( Open Sourcce )


von befro (Gast)


Lesenswert?

Hallo Zusammen,

gibt es hier im Forum ein paar Leute, die sich gut mit java auskennen?
Für einen kleinen Selbstbau Logik Analysator

Beitrag "Logic Analyser mit Pollin CPLD Board"

möchte ich eine Java-PC-Oberfläche anpassen

http://www.sump.org/projects/analyzer/downloads/la-src-0.8.tar.bz2

Jetzt stellt sich die Frage, wie man das am besten macht. Die Klasse für 
die Kommunikation mit der Hardware über die serielle Schnittstelle heist 
"Device.java". Dort gibt es ein Funktion "run()" welche die 
Konfiguration zum Logikanalysator überträgt und von dort die Messdaten 
abholt.

Jetzt könnte ich einfach die "run()" Funktion per Spaghetticode-Eingriff 
verändern. Damit scheinen mir allerdings die Vorteile der 
Objektorientierten Programmierung vertan. Wie kann man es besser machen?

Besten Dank im Vorraus für die Hilfe,

befro

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hm.. also ich kenn mich shcon etwas besser mit Java aus ;)

Naja der Code ist nicht soooo optimal aufgebaut das könnte man besser 
machen, z.B. durch eine Abstrakte Klasse, egal.

Objektorientierter Ansatz: Du erstellst eine Klasse
1
public class MyDevice extends Device {
2
    private void blabla() {
3
        //Meine Tolle Extra funktion
4
    }
5
6
    @Override
7
    public CapturedData run() throws IOException, InterruptedException {
8
        //Tue etwas...
9
        
10
        
11
    }
12
}
Jezt müßtest du schauen wo das Device erzeugt wird und dort einfach dein 
"MyDevice" erzeugen, oder als zusätzliche Auswahl hinzufügen, oder oder 
oder ;)
Wenn du willst könnt ich dich da etwas unterstützen, habe aber selber 
leider kein Pollinboard um das Aktiv zu testen (könnte höchstens 
versuchen das auf nem Spartan3 zu portieren)

von befro (Gast)


Lesenswert?

Hey, super, das klingt gut.
>Jezt müßtest du schauen wo das Device erzeugt wird und dort einfach dein
>"MyDevice" erzeugen, oder als zusätzliche Auswahl hinzufügen, oder oder
>oder ;)

Hmm, könnte man dann nicht genausogut einfach die Funktion "run()" durch 
eine Funktion "run2()" in Device ersetzten?
Ich werde mal versuchen herauszufinden, wo die Klase Device instanziert 
wird.

>Wenn du willst könnt ich dich da etwas unterstützen, habe aber selber
>leider kein Pollinboard um das Aktiv zu testen (könnte höchstens
>versuchen das auf nem Spartan3 zu portieren)

Darüber würde ich mich sehr freuen. Ich würde gerne der Einfachheit 
halber erst einmal eine Simulation einbauen, sodass das Programm auch 
ohne angeschlossene Hardware laufen kann, d.h. die Funktion run() kann 
einfach mal künstlch erzeugte Werte zurückgeben.

von befro (Gast)


Lesenswert?

Hallo Läubi,

dank Deines Tipps bin ich schon mal ein Stück weiter gekommen. Ich habe 
ein neues Device "SimualatedDevice" erstellt. Es muss in der Klasse 
"DeviceController" eingebunden werden.
Das Javaprogramm läuft damit. Es werden die Zählersignale auf dem 
Bildschirm bei einer Abtastfrequenz von 1Khz dargestellt.
1
package org.sump.analyzer;
2
import java.io.IOException;
3
4
public class SimulatedDevice extends Device {
5
    @Override 
6
    public CapturedData run() throws IOException, InterruptedException {
7
    int samples = 512;
8
    int[] buffer = new int[samples];
9
    
10
    int n;
11
    for(n=0;n<samples;n++) buffer[n]=n;
12
    int pos=0;
13
    int rate=1000; // Hz
14
    int channels=8;
15
    return (new CapturedData(buffer, pos, rate, channels, channels));  
16
  }
17
}

von befro (Gast)


Angehängte Dateien:

Lesenswert?

Hier die Version 1.0 des Java-Programms.

Es ist ein Eclipse-Projekt. Leider weiss ich nicht, wie man es für den 
Desktop ausführbar macht.

Das Programm funktioniert, das Jedec-File für das Pollin-CPLD ist auch 
enthalten. Es werden im Moment nur 128 Werte übertragen und die 
Abtastrate ist fest auf 2MHz eingestellt.

von Frank K. (frank)


Lesenswert?

Hi,

die neuesten Sourcen befinden sich auf

http://sourceforge.net/projects/jlac/

von Jörg (Gast)


Lesenswert?

Aaah ja, man findet die sourcen dort, wenn man ins SVN geht .. z.b. über 
http://jlac.cvs.sourceforge.net/viewvc/jlac/client/

von befro (Gast)


Lesenswert?

Hallo Frank,

meine Sourcen habe ich von
http://www.sump.org/projects/analyzer/downloads/la-src-0.8.tar.bz2
heruntergezogen. Ich nehme an, Du bist einer der Entwickler, die auf 
Sourceforge arbeiten.

@Jörg
>Aaah ja, man findet die sourcen dort, wenn man ins SVN geht .. z.b. über
>http://jlac.cvs.sourceforge.net/viewvc/jlac/client/

Auf der Sourceforgeseite kann man sich nur die einzelnen Files 
runterziehen, was ich ziemlich mühselig finde. Hier wäre es besser, wenn 
man das Packet als ganzes ( wie sonst auf Sourceforge üblich ) 
herunterziehen könnte.
So weit ich es einschätzen kann, sind die Sourcen auf Sourceforge 
tatsächlich neuer, weil bei den Devices ein zweiter Logikanalysatortyp 
eingebunden wird.

An die Java-Experten:
Wie mache ich aus meinem Eclipseprojekt ein JAR-File bei dem auch RXTX 
schon  eingebunden ist und eine start.bat Datei, sodass die User das 
Ganze einfach durch Mausklick ohne große Installation starten können?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Das geht so einfach nicht...
Du kannst dir aber JSmooth runterladen, dort das RXTX Paket als 
zusätliche Libary einbinden, dann muß man nurnoch das RXTX Paket+DLL und 
die erzeugte Exe in einem Ordner sein.

von befro (Gast)


Lesenswert?

>Das geht so einfach nicht...

Meinst Du wirklich? Ich glaube Malte hat es mit seinem Programm ganz gut 
geschaFft

http://www.mikrocontroller.net/attachment/48244/DSOControl-0.01.zip

blos weis ich leider nicht, wie man Eclipse dazu überredet, das ganz 
Projekt inclusive RXTX zu exportieren um es ähnlich wie Malte 
hinzukriegen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Was Malte gemacht hat ist das ganze als ZIP Datei zu exportieren... klar 
ist das "eine Datei" aber ausführen durch Doppelklick ist da nicht. Wenn 
du es so wie Malte machen willst, warum nimmst du dann nicht seins als 
Vorlage? Da ist ja sogar schon ne BatchDatei incl. Aufruf dabei...

von Michael K. (mad_axe)


Lesenswert?

abo ...weil ich das Pollin board bestelle und Java nun schon seit 
Ewigkeiten programmiere. Mal sehen ob ich was weitermachen kann.

Gruss
Micha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.