Herausforderungen und alternative Forschung der Java Serial Communication Library RXTX

Ziel

Für diejenigen, die serielle Kommunikation mit Java wünschen. Ich selbst bin ein Software-Shop, weil IoT in den letzten Jahren populär geworden ist! Obwohl ich ein Amateur bin! Es fällt mir schwer, mit der elektronischen Arbeit zu beginnen (lacht) Der Text ist in der Stimmung eines einfachen Memorandums verfasst, daher denke ich, dass es einige Mängel oder Mängel geben kann, aber bitte lesen Sie ihn, wenn Sie möchten.

Umgebung

Zum Zeitpunkt der Umfrage besteht die erste Priorität darin, in einer Windows 10 64-Bit-Umgebung zu arbeiten. Die Entwicklungsumgebung ist wie folgt.

RXTX Wenn Sie serielle Kommunikation mit Java durchführen möchten, wird die RXTX-Bibliothek normalerweise bei Google aufgerufen. RXTX besteht aus zwei Bibliotheken, einer Java-Bibliothek und einer nativen C / C ++ - Bibliothek, die von den folgenden heruntergeladen werden können. Es ist erforderlich, die native Bibliothek je nach Plattform zu wechseln, z. B. Windows 32bit, Windows 64bit, Linux, Mac.

RXTX-Herausforderungen

Ich benutze RXTX und stehe vor den folgenden Herausforderungen. (Vielleicht gibt es noch andere?)

  1. Nicht länger als 10 Jahre gewartet
  2. Unterartenversion (2.2) und native Bibliotheken werden ebenfalls auf verschiedenen Websites mit leicht unterschiedlichen Versionen verteilt und nicht verwaltet und vereinheitlicht.
  3. Aufgrund des Einflusses der nativen Bibliothek wird sie plattformabhängig, obwohl ich sie in Java geschrieben habe.

Alternative Bibliothek

Wenn Sie die oben genannten Probleme haben, werden Sie schüchtern sein, wenn Sie versuchen, seriell zu kommunizieren. .. .. "Aber ich bin nicht der einzige, der Probleme mit RXTX hat! Es muss einen mutigen Mann geben, der versucht, etwas dagegen zu unternehmen!" Also habe ich versucht, zwei Dinge zu untersuchen. Als ich das Beispiel ausgeführt habe, hat es unter Windows 10 64-Bit reibungslos funktioniert, daher werde ich es vorstellen.

purejavacomm

Wenn ich die Erklärung lese, scheint es, dass JNA (Java Native Access) verwendet wurde, um serielle Kommunikation zu realisieren und gleichzeitig die Plattformunabhängigkeit sicherzustellen. Ich verstehe, dass die native Bibliothek in RXTX durch JNA ersetzt wurde. Die APIs sind ähnlich, da sie RXTX-fähig sind.

Seit 1.0.3 am 2019-01 veröffentlicht wurde, scheinen sie Wartungsarbeiten durchzuführen. (Das Maven-Repository war zum Zeitpunkt des Schreibens das neueste 1.0.2)

jSerialComm

Dies scheint auch eine Alternative zu RXTX zu sein, und die API ist ähnlich. Die native Bibliothek ist in das JAR integriert, und es scheint, dass die verwendete Bibliothek beim Start für jede Plattform geladen wird. Neben Windows / Linux sollen auch ARM-Prozessoren unterstützt werden, und es scheint mit Raspberry Pi zu funktionieren. (Wenn Sie sich den Quellcode ansehen, ist auch das Schlüsselwort Android enthalten, sodass es möglicherweise auch unter Android funktioniert.)

Die neueste Version der Wartung wird am 2018-12 veröffentlicht.

Auswertung

Als ich das Beispiel tatsächlich ausführte, waren sowohl purejavacomm als auch jSerialComm aus dem Maven-Repository verfügbar. Es funktionierte, ohne die native Bibliothek zu kennen.

Unter dem Gesichtspunkt der Verknüpfung mit anderen Bibliotheken sind Bibliotheken, die mit netty verknüpft sind, für die Öffentlichkeit zugänglich.

In Bezug auf Wartung und Support scheint purejavacomm gut zu sein, aber es ist bedauerlich, dass netty-transport-purejavacomm --github.com nicht im Maven-Repository enthalten ist. Apropos. Netty-Transport-jSerialComm --github.com wird auf der Website der Netty Head-Familie vorgestellt und ist einfach zu verwenden, da Sie das Maven-Repository verwenden können.

Zukünftige Aufgaben

In Zukunft möchte ich ein Beispiel mit purejavacomm und jSerialComm veröffentlichen.

(2019-02-19) Gepostet.

Recommended Posts

Herausforderungen und alternative Forschung der Java Serial Communication Library RXTX
Vor- und Nachteile von Java
Java-Cache-Bibliothek und Räumungsrichtlinie
Analysieren und objektivieren Sie JSON mithilfe der Annotation @JsonProperty von Jackson, einer Java-Bibliothek
[Java / Swift] Vergleich von Java-Schnittstelle und Swift-Protokoll
Zusammenfassung von Java Math.random und Import (Kalender)
[Java] Inhalt der Collection-Schnittstelle und der List-Schnittstelle
Diskriminierung von Enum in Java 7 und höher