> また、付属の通信ソフトにて接続確認もできていますので
> あとはプログラムの問題だと考えているのですが・・・。
通信手順を書いた資料はありますか。
なかったらPDFファイルでもいいからもらいましょう。
通信手順を書いた資料があれば、ハイパーターミナル等を使ってコマンドを
実際に送ってみたらどうでしょうか。
メーカにハイパーターミナル等で確認する方法を(通信速度等も含めて)
尋ねたほうがいいですね。
相手機器から
>接続先は画像処理装置で、開始文字を送信して
>読み取った文字を返信する、という仕様です。
「読み取った文字を返信する。」
ができればいいです。
相手の応答が遅ければ(1秒以上)ストップウォッチ等で実際に測ってみるのも
てですね。
実際に、ハイパーターミナル等でコマンド等を送ってみて相手がどういう反応を
示すのかをみて実際に作るソフトの通信手順を考えたほうがいいですね。
僕も、RS-232Cのソフトを作るときはハイパーターミナル等で実際に動かして、
動くことを確認してからソフトの設計に入りますね。
(シーケンサー・モデム等通信手順が確立している場合は別です。)
>通信手順を書いた資料はありますか。
実際にもらえないとなると、その装置のメーカから専用のソフトを買う
ライセンス契約なっている可能性がありますね。
確かめたほうじゃいいです。
>確認しましたところ、997(重複したIO処理を実行している?)でした。
FILE_FLAG_OVERLAPPEDを指定して開いたファイルに対して
WriteFileを行った場合、この関数はすぐにFALSEを戻して、
かつ、GetLastError()はERROR_IO_PENDING( = 0x000003E5 = 997)
を戻します。書き込みが完了するとlpOverlappedに指定したOVERLAPPED
のイベントが有効になり、送信の完了イベントを受領することができます。
以上は正常な動作であると、マニュアルに記載されています。
ただし、初心者には「非同期」のI/Oは難しすぎるので、
「同期」I/Oで基本的な動作の確認をしましょう。
つまり、FILE_FLAG_OVERLAPPEDは指定しないってことです。
>って可能性も0ではないので。
ですね。可能性は0ではありませんね。
もっとも、つたない経験の範囲では出会ったことのない仕様なので、
その可能性はかなり低めに見積もっても間違いはないと考えられます。
従って、もっと可能性のある部分から検討してみるべきかもしれません。
USB-232C変換機をあと2個揃えて間に噛ませばフリーのソフトで
デバッグ出来そうですけどどんなもんでしょ。(一台のPCでできますよ)
PC<->232c変換USB1<->232c変換USB2<->ラインモニタ<->232c変換USB3<->接続機器
#この感覚が分からないと結構厳しい
電文がきちんと送れているか戻ってきているかて話なんですけど。
COMポートが3つあればデバッグできませんか?
#今はそもそも送れているかすら分からない状態です。
#設定とか考えてたら時間の無駄かと思います。
追記です
クロスケーブルも必要なので忘れずにね
遅くなりましたが、ハイパーターミナルを使用して
機器の動作確認を行い、その後アプリケーションでの制御に成功しましたので
ご連絡させていただきます。
シリアル通信ではまず接続を確立することが重要ということが
実感できました。
皆さん、色々とアドバイス下さりありがとうございました。