mikrocontroller.net

Forum: PC-Programmierung Ist Java eine geeignete Sprache für Win-PC mit USB?


Autor: Besteck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin moin,
ich komme aus der Delphi-Ecke und soll/muss mich auf eine 
zukunftsträchtigere Sprache umorientieren, welche 2 Anforderungen 
abdeckt:

- Win-PC mit USB Schnittstelle
- Android (einfache Apps)

Da fällt mir als Dino-Programmierer mit wenig Kontakt zu aktuellen 
Trends nur Java ein.

Für Android ist das offenbar die erste Wahl?

Für den Win-PC sieht das wohl anders aus, wenn ich nach USB und Java 
google.
Das ist wohl nicht so astrein in Java integriert (wegen der 
plattformübergreifenden Portierbarkeit) sondern nur über 
Fremdbibliotheken machbar???
Die Anforderungen an USB sind unterstes Level und nur für geringste 
Datenraten, also ein USB 1.1 - Niveau würde vollkommen reichen.

Bin ich mit Java auf dem Holzweg oder setze auf ein altes oder falsches 
Pferd?
Kann mir jemand den Kopf waschen  Erleuchtung bringen  mich auf einen 
komplett anderen Pfad führen?

Cheers,
das Besteck

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um die USB-Schnittstelle kümmert sich nicht Deine Programmiersprache, 
sondern die Devicetreiber des Betriebssystems.

Was hast Du vor?

Autor: Besteck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke das ist mir klar.
Nur scheint mir die Ansteuerung der USB-Hardware über diese Treiber von 
Java nicht sonderlich gefördert zu sein. Vermutlich weil es einfach 
keine hardwarenahe Sprache ist.
Aber irgendwelche Libraries sollte es dafür dennoch geben? Idealerweise 
eben "offizielle" und keine "Bastellösungen".

Die Anwendung:
Datenanbindung an µC-Board. War früher mal nur per RS232, ist 
mittlwerweile mit FTDI-Konverter gelöst und soll nun endlich direkt 
gemacht werden.
Die Datenmengen und Datenraten sind gering und auch nur sporadisch.
Könnte also per HID oder CDC locker realisiert werden.

Ehrlich gesagt kenne ich auch keine Software, welche mit Java 
geschrieben ist und eine native USB-Konnektivität unterstützt.
Aber ich kenne eben generell nicht viel was so an der modernen 
Software-Front passiert.

Autor: Manuel K. (manuel1139)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Android verwendet zwar Java - läuft aber nicht in einer VM. Das Android 
SDK besitzt bereits eine HID API. Das größere Problem sehe ich 
allerdings darin, dein Gerät native USB zu machen...

: Bearbeitet durch User
Autor: d.o. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Moin,

ich nutze Java seit Jahren professionell. Mein letztes Projekt benötigte 
u.a. eine Anbindung eines Barcode-Scanners und sollte unter Win und OSX 
laufen. Genutzt hab ich Java mit Java-FX für die UI und die comm-api 
(http://www.oracle.com/technetwork/java/index-jsp-141752.html) für die 
Anbindung des Scanners als serielles device. Und für die USB-Variante 
gab es http://usb4java.org/index.html.

Wenn Du "nur" einen µC anbinden möchtest, solltest Du mit o.g. Dingen 
schon ausreichend Werkzeuge im Besteckkasten haben ;-)

Java als Sprache passt schon.

Grüße!

Autor: Besteck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke d.o.!
Das ist doch mal eine Aussage.

@ Manuel Kampert:
Da habe ich mich vorher vielleicht nicht klar ausgedrückt.
Ich benötige für Android keine USB-Funktionalität - muss das nur eben 
auch machen (Datenanbindung via Bluetooth). Und da ist die Sprachwahl 
mit Java sicher nicht ganz verkehrt.

Gruß,
das Besteck

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besteck schrieb:
> Die Datenmengen und Datenraten sind gering und auch nur sporadisch.
> Könnte also per HID oder CDC locker realisiert werden.

Man wird doch von Java aus HID-Geräte und serielle Schnittstellen 
ansprechen können?

> Ehrlich gesagt kenne ich auch keine Software, welche mit Java
> geschrieben ist und eine native USB-Konnektivität unterstützt.

Du brauchst keine "native USB-Konnektivität". Um das USB kümmert sich - 
wie schon gesagt wurde - das Betriebssystem. Wenn dein Gerät sich als 
HID anmeldet, musst du Zugriff auf Eingabegeräte bekommen. Deinem Java 
ist dabei aber wurscht, dass das per USB angebunden ist.
Bei CDC gilt das gleiche. Ist für dein Programm einfach eine klassische 
serielle Schnittstelle.

Autor: Besteck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke.
Also ich bleibe dann bei diesem Schritt.
Es gibt doch noch eineige Aktivität, um USB per JAVA zu nutzen.

Für andere Interessenten:
Neben dem Tip von d.o. habe ich auch noch Infos über eine "jna-Library" 
gefunden, welche mir hier perfekt erscheint:

https://github.com/nyholku/purejavahidapi
https://github.com/java-native-access/jna
http://www.blog.kslemb.com/doku.php/en/projects/gl...

Nochmal vielen Dank an alle Kommentatoren!

Gruß vom Besteck, das den Löffel noch nicht abgibt!

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn Dein Problem USB unter Delphi anzusprechen?
Unterstützung dazu gibt es genug.
Wegen USB jetzt umzusatteln finde ich nicht besonders stichhaltig.

Autor: Besteck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie im ersten Post gleich anfangs beschrieben muss ich auch Android Apps 
schreiben.
Damit ist der Schritt Richtung Java vorgezeichnet.

Ich finde Delphi klasse, fürchte aber, dass ich ich den Zug verpasse in 
Richtung aktuelle Programmiertrends.
USB habe ich mit Delphi übrigens schon erfolgreich gemacht.
Aber wie heißt es immer (Gorbatschow lässt am Tag der deutschen Einheit 
grüßen): Wer zu spät kommt, den bestraft das Leben.
Und ich glaube, ich bin schon fast(!) zu spät dran.

Sicherlich gibt es im neuesten RAD Studio auch Android Unterstützung - 
aber warum mit aller Gewalt an alten Zöpfen festhalten bis entweder die 
Zöpfe reissen oder die Kraft ausgeht...

Das Besteck

Autor: Jonas B. (jibi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was ist denn Dein Problem USB unter Delphi anzusprechen?
>Unterstützung dazu gibt es genug.

Ja aber ob man das mit der Java-Community vergleichen kann, die ist 
rießig.

Gruß J

Autor: Dorian H. (dorianh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C# wäre noch interessante Alternative für dich. Sehr gut aufgebaute 
Sprache und unter Windows würde ich C# gegenüber Java vorziehen (API, 
Visual Studio). Läuft mit xamarin auch auf Android. Jedoch in der 
Performance und API bei Android nicht auf Java Niveau. Wenn du ziemlich 
anspruchsvolle Android Apps baust ist Java klar Favorit, ansonsten lohnt 
sich das auf jeden Fall C# anzusehen.

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.