Serial mit Eclipse

Gast #3455179
Lesenswert?

Hallo zusammen
ich versuche zwischen uC und PC eine verbindung über RS232 aufzubauen. 
Das Programm auf dem uC müsste laufen da alle Tests mit einem 
Terminalprogramm erfolgreich waren. Jetzt möchte ich aber nicht immer 
nur einzelne werte die durch das terminalprogramm erzeugt werden vom uC 
verarbeiten lassen. Ich möchte dass da ein Kompletter Datenstrom 
ankommt.
Ich denke dass ich am besten mit java auf den COM Port zugreifen könnte 
und da dann ein eigens Protokoll schreiben müsste.
In der java Class Documentation habe ich auch schon nach Hinweisen 
gesucht wie ich das realisieren könnte. So wie ich das sehe müsste alles 
notwendige zur uart kommunikation unter java.io.* liegen. Jedoch finde 
ich nicht Operationen in denen man zum Beispiel die Baudrate setzt.
Meine Frage ist also: wie realisiert man eine einfachst Datenausgabe in 
java?
LG
Steve
Gast #3455288
Lesenswert?

schön dass du dir erlaubst meine leitung zu beurteilen.
ich kann alleine googlen und bin auch des lesens mächtig. dennoch bin 
ich nicht auf der suche nach irgendwelchen links mit denen andere user 
wahllos rumwerfen.
ich habe mit bedacht dieses forum ausgewählt , da ich der annahme war 
dass hier hilfsbereite und erfahrene user ihr wissen teilen und mir als 
anfänger unter die arme greifen würden und persönliches wissen 
weitergeben würden.
c-hater, was ist der ansporn deines posts ? mir hilft dein link 
überhaupt nicht... postes du dass nur damit du weisst dass du jemanden 
erniedrigt hast ?
#3455515
Lesenswert?

Steve schrieb:
> mir hilft dein link überhaupt nicht...

Dann hast du dir den Link nicht wirklich angeschaut. Mit zwei Klicks 
weiter ("Java Communications 3.0 API", "SerialPort") landest du auf 
dieser Seite:

http://docs.oracle.com/cd/E17802_01/products/products/javacomm/reference/api/javax/comm/SerialPort.html

Dort sind alle Funktionen der Class SerialPort beschrieben, unter 
anderem auch "setSerialPortParams", mit der man genau das machen kann 
was du suchst:

> Jedoch finde
> ich nicht Operationen in denen man zum Beispiel die Baudrate setzt.

Also was genau ist dein Problem?
Gast #3455522
Lesenswert?

>Dort sind alle Funktionen der Class SerialPort beschrieben, unter
>anderem auch "setSerialPortParams", mit der man genau das machen kann
>was du suchst:

Am hilfreichsten wäre es natürlich, wenn Du einen Link auf eine 
Demo-Implemntierung posten könntest, so wie ich es für rxtx gemacht 
habe.
#3455531
Lesenswert?

chris_ schrieb:
> Am hilfreichsten wäre es natürlich, wenn Du einen Link auf eine
> Demo-Implemntierung posten könntest

Was ist daran so schwer, einfach in Google "java SerialPort example" 
einzutippen? Da ist der erste Treffer (mit Beispiel):
http://www.mikrocontroller.net/articles/Serielle_Schnittstelle_unter_Java

Das dauert deutlich weniger als die Zeit, die man braucht, um hier im 
Forum eine Frage zustellen.

Das Forum ist vor allem dazu gut geeignet, um bei speziellen Problemen 
Fragen zu stellen, die einem Google nicht beantworten kann. Dann sollte 
man dieses spezielle Problem aber auch möglichst gut beschreiben, damit 
auch eine passende Antwort kommt.

Auf allgemeine Fragen wie in diesem Thread hier kommt selten eine gute 
Antwort.
Gast #3455660
Lesenswert?

@johannes e.
danke dass du meine frage schonmal etwas ausfürlicher beantwortest hast. 
das hat mir schonmal geholfen. jetzt zu den detaillierten fragen :
wo gibt man an auf welchen port der der computer das signal senden soll 
(COM1,COM3,...)
und wie sendet man nachher schlicht und einfach ein byte. in anderen 
klassendokumentationen habe ich schon operationen gefunden wie z.B. 
writeData(int byte) oder ähnliches. wie realisiert man das in der klasse 
auf die dein link verweist ?
#3455696
Lesenswert?

Steve schrieb:
> wo gibt man an auf welchen port der der computer das signal senden soll
> (COM1,COM3,...)

Da du nach "COM1,COM3,..." fragst, vermute ich, dass du unter Windows 
arbeitest? Die Bibliothek von Sun unterstützt nur Linux und Unix, unter 
Windows musst du "RXTX" verwenden.

Der Zugriff auf serielle Schnittstellen und andere Hardware 
unterscheidet sich zwischen Windows und Linux zum Teil beträchtlich, du 
solltest also bei solchen Fragen immer angeben, was für ein 
Betriebssystem du verwendest.

Die Klasse "SerialPort" ist abgeleitet von "CommPort".
http://docs.oracle.com/cd/E17802_01/products/products/javacomm/reference/api/javax/comm/CommPort.html

Dort steht:

