2012-02-08 9 views
3

Cで書かれた小さなプロジェクトを完成させました。ここでシリアルポートからデータストリームを読み込み、受信データを解析します。 ソフトウェアは、POSIXシステム用に書かれた(のtermiosを使用して)、シリアルを操作するための標準的な手順を以下のI/Oオープン() POSIX Cコードをウィンドウに移植する

  • 設定通信パラメータ(のtermios)
  • を使用してシリアルデバイスを開く

    1. ファイルハンドル(fcntl)にブロックモードを設定する
    2. シリアルインターフェイスでread()を実行する。
    3. 完了したらシリアルインターフェイスでclose()を実行します。ソケット部分以外

    、コードはストレートANSI C.

    私の質問はどのように関与し、それは、Windowsプラットフォーム上でコードを動作させることであろう、です。 ポートは私によって書かれていないので、移植に興味のある他の人たちに指示を与えたいだけです(些細なことではなく、自明ではありません。

    誰かが「Windows Services for UNIX」を持っていれば、変更せずにコードを使用できるでしょうか?

    だから誰でもこれを経験していれば分かち合うことができます。

  • 答えて

    3

    これはかなり簡単です。名前は非常に異なりますが、呼び出しと概念の順序は非常に似ています。

    あなたが探していることはボーレートを設定するSetComState()機能を使用する必要がありますDCB構造、ストップビットなどが続いSetCommTimeouts()を使用し、ブロックする、後続の読み取り呼び出しを行うためにCOMMTIMEOUTS構造にタイムアウト値を設定しています。

    ここはかなりのPDFとしてshort introductionです。 Backup

    +1

    ありがとう、DCB構造体は、ほとんどtermios構造体に直接マッピングされます。 * nixシステムではすべてがファイルとして表現されるのが普通だから、それはウィンドウで問題になると心配していました。しかし、ウィンドウ内でファイルハンドルを宣言して、それとほとんど同じ方法で使うことができるので、私は満足しています。ありがとう – bing

    関連する問題