mikrocontroller.net

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


Autor: befro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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
public class MyDevice extends Device {
    private void blabla() {
        //Meine Tolle Extra funktion
    }

    @Override
    public CapturedData run() throws IOException, InterruptedException {
        //Tue etwas...
        
        
    }
}
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)

Autor: befro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: befro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
package org.sump.analyzer;
import java.io.IOException;

public class SimulatedDevice extends Device {
    @Override 
    public CapturedData run() throws IOException, InterruptedException {
    int samples = 512;
    int[] buffer = new int[samples];
    
    int n;
    for(n=0;n<samples;n++) buffer[n]=n;
    int pos=0;
    int rate=1000; // Hz
    int channels=8;
    return (new CapturedData(buffer, pos, rate, channels, channels));  
  }
}

Autor: befro (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank K. (frank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

die neuesten Sourcen befinden sich auf

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

Autor: Jörg (Gast)
Datum:

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

Autor: befro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

meine Sourcen habe ich von
http://www.sump.org/projects/analyzer/downloads/la...
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?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: befro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/DS...

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Michael Kentschke (mad_axe)
Datum:

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

Gruss
Micha

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.