... an application should use the static method 
CommPortIdentifier.getPortIdentifiers to generate a list of available 
ports. It then chooses a port from this list and calls 
CommPortIdentifier.open to create a CommPort object.

Hier im Beispiel kannst du dir das im Quelltext anschauen:
http://www.mikrocontroller.net/articles/Serielle_Schnittstelle_unter_Java#Quelltext

In diesem Beispiel wird auch etwas über die Schnittstelle gesendet.
Gast #3455706
Lesenswert?

ich arbeite mit win8 und als programmieroberfläche benutze ich eclipse.
die seite mit den beispielquellcodes habe ich mir auch schon angesehen. 
bei mir scheitert es schon am ersten kleinen programm "ErsteSchritte" . 
Es treten probleme mit import gnu.io.* auf. "the import gnu cannot be 
resolved" wird angezeigt. woran kann das liegen?
#3455710
Lesenswert?

Steve schrieb:
> Es treten probleme mit import gnu.io.* auf. "the import gnu cannot be
> resolved" wird angezeigt. woran kann das liegen?

Hast du die Bibliothek installiert?


So wie du deine Fragen stellst, vermute ich, dass du noch nicht sehr 
viel Erfahrung mit Programmierung in Java hast.

Ich will dich auch nicht davon abhalten, Java dafür zu verwenden; für 
solche Projekte wie z.B. zur Kommunikation mit Mikrocontrollern sind 
Skript-Sprachen wie z.B. Python aber auch sehr gut geeignet.

Da würde das z.B. so aussehen:
1
import serial
2
Port = serial.Serial(0)
3
Port.write("Hallo")

Ausfühliche Doku:
http://pyserial.sourceforge.net/shortintro.html#opening-serial-ports

Vielleicht wäre das eine Alternative für dich.
Gast #3455722
Lesenswert?

wie installiere ich die bibliothek denn ?
java.util.Enumeration habe ich dann anscheinend korrekt installiert,weil 
da keine meldung kommt.beim dialog der kommt wenn man eine neue klasse 
erzeugt habe ich enumeration unter "Interfaces" hinzugefügt . "gnu" habe 
ich da nicht gefunden. oder wie geht das mit dem installieren der 
bibliothek ?
Gast #3455749
Lesenswert?

finde ich ja ganz toll dass du das jetzt für mich gegooglst hast,aber 
auf so einen kommentar kann ich auch verzeichten. denkst du ich bin 
komplett dumm ?
ich versuche hier was neues zu lernen wovon ich noch nicht viel weiss. 
ich weiss wie man google benutzt. ich bin nicht auf der suche nach 
irgendwelchen links wo auf englisch erklärt wird wie man das macht. dann 
könnte ich das mit dem forum auch lassen. ich suche nach meinungen und 
tipps von erfahrenen die mir in eigenen worten einen lösungsansatz 
präsentieren können und nicht nach leuten die mich beleidigen.
Gast #3455762
Lesenswert?

Die Qualifikation eines fragenden erkennt man primär an seinen 
Fragestellungen.

1. Es gibt tausende Beispielcodes für RXTX
2. Du willst vorgekaute Brühe haben ohne ein Stück Eigeninitiative zu 
zeigen

Wir sind hier keine bezahlten Beamten die dir das Denken abnehmen 
werden.

Ich habe das Problem fuer mich in 10 Sekunden gelöst.

1. Google: rxtx java example code
2. Erster Hit auf Google: http://rxtx.qbang.org/wiki/index.php/Examples
Gast #3455770
Lesenswert?

wie schon gesagt: ich suche nach persönlichen erfahrungen.
ich habe rxtx installiert so wie es auf der seite bechriben war. jedoch 
habe ich keine datei mit dem namen RXTXcomm.jar gefunden.war das bei 
euch ähnlich ? und wenn ja was habt ihr dann gemacht ? natürlich findet 
mein eclipse gnu.io.* auch jetzt nicht.
Oder habe ich das von anfang an falsch aufgezogen?
ich ertstelle ein project in eclipse und dann im project eine klasse die 
z.B. ErsteSchritte heisst. muss ich im dialog "new java class" jetzt 
noch irgendwas außer den namen verändern ?
Persönliche Seite #3456096
Lesenswert?

Steve schrieb:
> ich suche nach persönlichen erfahrungen.

Meine persönliche Erfahrung: Wenn man die Grundlagen von Java beherrscht 
ist RXTX zumindest erst mal recht einfach einzubinden.

Wenn man dann noch Eventbasierte Programmierung verstanden hat ist die 
Nutzung Problemlos.

Wenn es bei dir aber schon am einbinden einer Lib in Eclipse scheitert, 
solltest du dich erst mal diesem "Problem" zuwenden, da helfen dir auch 
nicht 100 Beispielcodes.
Gast #3456201
Lesenswert?

Steve schrieb:
> ich ertstelle ein project in eclipse und dann im project eine klasse die
> z.B. ErsteSchritte heisst. muss ich im dialog "new java class" jetzt
> noch irgendwas außer den namen verändern ?

Tut mir leid wenn ich dich jetzt hart mit der Realität konfrontiere:

Die fehlen die fundamentalsten Kenntnisse in Java. Vielleicht solltest 
du mit einem Buch und Hello World beginnen.

Du kannst kein Dach auf ein Haus setzen ohne ein stabiles Fundament zu 
haben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren