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
Um die USB-Schnittstelle kümmert sich nicht Deine Programmiersprache, sondern die Devicetreiber des Betriebssystems. Was hast Du vor?
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.
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
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!
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
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.
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/globx/java_hid Nochmal vielen Dank an alle Kommentatoren! Gruß vom Besteck, das den Löffel noch nicht abgibt!
Was ist denn Dein Problem USB unter Delphi anzusprechen? Unterstützung dazu gibt es genug. Wegen USB jetzt umzusatteln finde ich nicht besonders stichhaltig.
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
>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
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.
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.