2011-09-17 6 views
0

CreateFileでCOMポート( "COM1")を開き、WriteFileを使用してデバイスにデータを送信します。タイトルが述べるように、WriteFileは常に成功し、たとえデバイスが接続されていなくても、実際にバイトを配信したかのように、* lpNumberOfBytesWrittenに正しいバイト数を返します。これは正常な動作ですか、それとも私はほとんど何かを台無しにしましたか?COMデバイスに使用するとWriteFile()は成功しますが、デバイスが接続されていない場合でも正常ですか?

P .:デバイスとの会話に問題があります。これが正常かどうかを知りたいのですが、

+0

正直なところあなたの質問に対する答えは分かりませんが、デバイスに接続されていないポートに書き込みを行っているので、デバイスが接続されていなくても正常に戻ります。 –

+0

WriteFileがCOMポート上で同期しているとは思わないが、書き込みが本当に成功したかどうかを調べるために、重複したI/Oを使用する必要があります。 – Neil

+0

私はReadFileを使用すると、タイムアウトします(私は有限のタイムアウトでオーバーラップIOを使用します)。しかし、WriteFileはデバイスがあるかのように成功します。では、特定のポートにデバイスがあるかどうかをどのように検出できますか? (実際の表示となるReadFile経由でデバイスからデータを受け取る以外に)... –

答えて

1

シリアルポートはかなりシンプルなデバイスであり、デバイスが接続されているかどうかという概念はあまりありません。だから当然のことながら、シリアルポートには常に文字を書くことができ、ビットはコネクタから害されることはありません。

関連する問題