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
:
Verschoben durch User
Steve schrieb: > Meine Frage ist also: wie realisiert man eine einfachst Datenausgabe in > java? http://www.oracle.com/technetwork/java/index-jsp-141752.html Das konntest du nicht alleine ergoogeln? Schwache Leistung...
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 ?
Hallo Steve, vor einiger Zeit habe ich auch schon mit Java die serielle Schnittstelle benutzt. Dort war rxtx die beste Wahl: http://rxtx.qbang.org/wiki/index.php/Main_Page
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?
>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.
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.
:
Bearbeitet durch User
Tja, da bleibt für mich noch die Frage offen: Was ist besser rxtx oder die Sun-API. Vor 5 Jahren war die SUN API noch unbrauchbar, wie ist das heutzutage?
@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 ?
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.
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?
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.
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 ?
Steve schrieb: > oder wie geht das mit dem installieren der bibliothek ? Du solltest dich wirklich mal mit Google vertraut machen: http://rxtx.qbang.org/wiki/index.php/Installation http://rxtx.qbang.org/wiki/index.php/Installation_for_Windows
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.
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
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 ?
Wenn du die DLLs gefunden hast, solltest du auch die jar-Datei finden. Ansonsten einfach gooogeln!
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.
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.
jo das is mal ne aussage . danke dafür ! welches buch könntest ihr mir denn empfehlen ?
Steve schrieb: > welches buch könntest ihr mir denn empfehlen ? Dein ernst...? Google hilft dir da sehr gerne weiter... http://openbook.galileocomputing.de/javainsel/ musst nicht mal was fuer bezahlen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.