2010-06-04 5 views

Antwort

25

würden Sie denken, dass ein Quer -platform C-Bibliothek für serielle Schnittstellen ist etwas, das schon seit 20 Jahren existiert, aber ab 2013 gab es immer noch keinen, also habe ich erstellt.

Es wurde unter Windows, Mac OS X, Linux (einschließlich Android), BSD getestet und wird wahrscheinlich auch auf anderen Unix-Systemen aufbauen. Es unterstützt:

  • Hafen Aufzählung
  • Öffnen, Schließen (eine Liste von seriellen Ports auf dem System zu erhalten) und Abfragen von Ports
  • Einstellung Port-Parameter (Baudrate, Parität, etc.)
  • Hafen Signalisierungen (Modem-Steuerleitungen, Pausen, etc.)
  • Lesen, Schreiben und Spülung Daten für Veranstaltungen
  • Warten
  • Erhalten Fehler informatio n

Der anfängliche 0.1.0 Release ist im aktiven Gebrauch durch das Sigrok Projekt für serielle Hardware unterstützt und ist bereits in mehreren Linux-Distributionen verpackt. Die Git-Version enthält auch neue API-Aufrufe, um Informationen über serielle USB-Adapter (VID/PID usw.) zu erhalten.

+3

Großartig außer für Gnu Lizenz – jjxtra

+0

Die Lizenz ist LGPL.Wir haben diese Entscheidung speziell getroffen, damit sie auch in geschlossenen Quellprojekten verwendet werden kann. –

5

Ich weiß, dass Sie C und nicht C++ sagten, aber vielleicht könnten Sie Boost Asio's serial ports verwenden und das in eine Bibliothek kompilieren, um mit Ihrer C-Anwendung verknüpft zu werden. Es behauptet, POSIX-kompatibel zu sein, und OS   X ist POSIX.

+0

Danke für den Vorschlag. – Hamza

3

Holen Sie sich zusätzliche OS   X-spezifische Objective-C-Code in den Linien von AMSerialPort, GoSerial, Serialconnect, PolKit, ... und implementieren Sie eine bedingte Kompilierung Ihrer C-Quelldatei.

http://osx.hyperjeff.net/Apps/apps?f=serial

+0

Danke für den Vorschlag, aber ich möchte es nur C behalten. – Hamza

2

OS X unterstützt den Standard POSIX seriellen API, von <termios.h> und <unistd.h>. Schauen Sie sich die Funktionen tcsetattr(), cfsetspeed() und so weiter an.

6

Dies ist ein schamloser Stecker, aber ich habe eine lizenzierte Bibliothek MIT für RS-232-Kommunikation, die auf Windows und Linux und OS tragbar ist   X hier:

http://wjwwood.io/serial/

2

ich Mine unter der MIT-Lizenz veröffentlicht: https://github.com/Marzac/rs232

Es ist in C programmiert und funktioniert gut für Windows, Mac und Linux.

+0

Wirklich schön und sauber. –

Verwandte Themen