C:クロスプラットフォームRS-232シリアルライブラリ? [閉まっている
-
24-10-2019 - |
質問
私は、cのシリアルポートと連携するためのオープンソースクロスプラットフォームライブラリを探しています。 パイサリア ライブラリ(残念ながら、このアプリケーションにはCを使用する必要があります)。
私はこれだけを見つけました: http://www.teuniz.net/rs-232/, 、そしてそれはOS Xの互換性について言及していないようです。
解決
シリアルポート用のクロスプラットフォームCライブラリはすでに20年間存在していたものだと思うでしょうが、2013年の時点ではまだ1つではなかったので、作成しました libserialport.
Windows、Mac OS X、Linux(Androidを含む)、BSDでテストされており、おそらく他のUNIXシステムでも構築されます。それはサポートしています:
- ポート列挙(システム上のシリアルポートのリストの取得)
- ポートの開閉、閉鎖、クエリ
- ポートパラメーターの設定(ボーレート、パリティなど)
- ポートシグナリング操作(モデム制御ライン、ブレイクなど)
- データの読み取り、執筆、フラッシング
- イベントを待っています
- エラー情報の取得
最初の0.1.0リリースは、 sigrok シリアルハードウェアをサポートするプロジェクトと、すでにいくつかのLinux分布にパッケージ化されています。 GITバージョンには、USBシリアルアダプター(VID/PIDなど)に関する情報を取得するための新しいAPI呼び出しも含まれています。
他のヒント
私はあなたがC ++ではなくCと言ったことを理解していますが、おそらくあなたは使用できることを理解しています ASIOのシリアルポートをブーストします それをライブラリにコンパイルして、Cアプリケーションにリンクします。 Posix互換性があり、OS XはPOSIXであると主張しています。
これは恥知らずなプラグですが、WindowsとLinuxとOS Xに移植可能なRS-232通信用のMITライセンスライブラブリーがあります。
私はMITライセンスの下で私のものをリリースしました: https://github.com/marzac/rs232
Cでプログラムされており、Windows、Mac、Linuxに適しています。
OS Xは標準のPOSIXシリアルAPIをサポートしています。 <termios.h>
と <unistd.h>
. 。関数を調べます tcsetattr()
, cfsetspeed()
等々。
AmSerialPort、Goserial、SerialConnect、Polkitなどのラインに沿って、追加のOS X固有のObjective-Cコードを取得し、Cソースファイルの条件付きコンパイルを実装します。