シリアルポートで非同期でバイナリを送信するプログラムを作成しています。
以下のソースでバイナリを送信したつもりなのですが、本当に送信できているのか分りません。
送信が完了したのか確認するにはどうしたいいでしょうか?
よろしくお願いします。
COMのオープン、DCBの設定は恐らく問題ないので、
WriteFileの周辺を抜粋します。
OVERLAPPED old;
ZeroMemory( &old, sizeof(old) );
old.Offset = 0;
old.OffsetHigh = 0;
old.hEvent = NULL;
char wbuf[7] = {0x02,0x0C,0x01,0x00,0x31,0x15,0x1A};
DWORD wbyte;
if(!WriteFile(hCom,wbuf,(DWORD)sizeof(wbuf),&wbyte,&old)){
if(ERROR_IO_PENDING == GetLastError()){
GetOverlappedResult(hCom,&old,&wbyte,TRUE);
}
else MessageBox("エラー");
}
No.1ベストアンサー
- 回答日時:
WriteFileのリファレンスはちゃんと読まれましたか?
オーバーラップをつかって書き込んだ場合hFileのオープン時にFILE_FLAG_OVERLAPPDを指定し、lpOverlappedに有効なポインタが渡された場合 WriteFileは 0を返します
この時点では まだ転送が完了していないので GetLastErrorもERROR_IO_PENDINGを返し、まだデータ転送が終わっていないことを示します
転送できたどうかは GetOverlappedResultで取得するのですよ
本来ならhEventにCreateEventで作成したハンドルを設定しておいて
WaitForSingleObjectなどでこのイベントハンドルがシグナル状態になるのを待機して、待機が解除されたらGetOverlappedResultで確認
といった手法でしょう
本当にオーバーラップが必要なのでしょうか?
通信相手のマニュアルにはサンプル例などがないのでしょう …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 高校英語の問題 1 2023/05/23 15:29
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- 英語 英語倒置.強調、について詳しい方お願いします 4 2023/07/22 12:59
- TOEFL・TOEIC・英語検定 英語の問題が分からないので教えて頂きたいです。 すごく初歩的なのですが、「私たちの学校はとても古い」 4 2022/06/14 01:03
- HTML・CSS GETをPOSTに変更したところ 送信 不能です。 1 2022/04/10 17:31
- 英語 meddling か meddlesome か 1 2022/08/10 18:51
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- 英語 The old man whom she is taking care of is her fath 8 2022/10/01 14:39
- 英語 写真の例文についてですが、 ①なぜ、very old oneと最後に「one」という単語がついている 2 2023/05/21 01:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お問い合わせフォームから送信...
-
フォームを再送信しますか?
-
Message ID
-
メールアドレスが正しいかどう...
-
Accessでメール一括送信ソフ...
-
VB.NETからGmail経由でメールを...
-
メールフォームの受信先にg-m...
-
携帯のサイトでアンケートサイ...
-
VB6で、Bsmtp.dllを使って、メ...
-
Safariで「本当にこのフォーム...
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
初歩的な事だと思います。 Sub...
-
DATE型変数を初期化する方法
-
数字以外の入力をエラーにする...
-
アクセスのマクロ
-
教えて!全角文字「μ」の半角
-
アルファベットGの小文字の入力
-
htmlからbatファイルを起動する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お問い合わせフォームから送信...
-
フォームを再送信しますか?
-
Safariで「本当にこのフォーム...
-
Googleフォームを回答したか確...
-
ACCESSから、メール送信を行い...
-
VB6で、Bsmtp.dllを使って、メ...
-
ソケットで通信するデータの帯...
-
ホームページビルダーのメール...
-
VBA EasyCommでの送信
-
Accessでメール一括送信ソフ...
-
c# メールが送信できたか確認
-
SendmailでHTML形式のメールを...
-
BASP21のSendMailとSendMailEx...
-
CGIでメールのReturn-Pathに値...
-
HP の問い合わせフォームのつく...
-
空メールを送信するフォームCGI
-
アンケート用紙での回答ができない
-
送信字数制限の無いフォームCGI...
-
sendmailでの複数メールアドレ...
-
safariの 「本当にもう一度フ...
おすすめ情報